LabHub

블로그

오브젝트 스토리지 이그레스 전쟁 2026: S3, R2, B2, Bunny, Wasabi, Tigris 완전 비교

한국어English日本語

프롤로그: 2022년 9월, R2가 모든 것을 바꿨다

2022년 9월 22일. Cloudflare는 R2 오브젝트 스토리지를 일반 출시(GA)했습니다. 그날 발표문의 핵심 문장은 단 한 줄이었습니다. "Zero egress fees." 송신 요금 없음.

이게 왜 충격이었는지 이해하려면 그 전까지의 클라우드 경제학을 알아야 합니다. AWS S3는 저장 비용 자체는 GB당 $0.023 (Standard 기준) 정도로 합리적입니다. 하지만 데이터를 인터넷으로 내보내는 순간 GB당 $0.09가 붙습니다. 즉, 1TB를 저장하는 비용은 한 달 $23이지만, 그 1TB를 한 번 인터넷으로 내보내면 $90이 추가로 듭니다. 저장은 미끼고, 진짜 수익은 송신에서 나오는 구조입니다.

Cloudflare의 마티유 프린스 CEO는 이 모델을 "데이터 인질극(data hostage)"이라고 불렀고, R2는 이그레스를 완전히 무료로 만들었습니다. "당신의 데이터를 가져가는 것에 우리가 돈을 받지 않는다"는 메시지는 단순했지만, 그 파장은 4년이 지난 2026년 지금까지도 클라우드 스토리지 업계를 흔들고 있습니다.

이 글에서는 2026년 5월 현재의 오브젝트 스토리지 시장을 9개 서비스로 나눠 비교합니다. 단순 가격표가 아니라, "1TB 저장 + 월 10TB 송신"이라는 실제 워크로드에서 어떤 차이가 나는지, 언제 R2가 옳고 언제 틀린지, S3에서 옮길 때 빠지기 쉬운 함정은 무엇인지를 다룹니다.


1. AWS S3 — 여전히 기본값, 그리고 여전히 비싼 송신

S3는 2006년 출시 이후 사실상 오브젝트 스토리지의 표준 API가 되었습니다. 2026년 현재 거의 모든 경쟁자가 "S3-compatible API"를 표방하는 이유입니다.

2026년 5월 기준 S3 표준 가격

저장 (Standard, us-east-1):
  처음 50TB/월       : $0.023/GB
  다음 450TB/월      : $0.022/GB
  500TB 이상/월      : $0.021/GB

요청 비용:
  PUT, COPY, POST    : $0.005 per 1,000 requests
  GET, SELECT 등     : $0.0004 per 1,000 requests

송신 (Data Transfer Out to Internet):
  처음 10TB/월       : $0.09/GB
  다음 40TB/월       : $0.085/GB
  다음 100TB/월      : $0.07/GB
  150TB 초과/월      : $0.05/GB

* 2021년부터 매월 100GB 무료 송신 제공 (실무에 큰 의미 없음)

왜 S3가 여전히 기본값인가

S3의 "이그레스 락인" 본질

AWS는 단순히 S3 송신만 비싼 게 아닙니다. EC2 → 인터넷, RDS → 인터넷, NAT Gateway 트래픽까지 모두 같은 $0.09/GB 구조입니다. 즉, AWS에서 데이터를 "한 번이라도" 외부로 빼내려면 통행세를 내야 합니다.

2022년 R2 출시 이후, Cloudflare가 "Bandwidth Alliance"라는 무료 송신 파트너십(나중에 R2로 흡수)을 만든 것도 이 락인을 깨려는 시도였습니다. AWS는 2024년 3월에야 "EC2/S3에서 다른 클라우드로 데이터를 영구 이전할 때는 송신 무료"라는 제한적 정책을 발표했지만, 평상시 운영 트래픽에는 적용되지 않습니다.


2. Cloudflare R2 — 디스럽터, 그리고 2026년 현재의 위상

R2의 핵심 약속은 단순합니다. 저장 비용은 받고, 송신 비용은 안 받습니다.

2026년 5월 기준 R2 가격

저장 (Standard):
  $0.015 / GB-월

송신 (egress):
  $0 — 인터넷 어디로든 무료

요청 비용:
  Class A (PUT, POST, LIST, DELETE):
    $4.50 per 1,000,000 requests
  Class B (GET, HEAD):
    $0.36 per 1,000,000 requests

Infrequent Access 티어 (2024년 출시):
  저장: $0.01 / GB-월
  Class A: $9.00 per 1,000,000
  Class B: $0.90 per 1,000,000
  최소 30일 보관
  데이터 검색 요금: $0.01 / GB

무료 한도:
  저장: 10GB/월
  Class A: 1,000,000/월
  Class B: 10,000,000/월

R2의 진짜 매력은 가격이 아니다

R2가 시장을 흔든 이유는 단순히 송신 무료여서가 아니라, Cloudflare 네트워크 위에 직접 올라간다는 것입니다.

2024-2025년 사이 R2가 추가한 것들

R2 비용 계산 예시: 1TB 저장 + 10TB/월 송신

저장:    1TB * $0.015/GB = $15.00
송신:    10TB * $0 = $0.00
요청:    Class A 100k + Class B 5M = $0.45 + $1.80 = $2.25
-----------------------------------------------
월 합계: ≈ $17.25

같은 워크로드를 S3로 돌리면 $23 (저장) + $900 (송신 10TB) + 요청 비용 = $925. 약 54배 차이입니다.


3. Backblaze B2 — 조용한 강자, 11년차

Backblaze는 2015년 B2 Cloud Storage를 출시했습니다. R2보다 7년 먼저 "저장 비용이 싸고, 송신도 (일정 한도 내) 무료"라는 모델을 들고 나왔습니다. 다만 마케팅이 조용해서 R2 등장 전까지는 백업/아카이브 시장에 머물렀습니다.

2026년 5월 기준 B2 가격

저장 (Standard):
  $0.006 / GB-월  (= $6 / TB-월)

송신 (egress):
  처음 3x 저장량까지 무료
    예: 100GB 저장 시 월 300GB 무료 송신
  초과분: $0.01 / GB

요청 비용:
  Class A (Upload): 무료
  Class B (Download): 처음 2,500/일 무료, 이후 $0.004 per 10,000
  Class C (List, Head): 처음 2,500/일 무료, 이후 $0.004 per 1,000

Cloudflare/Fastly/Bunny CDN과의 송신: 완전 무료 (Bandwidth Alliance 잔존)

B2의 핵심 셀링 포인트

B2의 약점


4. Wasabi — "예측 가능한 청구서"의 모델

Wasabi는 2017년 출시 후 "송신 무료 + 정액 저장"이라는 라디컬한 단순함을 내세웠습니다.

2026년 5월 기준 Wasabi 가격

저장:
  $6.99 / TB-월 (Pay-As-You-Go)
  $5.99 / TB-월 (Reserved Capacity Storage, 1년 약정)

송신: 무료 (단, "API 호출량과 송신량이 저장량을 초과하지 않을 것"이라는 fair-use 조항)

요청 비용: 무료

최소 저장 기간: 90일 (90일 이내 삭제해도 90일치 청구)

Wasabi의 특이점

Wasabi 1TB 저장 + 10TB 송신 시나리오

저장:    1TB * $6.99 = $6.99
송신:    10TB > 1TB 저장량 → fair-use 위반 가능성
         → Wasabi가 Reserved Capacity Storage 플랜으로 전환 권유하거나
            계약 재협상 요청할 수 있음
요청:    무료
-----------------------------------------------
월 합계: $6.99 (이상적), 단 정책 위반 시 별도 협상

→ Wasabi는 송신량이 저장량의 1배 이내인 백업/아카이브에 최적이고, 비디오 호스팅처럼 송신이 큰 워크로드에는 R2/B2가 낫습니다.


5. Bunny.net — CDN-퍼스트의 스토리지

Bunny.net은 슬로베니아 회사로, 원래 CDN으로 유명했습니다. 2020년경 Edge Storage를 추가했고, 2026년 현재 "CDN과 통합된 스토리지"라는 포지셔닝이 명확합니다.

2026년 5월 기준 Bunny 가격

Edge Storage (오리진용, 11개 리전):
  HDD: $0.01 / GB-월
  SSD: $0.02 / GB-월
  Replication 추가 리전: 각각 +50% 비용

Edge Storage 송신: 무료 (Bunny CDN으로 통하는 경우)

Bunny CDN 송신 (사용자에게 전달):
  High Volume (HQ Tier): $0.005 / GB ~ $0.01 / GB
  Standard Tier: $0.01 / GB ~ $0.06 / GB (지역별)
  미국/유럽: 가장 저렴
  아프리카/오세아니아: 가장 비쌈

요청 비용: 무료

Bunny의 정체성

Bunny는 R2/B2/Wasabi와 직접 경쟁한다기보다, CDN 백엔드 스토리지에 특화되어 있습니다. 비디오 스트리밍, 이미지 호스팅, 게임 패치 배포 같은 use case가 강점입니다.

Bunny가 R2보다 나은 시나리오


6. Tigris Data — 글로벌 분산 S3, 2024년 신생주자

Tigris Data는 Fly.io의 인프라 위에서 운영되는 비교적 신생 오브젝트 스토리지 서비스입니다. 2024년 GA 이후 2025-2026년 사이 빠르게 주목받았습니다.

Tigris의 정체성

2026년 5월 기준 Tigris 가격

저장 (Standard):
  $0.02 / GB-월

송신 (egress):
  무료

요청 비용:
  Class A (PUT 등): $0.0045 per 1,000
  Class B (GET 등): $0.0004 per 1,000

글로벌 복제: 기본 포함 (별도 비용 없이 여러 PoP에 자동 복제)

Tigris가 R2와 다른 점


7. R2 Data Catalog — Iceberg가 오브젝트 스토리지 위에 올라왔다

2024년 말 Cloudflare는 R2 Data Catalog를 발표했고, 2025년 GA가 되었습니다. 이게 왜 중요한지 이해하려면 잠시 데이터 레이크하우스 트렌드를 짚어야 합니다.

Iceberg가 무엇이고 왜 모든 클라우드가 도입하나

Apache Iceberg는 Netflix가 만든 오픈 테이블 포맷입니다. Parquet/ORC 파일들을 "테이블"처럼 다룰 수 있게 메타데이터 레이어를 추가합니다.

2024-2025년 사이 AWS S3 Tables, Snowflake Open Catalog, Databricks Unity Catalog가 모두 Iceberg 지원을 발표했습니다. 오브젝트 스토리지 위에 트랜잭션 데이터베이스를 올린다는 발상이 업계 표준이 된 셈입니다.

R2 Data Catalog의 약속

실제 코드 예시

# PyIceberg로 R2 Catalog의 테이블을 쿼리
from pyiceberg.catalog import load_catalog

catalog = load_catalog(
    "r2",
    **{
        "type": "rest",
        "uri": "https://catalog.cloudflarestorage.com/v1/<account-id>",
        "warehouse": "my-warehouse",
        "credential": "<r2-api-token>",
    }
)

table = catalog.load_table("analytics.events")
df = table.scan(
    row_filter="event_date >= '2026-05-01'",
    selected_fields=["user_id", "event_name", "event_date"],
).to_pandas()

송신 무료라는 점이 분석 워크로드에서 결정적입니다. S3에서 분석 쿼리를 돌리면 데이터를 컴퓨트 쪽으로 옮길 때마다 송신 요금이 발생하지만, R2에서는 그게 0원입니다.


8. Google Cloud Storage / Azure Blob — 패리티 제품의 현실

GCP와 Azure도 오브젝트 스토리지를 제공합니다. 다만 송신 정책은 S3와 비슷합니다.

GCS (2026년 5월 기준)

저장 (Standard, us-central1):
  $0.020 / GB-월

송신:
  같은 리전 내: 무료
  같은 대륙: $0.01 / GB
  대륙 간: $0.05 ~ $0.15 / GB

GCS는 BigQuery와의 native 통합이 강점입니다. Iceberg/BigLake가 GCS 위에서 동작하고, GCP를 이미 쓰고 있다면 데이터 응집도가 높아집니다.

Azure Blob Storage (2026년 5월 기준)

저장 (Hot, East US):
  $0.0184 / GB-월

송신:
  같은 리전 내: 무료
  대륙 간: $0.05 ~ $0.087 / GB

Azure는 엔터프라이즈 컴플라이언스(특히 Microsoft 365와의 통합)와 ADLS Gen2 같은 분석 변종에 강점이 있습니다.

GCP/Azure가 R2/B2를 못 따라잡는 이유

세 가지가 있습니다.

  1. 포트폴리오 보호: 송신 무료로 가면 BigQuery/Synapse 같은 다른 서비스의 가격 구조도 흔들림
  2. 컴퓨트와 묶인 가격: GCS 송신이 무료여도 Compute Engine 송신은 따로 청구됨
  3. 거버넌스 비용: 엔터프라이즈 인증/SLA가 R2/B2보다 비쌈

9. iDrive E2, Storj, Filebase — 디센트럴라이즈드의 변두리

iDrive E2

미국 iDrive의 S3 호환 스토리지. 2026년 현재 $0.004 / GB-월 정도의 매우 저렴한 가격에 송신도 기본 무료입니다. 다만 인증/SLA가 B2/Wasabi 대비 약합니다.

Storj

P2P 분산 스토리지. 사용자 노드(스토리지 노드)에 객체를 샤딩(Reed-Solomon erasure coding)하여 분산 저장. 2026년 기준 저장 $0.004 / GB-월, 송신 $0.007 / GB 수준.

Filebase

IPFS/Sia/Storj/Skynet을 백엔드로 쓰는 S3 호환 게이트웨이. 분산 스토리지의 진입 장벽을 낮추는 어댑터 역할.

이 세 가지는 "Web3 친화적" 정체성이 강해, 일반 SaaS 워크로드의 메인 스토리지로는 아직 권장하기 어렵습니다. 다만 백업의 백업 같은 cold redundancy에는 의미가 있습니다.


10. "1TB 저장 + 10TB/월 송신" 비용 매트릭스

직접 비교가 가능하도록 같은 워크로드로 모두 환산했습니다.

서비스                          저장     송신       요청    합계 (월)
---------------------------------------------------------------------
AWS S3 (Standard)             $23.00   $900.00   ~$5    ≈ $928
AWS S3 (Intelligent-Tiering)  $23.00   $900.00   ~$5    ≈ $928
Cloudflare R2                 $15.00   $0.00     ~$2    ≈ $17
Cloudflare R2 Infrequent      $10.00   $100.00   ~$10   ≈ $120
                                       (10GB 검색 요금)
Backblaze B2 (단독)            $6.00    $90.00    ~$5    ≈ $101
                                       (3TB 무료 후 7TB * $0.01)
Backblaze B2 + Cloudflare CDN $6.00    $0.00     ~$5    ≈ $11
Wasabi                        $6.99    Free*     Free   ≈ $7
                                       (* fair-use 위반 가능)
Bunny Edge Storage + CDN      $10.00   $50~100   Free   ≈ $60-110
                                       (지역 mix)
Tigris Data                   $20.00   $0.00     ~$2    ≈ $22
GCS (Standard)                $20.00   $500~1500 ~$5    ≈ $525-1525
Azure Blob (Hot)              $18.40   $500~870  ~$5    ≈ $525-895
iDrive E2                     $4.00    $0.00     Free   ≈ $4
Storj                         $4.00    $70.00    ~$2    ≈ $76

같은 워크로드에서 S3 $928과 B2+CDN $1184배 차이입니다. 이게 R2가 시장을 흔든 이유고, 4년이 지난 지금도 AWS가 송신 가격을 못 내리는 이유이기도 합니다.


11. "그래도 S3"인 경우들 — 솔직한 디시전 프레임워크

R2/B2가 항상 옳은 건 아닙니다. 다음 경우에는 S3가 합리적입니다.

S3가 옳은 경우

  1. AWS 내부에서만 데이터가 움직이는 경우: EC2 → S3 → Athena → Redshift는 송신 요금이 들지 않음. 외부로 안 나가면 S3의 저장 비용만 부담.
  2. S3 Select / S3 Object Lambda를 쓰는 경우: 객체 안의 일부만 읽거나, 읽는 동안 변환을 적용하는 native 기능. R2에는 없음.
  3. 매우 높은 IOPS가 필요한 경우: S3 Express One Zone (μs 단위 latency) 같은 변종은 R2의 일반 티어보다 빠름.
  4. 컴플라이언스 인증: FedRAMP High, IL5, ITAR 같은 정부/방산 요구사항은 AWS GovCloud의 S3만 만족.
  5. 데이터 라이프사이클 관리가 복잡한 경우: S3 Intelligent-Tiering이 자동으로 hot/warm/cold/archive 사이를 옮겨줌. R2는 단일 티어 + Infrequent Access 정도.

R2가 옳은 경우

  1. 사용자가 자주 다운받는 정적 자산: 이미지, 비디오, 게임 패치, 모델 weight 배포.
  2. 분석 쿼리가 자주 발생하는 데이터 레이크: Iceberg 테이블 위에서 DuckDB/ClickHouse가 반복 쿼리.
  3. CDN의 origin: Cloudflare CDN과 zero-hop으로 연결.
  4. Workers 기반 서버리스 앱: Workers binding으로 R2를 마치 로컬 디스크처럼 사용.

B2가 옳은 경우

  1. 백업/아카이브: Veeam, Restic, Synology, Arq 같은 backup 솔루션의 target.
  2. 저장 비용 자체를 최소화하고 싶은 경우: $0.006/GB은 R2($0.015)의 40% 수준.
  3. 자체 CDN과 결합: Cloudflare/Fastly/Bunny와 결합 시 송신 완전 무료.

Tigris가 옳은 경우

  1. 글로벌 멀티 리전 앱: Fly.io 위에서 여러 리전에 분산된 서비스.
  2. ML 모델 weight 글로벌 배포: 각 리전에서 latency 거의 0에 가깝게 같은 weight 로드.

Wasabi가 옳은 경우

  1. 송신이 저장량 이하인 백업/아카이브: 1TB 저장하고 월에 1TB 미만 송신하는 경우.
  2. 예측 가능한 정액 청구가 중요한 경우: 회계가 송신 변동을 싫어할 때.

12. 마이그레이션 함정들

S3에서 R2/B2로 옮길 때 빠지기 쉬운 함정들입니다.

함정 1: 마이그레이션 자체의 송신 비용

1TB를 S3에서 R2로 옮기려면 S3 → 인터넷 송신이 발생합니다. $90. 100TB면 $9,000.

→ Cloudflare의 Super Slurper는 R2가 S3에서 직접 pull하여 이그레스를 발생시키지만, AWS의 송신 요금은 그대로 청구됩니다. 다만 2024년 3월부터 AWS의 "다른 클라우드로 영구 이전" 무료 정책을 활용할 수 있는데, 영구 이전임을 입증해야 하고 사후 검증이 있습니다.

함정 2: S3 SDK 호환성의 미묘한 차이

R2/B2/Wasabi 모두 "S3 API 호환"을 표방하지만, 실제로는 일부 기능이 빠져 있습니다.

→ 마이그레이션 전에 SDK 호환성을 실제로 테스트해야 합니다.

함정 3: pre-signed URL의 만료/서명 정책

S3 pre-signed URL은 IAM 정책 기반인데, R2는 API token 기반입니다. URL 생성 코드를 다시 짜야 할 수 있습니다.

함정 4: 데이터 라이프사이클의 부재

S3에는 "30일 후 IA로, 90일 후 Glacier로"라는 자동 라이프사이클이 있습니다. R2/B2에는 이게 약합니다.

→ Backup tooling 쪽에서 직접 cold 티어로 옮기는 로직을 짜야 합니다.

함정 5: 옵저버빌리티 격차

S3는 CloudTrail, S3 Server Access Logs, S3 Inventory 같은 풍부한 로그 도구가 있습니다. R2도 Logpush로 로그를 송신할 수 있지만, retention과 쿼리 측면에서 CloudTrail보다 약합니다.


13. Iceberg + S3-compatible 스토리지 — 2026년의 진짜 메가트렌드

이 글에서 가장 강조하고 싶은 트렌드입니다. 2026년 현재, "값싼 오브젝트 스토리지 + Iceberg 테이블 + 쿼리 엔진 분리"의 조합이 데이터 웨어하우스를 대체하고 있습니다.

전통적인 데이터 웨어하우스

Snowflake, BigQuery, Redshift는 컴퓨트와 스토리지가 한 벤더 안에 묶여 있고, 데이터를 그 안에 적재합니다. 이그레스가 사실상 불가능에 가깝습니다.

레이크하우스 아키텍처

원시 데이터 (CSV, JSON, Avro)
       ↓ 변환 (dbt, Spark)
Iceberg 테이블 (Parquet + 메타데이터)
       ↓ 저장
오브젝트 스토리지 (R2, S3, GCS)
       ↓ 카탈로그
Iceberg Catalog (REST, Glue, Unity, R2 Data Catalog)
       ↓ 쿼리
컴퓨트 엔진 (DuckDB, ClickHouse, Trino, Spark, Snowflake)

스토리지와 컴퓨트가 완전히 분리되어 있고, 같은 데이터에 대해 여러 엔진이 동시에 접근할 수 있습니다.

R2 Data Catalog가 게임 체인저인 이유

실제 사례

이 트렌드의 핵심은 "분석 컴퓨트와 스토리지를 묶어 파는 사업 모델이 흔들리고 있다"는 것입니다. Snowflake/Databricks는 이미 Iceberg 카탈로그(Polaris, Unity)로 응전했지만, 송신 무료 스토리지와의 결합에서는 R2가 우위입니다.


14. 안티 패턴: R2/B2가 잘못된 선택일 때

마지막으로, "송신 무료니까 다 옮기자"가 답이 아닌 경우들입니다.

안티 패턴 1: 매우 작은 객체를 매우 많이 저장

R2의 Class A 요청은 $4.50 / 1M입니다. 1KB짜리 파일 10억 개를 PUT하면 $4,500이 듭니다. 차라리 DynamoDB나 SQLite 한 파일에 모아 저장하는 게 쌉니다.

안티 패턴 2: hot read-modify-write 워크로드

오브젝트 스토리지는 객체 단위 atomicity만 보장합니다. 같은 객체를 초당 수십 번 업데이트하는 워크로드는 PostgreSQL/Redis/DynamoDB가 맞습니다.

안티 패턴 3: S3 Select가 필수인 분석

객체 안의 일부분만 읽어오는 S3 Select는 R2/B2에 없습니다. Iceberg 같은 컬럼형 포맷으로 전환하지 않은 raw JSON/CSV에서는 S3 Select가 비용 면에서 더 나을 수 있습니다.

안티 패턴 4: 컴플라이언스가 송신 비용보다 비싸지는 경우

금융/의료 일부 워크로드는 FedRAMP/IL5/ITAR/HIPAA 같은 인증을 요구합니다. R2도 SOC 2와 GDPR/CCPA를 갖췄지만, FedRAMP High나 IL5는 AWS GovCloud만 만족합니다.

안티 패턴 5: 단일 벤더 의존이 위험할 때

Cloudflare는 2024년과 2025년 사이 두 번의 큰 글로벌 장애를 겪었습니다. R2는 영향을 받지 않은 사례도 있었지만, "Cloudflare 네트워크 전체가 멈춘다면" R2도 멈춥니다. 멀티 클라우드 redundancy가 필요한 워크로드라면 R2 + B2 (또는 + S3) 듀얼 라이트를 고려해야 합니다.


에필로그: 결정 체크리스트

오브젝트 스토리지 선택 시 답해야 할 질문들입니다.

체크리스트

송신 비용을 보는 새 관점

2022년 이전, 송신 요금은 "어쩔 수 없는 통행세"였습니다. 2026년 현재, 그것은 "선택"입니다. 매월 송신 청구서가 저장 비용의 10배가 넘는다면, 이건 기술 결정이 아니라 비즈니스 결정입니다.

R2가 2022년에 던진 질문은 단순했습니다. "당신의 데이터를 인질로 잡는 것이 정말로 클라우드 비즈니스의 본질입니까?" 4년이 지난 지금, 그 질문은 더 이상 가설이 아니라 시장 가격의 기본 전제가 되었습니다.

안티 패턴 요약

다음 글 예고

다음 글에서는 이 결정 프레임워크를 실제 코드로 옮기겠습니다. AWS S3에서 R2로 100TB를 마이그레이션하는 실전 시나리오 — rclone, AWS DataSync, Cloudflare Super Slurper, 직접 Lambda + Workers 파이프라인 — 각 방식의 비용과 시간을 측정한 결과를 다룹니다. 이어서 R2 Data Catalog 위에 DuckDB로 100GB 분석 쿼리를 돌리는 실전 워크북도 준비 중입니다.


참고 / References

댓글

아직 댓글이 없습니다.

로그인하면 댓글을 쓸 수 있습니다