---
title: AWS S3 vs Cloudflare R2
slug: aws-s3-vs-cloudflare-r2
url: "https://toolweight.dev/vs/aws-s3-vs-cloudflare-r2"
category: s3-compatible-storage
last_verified: 2026-07-23
license: CC-BY-4.0
---

# AWS S3 vs Cloudflare R2

> Compared on the S3-compatible storage field registry — 28 fields, all sourced.

## Where they differ

| Field | AWS S3 | Cloudflare R2 |
| --- | --- | --- |
| True cost /mo (USD) (/mo) | $472.6 /mo | $22.74 /mo |
| True cost /mo (AUD) (/mo) | A$718.35 /mo | A$34.56 /mo |
| True cost from Sydney (AUD) (/mo) | A$900.14 /mo | A$34.56 /mo |
| Storage $/TB/mo (/TB/mo) | $23 /TB/mo | $15 /TB/mo |
| Egress $/TB (/TB) | $90 /TB | $0 /TB |
| Class A $/M ops (/M ops) | $5 /M ops | $4.5 /M ops |
| Class B $/M ops (/M ops) | $0.4 /M ops | $0.36 /M ops |
| S3 API coverage (%) | 100 % | 82 % |
| Versioning | ● | ○ |
| CDN integration | first-party-paid | free-bundled |
| Max object size | 45.5 TB | 5 TB |
| IAM granularity | 5 | 3 |
| Sydney region | ● | ◐ |
| TTFB from Sydney | 25 ms | 45 ms |
| Object lock / WORM | ● | ◐ |
| GA year | 2,006 | 2,022 |
| Positioning | The reference implementation, priced for customers who are not leaving. | Zero-egress object storage for teams already on Cloudflare's edge. |

## Every field

| Field | AWS S3 | Cloudflare R2 |
| --- | --- | --- |
| True cost /mo (USD) (/mo) | $472.6 /mo | $22.74 /mo |
| True cost /mo (AUD) (/mo) | A$718.35 /mo | A$34.56 /mo |
| True cost from Sydney (AUD) (/mo) | A$900.14 /mo | A$34.56 /mo |
| Storage $/TB/mo (/TB/mo) | $23 /TB/mo | $15 /TB/mo |
| Egress $/TB (/TB) | $90 /TB | $0 /TB |
| Egress cap (x stored) (x stored) | — | — |
| Class A $/M ops (/M ops) | $5 /M ops | $4.5 /M ops |
| Class B $/M ops (/M ops) | $0.4 /M ops | $0.36 /M ops |
| Min retention | 0 ms | 0 ms |
| Min billed object | 0 B | 0 B |
| S3 API coverage (%) | 100 % | 82 % |
| Presigned URLs | ● | ● |
| Multipart upload | ● | ● |
| Versioning | ● | ○ |
| Lifecycle rules | ● | ● |
| Event notifications | ● | ● |
| CDN integration | first-party-paid | free-bundled |
| Max object size | 45.5 TB | 5 TB |
| IAM granularity | 5 | 3 |
| Sydney region | ● | ◐ |
| TTFB from Sydney | 25 ms | 45 ms |
| Durability (nines) ( nines) | 11  nines | 11  nines |
| Uptime SLA (%) | 99.9 % | 99.9 % |
| Object lock / WORM | ● | ◐ |
| Replication model | multi-az | multi-az |
| Official MCP server | ● | ● |
| GA year | 2,006 | 2,022 |
| Positioning | The reference implementation, priced for customers who are not leaving. | Zero-egress object storage for teams already on Cloudflare's edge. |

## Each option

### AWS S3 — 65.3 / 100
The API everything else copies, and by far the most expensive egress in this roster.

Still the most capable object store by a wide margin, and thirty-eight times the cost of Hetzner on this scenario almost entirely because of bandwidth. Stay on S3 if you genuinely use Object Lock compliance mode, Access Points, cross-region replication or IAM condition keys; otherwise you are paying $441 a month for an API you can get elsewhere.
- Workloads already inside AWS where traffic stays on the internal network
- Regulatory requirements needing Object Lock compliance mode with a real SLA
- Anything depending on IAM condition keys, Access Points or S3 Tables

### Cloudflare R2 — 75.0 / 100
S3-compatible object storage with zero egress fees, on Cloudflare's network.

The default answer for anything read-heavy, and the only provider here where egress genuinely stops being a line item you have to model. Watch the $4.50 per million Class A charge on write-heavy workloads, remember that 'Oceania' is a hint rather than a region, and check that you are not quietly depending on versioning — R2 does not implement it, which is a bigger gap than the zero-egress headline lets people notice.
- Public assets, media and package registries where egress dwarfs storage
- Anything already fronted by Cloudflare Workers or the Cloudflare CDN
- Escaping an AWS bill that is mostly bandwidth

## Sources

| Tool | Field | Confidence | Verified | Source |
| --- | --- | --- | --- | --- |
| AWS S3 | True cost /mo (USD) | Inferred | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | True cost from Sydney (AUD) | Inferred | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Storage $/TB/mo | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Egress $/TB | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Egress cap (x stored) | Unknown | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Class A $/M ops | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Class B $/M ops | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Min retention | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | Min billed object | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/pricing/ |
| AWS S3 | CDN integration | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/cloudfront/pricing/ |
| AWS S3 | Max object size | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/faqs/ |
| AWS S3 | IAM granularity | Vendor-claimed | 2026-07-23 | https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html |
| AWS S3 | Sydney region | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/about-aws/global-infrastructure/regions_az/ |
| AWS S3 | Durability (nines) | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/storage-classes/ |
| AWS S3 | Uptime SLA | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/sla/ |
| AWS S3 | Object lock / WORM | Vendor-claimed | 2026-07-23 | https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html |
| AWS S3 | Replication model | Vendor-claimed | 2026-07-23 | https://aws.amazon.com/s3/storage-classes/ |
| Cloudflare R2 | True cost /mo (USD) | Inferred | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | Storage $/TB/mo | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | Egress $/TB | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | Egress cap (x stored) | Unknown | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | Class A $/M ops | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | Class B $/M ops | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | Min retention | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ |
| Cloudflare R2 | S3 API coverage | Inferred | 2026-07-23 | https://developers.cloudflare.com/r2/api/s3/api/ |
| Cloudflare R2 | Presigned URLs | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/api/s3/presigned-urls/ |
| Cloudflare R2 | Multipart upload | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/objects/multipart-objects/ |
| Cloudflare R2 | Versioning | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/api/s3/api/ |
| Cloudflare R2 | Lifecycle rules | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/buckets/object-lifecycles/ |
| Cloudflare R2 | Event notifications | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/buckets/event-notifications/ |
| Cloudflare R2 | Max object size | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/platform/limits/ |
| Cloudflare R2 | Durability (nines) | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/reference/durability/ |
| Cloudflare R2 | GA year | Vendor-claimed | — | https://blog.cloudflare.com/r2-ga/ |

See the full roster: [S3-compatible storage](https://toolweight.dev/compare/s3-compatible-storage) — 12 tools.

## Licence and attribution

Data from toolweight (https://toolweight.dev), licensed CC-BY-4.0.

- Licence: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)
- Canonical HTML: https://toolweight.dev/vs/aws-s3-vs-cloudflare-r2
- Machine-readable: https://toolweight.dev/vs/aws-s3-vs-cloudflare-r2.md · https://toolweight.dev/api/v1 · https://toolweight.dev/mcp
- toolweight takes no affiliate revenue and sells no placements. Corrections: https://toolweight.dev/suggest
