“Is Cloudflare R2 or AWS S3 cheaper?” comes down to one number most people forget: egress. On storage they are close; on data transfer out they are worlds apart.
Prices below are list prices as of June 2026 and are estimates — verify on the R2 and S3 pricing pages.
The answer first
| Cost component | AWS S3 Standard | Cloudflare R2 |
|---|---|---|
| Storage ($/GB-month) | $0.023 | $0.015 |
| Egress to internet | ~$0.09/GB (after 100 GB free) | $0.00 |
| Class A ops (per million) | $5.00 | $4.50 |
| Class B ops (per million) | $0.40 | $0.36 |
| Free tier | 5 GB (12 months only) | 10 GB always-free |
R2 is cheaper on every line, and free on the one that usually dominates the bill. See the full S3 vs R2 comparison.
Worked example: 1 TB stored, 10 TB served per month
A typical media or download workload:
| AWS S3 | Cloudflare R2 | |
|---|---|---|
| Storage (1,000 GB) | $23.00 | $15.00 |
| Egress (10,240 GB out) | ~$900 (10,140 GB × $0.09) | $0.00 |
| Monthly total | ~$923 | ~$15 |
That is the whole story: the egress line turns a $23 storage bill into a $920 cloud bill on S3, while R2 stays at $15. Model your own numbers in the egress calculator.
When S3 is still the right call
- You are already deep in AWS and want IAM, Lambda triggers, S3 Select, and tight regional placement.
- You need a specific region R2 does not offer, or compliance features tied to AWS.
- Your egress is genuinely tiny (mostly internal/within-AWS traffic).
When R2 wins
- Anything download-heavy: media hosting, public datasets, software distribution, backups you restore often.
- Cost-sensitive projects where a predictable, egress-free bill matters.
Bottom line
For storing-and-serving, R2 is cheaper and far more predictable. For deep AWS integration, S3 earns its premium. Read why cloud egress fees are so expensive for the background, and see the object-storage comparison for the other budget options like Backblaze B2 and Wasabi. All figures are estimates — confirm on the vendor pages.