가격 (Pricing)
R2의 스토리지·Class A/B 작업 요금과 무료 티어(free tier) 세부 사항을 알려드려요.
출처: 문서
본문
R2는 저장된 데이터의 총량과, 그 데이터에 대한 두 가지 클래스의 작업을 기준으로 요금을 부과해요:
- Class A 작업 — 비용이 더 비싸고 상태를 변경(mutate)하는 경향이 있어요.
- Class B 작업 — 기존 상태를 읽는 경향이 있어요.
Infrequent Access 스토리지 클래스에는 데이터 검색(data retrieval) 요금이 적용돼요. 모든 스토리지 클래스에서 이그레스(egress) 대역폭 요금은 없어요.
모든 포함 사용량은 월 단위로 계산돼요.
참고
R2 사용으로 얻을 수 있는 비용 절감 효과를 알아보려면 R2 가격 계산기 ↗︎를 참고하세요.
R2 가격 (R2 pricing)
| Standard storage | Infrequent Access storage | |
|---|---|---|
| 스토리지(Storage) | $0.015 / GB-month | $0.01 / GB-month |
| Class A 작업 | $4.50 / 백만 요청 | $9.00 / 백만 요청 |
| Class B 작업 | $0.36 / 백만 요청 | $0.90 / 백만 요청 |
| 데이터 검색(처리) | 없음 | $0.01 / GB |
| 이그레스(인터넷으로 데이터 전송) | 무료 1 | 무료 1 |
청구 단위 반올림 (Billable unit rounding)
Cloudflare는 사용량을 다음 청구 단위로 올림해요.
예를 들어:
- 백만 건 + 1건의 작업을 수행했다면, 2백만 건의 작업으로 청구돼요.
- 1.1 GB-month를 사용했다면, 2 GB-month로 청구돼요.
- (Infrequent Access 스토리지에서) 데이터를 1.1 GB 검색했다면, 2 GB로 청구돼요.
무료 티어 (Free tier)
매월 다음 양의 스토리지와 작업을 무료로 사용할 수 있어요.
| 무료(Free) | |
|---|---|
| 스토리지 | 월 10 GB-month |
| Class A 작업 | 월 1백만 건 |
| Class B 작업 | 월 1천만 건 |
| 이그레스(인터넷으로 데이터 전송) | 무료 1 |
주의 (Caution)
무료 티어는 Standard 스토리지에만 적용되며, Infrequent Access 스토리지에는 적용되지 않아요.
스토리지 사용량 (Storage usage)
스토리지는 기가바이트-월(GB-month)을 청구 단위로 사용해 청구돼요. GB-month는 청구 기간(30일) 동안 일별 피크 스토리지를 평균 내어 계산해요.
예를 들어:
- 1 GB를 30일 동안 지속해서 저장하면 1 GB-month로 청구돼요.
- 3 GB를 30일 동안 지속해서 저장하면 3 GB-month로 청구돼요.
- 1 GB를 5일간 저장하고 나머지 25일간 3 GB를 저장하면
1 GB * 5/30 month + 3 GB * 25/30 month = 2.66 GB-month로 청구돼요.
Infrequent Access 스토리지에 저장된 객체는, 지정된 기간 전에 객체가 삭제되거나 이동되었더라도 최소 저장 기간(minimum storage duration)만큼 청구돼요.
Class A 작업 (Class A operations)
Class A 작업에는 ListBuckets, PutBucket, ListObjects, PutObject, CopyObject, CompleteMultipartUpload, CreateMultipartUpload, LifecycleStorageTierTransition, ListMultipartUploads, UploadPart, UploadPartCopy, ListParts, PutBucketEncryption, PutBucketCors, PutBucketLifecycleConfiguration이 포함돼요.
Class B 작업 (Class B operations)
Class B 작업에는 HeadBucket, HeadObject, GetObject, UsageSummary, GetBucketEncryption, GetBucketLocation, GetBucketCors, GetBucketLifecycleConfiguration이 포함돼요.
무료 작업 (Free operations)
무료 작업에는 DeleteObject, DeleteBucket, AbortMultipartUpload이 포함돼요.
데이터 검색 (Data retrieval)
데이터 검색 요금은 Infrequent Access 스토리지 클래스에서 데이터에 접근하거나 검색할 때 적용돼요. 여기에는 객체를 읽거나 복사하는 모든 경우가 포함돼요.
최소 저장 기간 (Minimum storage duration)
Infrequent Access 스토리지에 저장된 객체는, 지정된 기간 전에 객체가 삭제·이동·교체되었더라도 최소 저장 기간만큼 청구돼요.
| 스토리지 클래스(Storage class) | 최소 저장 기간(Minimum storage duration) |
|---|---|
| Standard storage | 없음 |
| Infrequent Access storage | 30일 |
Basin Catalog 가격 (Basin Catalog pricing)
Basin Catalog는 표준 R2 스토리지 및 작업 외에도, 카탈로그 작업과 컴팩션(compaction) 처리 데이터에 대해 요금을 부과해요. 자세한 내용은 Basin Catalog 가격을 참고하세요.
데이터 마이그레이션 가격 (Data migration pricing)
Super Slurper
Super Slurper는 무료로 사용할 수 있어요. Super Slurper가 R2 버킷에 수행하는 Class A 작업에 대해서만 요금이 청구돼요. 100MiB보다 작은 객체는 단일 Class A 작업으로 R2에 업로드돼요. 더 큰 객체는 전송 성공률을 높이기 위해 멀티파트 업로드를 사용하며 여러 Class A 작업이 수행돼요. Super Slurper가 객체를 R2로 복사하면서 원본 버킷에 추가 요금이 발생할 수 있다는 점을 참고하세요.
마이그레이션이 완료되면 앞서 설명한 대로 스토리지 및 Class A/B 작업에 대해 요금이 청구돼요.
Sippy
Sippy는 무료로 사용할 수 있어요. Sippy가 R2 버킷에 수행하는 작업에 대해서만 요금이 청구돼요. 요청된 객체가 R2에 없으면 Sippy가 원본 버킷에서 복사해와요. 200MiB보다 작은 객체는 단일 Class A 작업으로 R2에 업로드돼요. 더 큰 객체는 전송 성공률을 높이기 위해 멀티파트 업로드를 사용하며 여러 Class A 작업이 수행돼요. Sippy가 객체를 R2로 복사하면서 원본 버킷에 추가 요금이 발생할 수 있다는 점을 참고하세요.
객체가 R2로 마이그레이션되면 R2에서 제공되며, 앞서 설명한 대로 스토리지 및 Class A/B 작업에 대해 요금이 청구돼요.
가격 계산기 (Pricing calculator)
R2 사용으로 얻을 수 있는 비용 절감 효과를 알아보려면 R2 가격 계산기 ↗︎를 참고하세요.
R2 청구 예시 (R2 billing examples)
Standard 스토리지 예시
사용자가 평균 1 GB 크기의 객체 1,000개를 R2 Standard storage에 1개월간 쓰고, 그 달 동안 각 객체를 1,000번 읽는다면, 그 달의 예상 비용은 다음과 같아요:
| 사용량(Usage) | 무료 티어(Free Tier) | 청구 수량(Billable Quantity) | 가격(Price) | |
|---|---|---|---|---|
| 스토리지 | (1,000개 객체) * (객체당 1 GB) = 1,000 GB-month | 10 GB-month | 990 GB-month | $14.85 |
| Class A 작업 | (1,000개 객체) * (객체당 1회 쓰기) = 1,000회 쓰기 | 1백만 | 0 | $0.00 |
| Class B 작업 | (1,000개 객체) * (객체당 1,000회 읽기) = 1백만 회 읽기 | 1천만 | 0 | $0.00 |
| 데이터 검색(처리) | (1,000개 객체) * (객체당 1 GB) = 1,000 GB | NA | 없음 | $0.00 |
| 합계 | $14.85 |
Infrequent access 예시
사용자가 평균 1 GB 크기의 객체 1,000개를 R2 Infrequent Access 스토리지에 쓰고, 5일간 저장한 후 삭제하고(삭제 작업은 무료), 그 5일 동안 각 객체를 1,000번 읽는다면, 그 달의 예상 비용은 다음과 같아요:
| 사용량(Usage) | 무료 티어(Free Tier) | 청구 수량(Billable Quantity) | 가격(Price) | |
|---|---|---|---|---|
| 스토리지 | (1,000개 객체) * (객체당 1 GB) = 1,000 GB-month | NA | 1,000 GB-month | $10.00 |
| Class A 작업 | (1,000개 객체) * (객체당 1회 쓰기) = 1,000회 쓰기 | NA | 1,000 | $9.00 |
| Class B 작업 | (1,000개 객체) * (객체당 1,000회 읽기) = 1백만 회 읽기 | NA | 1백만 | $0.90 |
| 데이터 검색(처리) | (1,000개 객체) * (객체당 1 GB) = 1,000 GB | NA | 1,000 GB | $10.00 |
| 합계 | $29.90 |
Infrequent Access 스토리지의 최소 저장 기간은 30일이므로, 청구 수량은 167 GB-month가 아니라 1,000 GB-month라는 점을 참고하세요.
자산 호스팅 (Asset hosting)
사용자가 평균 100 KB 크기의 파일 100,000개를 쓰고, 하루에 객체 10,000,000개를 읽는다면, 그 달의 예상 비용은 다음과 같아요:
| 사용량(Usage) | 무료 티어(Free Tier) | 청구 수량(Billable Quantity) | 가격(Price) | |
|---|---|---|---|---|
| 스토리지 | (100,000개 객체) * (객체당 100KB) | 10 GB-month | 0 GB-month | $0.00 |
| Class A 작업 | (100,000회 쓰기) | 1백만 | 0 | $0.00 |
| Class B 작업 | (하루 10,000,000회 읽기) * (30일) | 1천만 | 290,000,000 | $104.40 |
| 합계 | $104.40 |
Cloudflare 청구 정책 (Cloudflare billing policy)
사용량이 어떻게 청구되는지 자세히 알아보려면 Cloudflare Billing Policy를 참고하세요.
자주 묻는 질문 (Frequently asked questions)
R2 버킷에 대한 승인되지 않은 요청에도 요금이 부과되나요?
아니요. 호출자가 요청을 수행할 권한이 없을 때(HTTP 401 Unauthorized 응답 상태 코드)의 작업에는 요금이 부과되지 않아요.
각주 (Footnotes)
- R2에서 직접 이그레스하는 경우 — Workers API, S3 API,
r2.dev도메인을 통한 이그레스 포함 — 데이터 전송(이그레스) 요금이 발생하지 않으며 무료예요. R2 버킷에 다른 유료 서비스를 연결하면 그 서비스가 요금을 청구할 수 있어요. ↩