Cloudflare R2 vs Amazon S3
SEPT 2026 auditA comparison of Cloudflare R2 and Amazon S3 built from values read directly from each provider's own documentation, with the source recorded against every figure.
The short answer
Choose Cloudflare R2 if…
Serving files to the public, where egress is the bill everyone underestimates. Nothing to pay for bandwidth out, on any storage class, so a busy bucket costs what it costs to store rather than what it costs to read.
Editorial · Palash Bagchi · approved
Choose Amazon S3 if…
Workloads already inside AWS, where keeping data in the same region as the compute avoids the transfer charges that dominate an object storage bill.
Editorial · Palash Bagchi · approved
Consider something else if…
- Cloudflare R2: Operations are charged and rounded up to the whole million, so a workload of many tiny reads and writes pays here instead. The saving is on bandwidth, not on request volume.
- Amazon S3: Egress is the cost that decides this category and S3 charges for it, where R2, Wasabi and Tigris do not. Prices also vary by region, so a figure quoted anywhere is only true for the region it was read in.
Neither quite fits? Every other option, ranked by iScore: Cloudflare R2 alternatives · Amazon S3 alternatives
8 sourced criteria separate them — see where, with sources, below.
Pick the criteria you care about. The chart counts how many of them lean toward each provider — the same read as scanning the bars below, just totalled for the ones you chose.
Cloudflare R2 0
Amazon S3 0
At a glance.
| Criterion | Cloudflare R2 | Amazon S3 |
|---|---|---|
| Pricing | ||
| Free tier | Yes | Yes |
| Kind of free offer | Free tier | Introductory free tier |
| What the free plan includes | 10 GB-month of standard storage, 1 million Class A and 10 million Class B operations a month, and egress free with no cap. The allowance covers standard storage only, not infrequent access. | 100 GB a month of data transfer out to the internet, counted globally rather than per region. Storage itself is billed from the first byte. |
| Egress over allowance | Free. Cloudflare charges nothing for egress to the internet on any storage class; Infrequent Access adds a $0.01/GB retrieval fee instead. | $0.09 per GB for the first 10 TB a month out to the internet, after a free 100 GB aggregated globally. It falls to $0.085 above 10 TB, $0.07 above 50 TB and $0.05 above 150 TB. This is AWS's outbound data transfer rate rather than an S3-specific one — the charge that R2, Wasabi and Tigris do not levy at all. |
| Limits | ||
| Storage (entry plan) | 10 GB-month free each month, plus 1 million Class A and 10 million Class B operations | None. S3 has no plans and no included storage — AWS states there is no minimum charge and you pay only for what you use, billed per GB-month from the first byte. New accounts get AWS Free Tier credits ($100 immediately, up to $200 over six months) which are spendable credit rather than a standing storage allowance. |
| Infrastructure | ||
| Uptime SLA | 99.9% monthly uptime, in a dedicated R2 SLA that applies to use of R2 only and names no plan tier. The SLA settles its own precedence — "in the event of a conflict between the terms of this R2 SLA and ... other agreement governing Customer’s use of the Services, the terms of this R2 SLA apply" — so Cloudflare’s application-services plan table, which covers the website plans rather than the Developer Platform, does not qualify it. The remedy is a credit set as a percentage of the fees paid for that product in the preceding 30 days, so the commitment stands on a free account while the compensation for breaching it is worth nothing there. | 99.9% for S3 Standard, Express One Zone and the Glacier retrieval classes; 99.0% for Intelligent-Tiering, Standard-Infrequent Access, One Zone-IA and Glacier Instant Retrieval. |
| Storage | ||
| Storage price | $0.015 per GB-month for Standard, $0.01 for Infrequent Access. Billed rounded up to the whole GB-month. | $0.023 per GB-month for S3 Standard, first 50 TB, in us-east-1. S3 prices vary by region; this and every other S3 figure on the site is that region. |
| Operations price | $4.50 per million Class A operations (writes and listings) and $0.36 per million Class B (reads) on Standard; $9.00 and $0.90 on Infrequent Access. Rounded up to the whole million. | $0.005 per 1,000 PUT, COPY, POST and LIST requests, and $0.004 per 10,000 GET and all other requests, in us-east-1. DELETE and CANCEL are free. |
| Minimum storage duration | None on Standard storage — billing averages peak storage per day, so an object deleted after five days is charged for five days. Infrequent Access carries a 30-day minimum, billed even if the object is deleted, moved or replaced sooner. | None on S3 Standard. 30 days on Standard-IA and One Zone-IA, 90 days on Glacier Instant and Flexible Retrieval, 180 days on Glacier Deep Archive, each with a pro-rated charge for early deletion. |
| S3-compatible API | Supported | Supported |
Where they differ.
Kind of free offer
- Cloudflare R2
- Free tier
- Amazon S3
- Introductory free tier
Sources (2) →Sources ↓
- R2 pricing — Cloudflare Docs ↗
“Free tier [...] You can use the following amount of storage and operations each month for free.”
Read 2026-09-06 · official pricing · Report a correction
- Amazon S3 Pricing ↗
“At account sign-up, you can choose between a free plan and a paid plan. The free plan will be available for 6 months after account creation.”
Read 2026-09-13 · official pricing · Report a correction
What the free plan includes
- Cloudflare R2
- 10 GB-month of standard storage, 1 million Class A and 10 million Class B operations a month, and egress free with no cap. The allowance covers standard storage only, not infrequent access.
- Amazon S3
- 100 GB a month of data transfer out to the internet, counted globally rather than per region. Storage itself is billed from the first byte.
Sources (2) →Sources ↓
- R2 Pricing — Cloudflare ↗
“Free storage 10 GB-month / month Class A operations 1 million requests / month Class B operations 10 million requests / month Egress (data transfer to Internet) Free”
Read 2026-09-13 · official pricing · Report a correction
- Amazon S3 pricing ↗
“The 100 GB free tier for data transfer out to the internet is global and does not apply separately or individually to AWS Regions.”
Read 2026-09-13 · official pricing · Report a correction
Egress over allowance
- Cloudflare R2
- Free. Cloudflare charges nothing for egress to the internet on any storage class; Infrequent Access adds a $0.01/GB retrieval fee instead.
- Amazon S3
- $0.09 per GB for the first 10 TB a month out to the internet, after a free 100 GB aggregated globally. It falls to $0.085 above 10 TB, $0.07 above 50 TB and $0.05 above 150 TB. This is AWS's outbound data transfer rate rather than an S3-specific one — the charge that R2, Wasabi and Tigris do not levy at all.
Sources (2) →Sources ↓
- R2 pricing — Cloudflare Docs ↗
“For the Infrequent Access storage class, data retrieval fees apply. There are no charges for egress bandwidth for any storage class. [...] Egress (data transfer to Internet) Free Free”
Read 2026-09-06 · official pricing · Report a correction
- AWS Price List API — AWSDataTransfer, us-east-1 ↗
“"$0 for 100GB of data transfer out to the internet, aggregated globally" [...] "$0.090 per GB - first 10 TB / month data transfer out beyond the global free tier" [...] "$0.085 per GB - next 40 TB / month" [...] "$0.070 per GB - next 100 TB / month" [...] "$0.050 per GB - greater than 150 TB / month"”
Read 2026-09-06 · official pricing · Report a correction
Storage (entry plan)
- Cloudflare R2
- 10 GB-month free each month, plus 1 million Class A and 10 million Class B operations
- Amazon S3
- None. S3 has no plans and no included storage — AWS states there is no minimum charge and you pay only for what you use, billed per GB-month from the first byte. New accounts get AWS Free Tier credits ($100 immediately, up to $200 over six months) which are spendable credit rather than a standing storage allowance.
Sources (2) →Sources ↓
- R2 pricing — Cloudflare Docs ↗
“You can use the following amount of storage and operations each month for free. [...] Storage 10 GB-month / month Class A Operations 1 million requests / month Class B Operations 10 million requests / month”
Read 2026-09-06 · official pricing · Report a correction
- Amazon S3 Pricing ↗
“Pay only for what you use. There is no minimum charge. Amazon S3 cost components are storage pricing, request and data retrieval pricing, data transfer and transfer acceleration pricing”
Read 2026-09-07 · official pricing · Report a correction
Uptime SLA
99.9% monthly uptime, in a dedicated R2 SLA that applies to use of R2 only and names no plan tier. The SLA settles its own precedence — "in the event of a conflict between the terms of this R2 SLA and ... other agreement governing Customer’s use of the Services, the terms of this R2 SLA apply" — so Cloudflare’s application-services plan table, which covers the website plans rather than the Developer Platform, does not qualify it. The remedy is a credit set as a percentage of the fees paid for that product in the preceding 30 days, so the commitment stands on a free account while the compensation for breaching it is worth nothing there.
99.9% for S3 Standard, Express One Zone and the Glacier retrieval classes; 99.0% for Intelligent-Tiering, Standard-Infrequent Access, One Zone-IA and Glacier Instant Retrieval.
Sources (2) →Sources ↓
- R2 Service Level Agreement — Cloudflare ↗
“This R2 Service Level Agreement ("R2 SLA") applies to use of R2 only. In the event of a conflict between the terms of this R2 SLA and the terms of the Enterprise Customer Support and Service Level Agreement, Enterprise Subscription Terms of Service, or other agreement governing Customer’s use of the Services (the "Agreement"), the terms of this R2 SLA apply, but only to the extent of such conflict. [...] Cloudflare will provide a Monthly Uptime Percentage of 99.9% for Customer’s use of R2 ("Service Level Objective"). [...] a credit against future payments for Customer’s R2 usage based on the percentage of the fees paid by Customer for R2 usage in the thirty (30) days preceding submission of a valid Claim”
Read 2026-09-21 · official site · Report a correction
- Amazon S3 Service Level Agreement ↗
“For requests to S3 Standard, S3 Express One Zone, S3 Glacier Flexible Retrieval, S3 Glacier Deep Archive, and all other requests not specified below: Monthly Uptime Percentage Service Credit Percentage Less than 99.9% but greater than or equal to 99.0% 10% [...] For requests to S3 Intelligent-Tiering, S3 Standard-Infrequent Access, S3 One Zone-Infrequent Access, and S3 Glacier Instant Retrieval: Monthly Uptime Percentage Service Credit Percentage Less than 99.0% but greater than or equal to 98.0% 10%”
Read 2026-09-14 · official site · Report a correction
Storage price
- Cloudflare R2
- $0.015 per GB-month for Standard, $0.01 for Infrequent Access. Billed rounded up to the whole GB-month.
- Amazon S3
- $0.023 per GB-month for S3 Standard, first 50 TB, in us-east-1. S3 prices vary by region; this and every other S3 figure on the site is that region.
Sources (2) →Sources ↓
- R2 pricing — Cloudflare Docs ↗
“Storage $0.015 / GB-month $0.01 / GB-month [...] If you have used 1.1 GB-month, you will be billed for 2 GB-month.”
Read 2026-09-06 · official pricing · Report a correction
- AWS Price List API — AmazonS3, us-east-1 ↗
“"description": "$0.023 per GB - first 50 TB / month of storage used", "pricePerUnit": {"USD": "0.0230000000"}, "unit": "GB-Mo", "beginRange": "0", "endRange": "51200"”
Read 2026-09-06 · official pricing · Report a correction
Operations price
- Cloudflare R2
- $4.50 per million Class A operations (writes and listings) and $0.36 per million Class B (reads) on Standard; $9.00 and $0.90 on Infrequent Access. Rounded up to the whole million.
- Amazon S3
- $0.005 per 1,000 PUT, COPY, POST and LIST requests, and $0.004 per 10,000 GET and all other requests, in us-east-1. DELETE and CANCEL are free.
Sources (2) →Sources ↓
- R2 pricing — Cloudflare Docs ↗
“Class A Operations $4.50 / million requests $9.00 / million requests Class B Operations $0.36 / million requests $0.90 / million requests [...] If you have performed one million and one operations, you will be billed for two million operations.”
Read 2026-09-06 · official pricing · Report a correction
- AWS Price List API — AmazonS3, us-east-1 ↗
“"description": "$0.005 per 1,000 PUT, COPY, POST, or LIST requests" [...] "description": "$0.004 per 10,000 GET and all other requests" [...] DELETE and CANCEL requests are free.”
Read 2026-09-06 · official pricing · Report a correction
Minimum storage duration
None on Standard storage — billing averages peak storage per day, so an object deleted after five days is charged for five days. Infrequent Access carries a 30-day minimum, billed even if the object is deleted, moved or replaced sooner.
None on S3 Standard. 30 days on Standard-IA and One Zone-IA, 90 days on Glacier Instant and Flexible Retrieval, 180 days on Glacier Deep Archive, each with a pro-rated charge for early deletion.
Sources (2) →Sources ↓
- Pricing — Cloudflare R2 docs ↗
“Storage class Minimum storage duration Standard storage None Infrequent Access storage 30 days [...] you will be charged for the object for the minimum storage duration even if the object was deleted or moved before the duration specified”
Read 2026-09-07 · official docs · Report a correction
- S3 Pricing — AWS ↗
“S3 Standard-IA, and S3 One Zone-IA storage are charged for a minimum storage duration of 30 days [...] Objects that are archived to S3 Glacier Instant Retrieval and S3 Glacier Flexible Retrieval are charged for a minimum storage duration of 90 days, and S3 Glacier Deep Archive has a minimum storage duration of 180 days.”
Read 2026-09-06 · official docs · Report a correction
When these numbers change, hear about it. Sources are re-checked monthly; a repricing goes out as a short note.
Documented by only one.
These criteria are published by one provider and not the other. An absence here means we have not found a source, not that the feature is missing — except where we say we read the other provider's own page on a given date and it does not state it. Those rows lean, and the provider can correct them with a link.
Questions this comparison answers.
Egress over allowance: Cloudflare R2 or Amazon S3?
Cloudflare R2: Free. Cloudflare charges nothing for egress to the internet on any storage class; Infrequent Access adds a $0.01/GB retrieval fee instead.
Amazon S3: $0.09 per GB for the first 10 TB a month out to the internet, after a free 100 GB aggregated globally. It falls to $0.085 above 10 TB, $0.07 above 50 TB and $0.05 above 150 TB. This is AWS's outbound data transfer rate rather than an S3-specific one — the charge that R2, Wasabi and Tigris do not levy at all.
Storage (entry plan): Cloudflare R2 or Amazon S3?
Cloudflare R2: 10 GB-month free each month, plus 1 million Class A and 10 million Class B operations
Amazon S3: None. S3 has no plans and no included storage — AWS states there is no minimum charge and you pay only for what you use, billed per GB-month from the first byte. New accounts get AWS Free Tier credits ($100 immediately, up to $200 over six months) which are spendable credit rather than a standing storage allowance.
Should I choose Cloudflare R2 or Amazon S3?
Pick Cloudflare R2 if Serving files to the public, where egress is the bill everyone underestimates. Nothing to pay for bandwidth out, on any storage class, so a busy bucket costs what it costs to store rather than what it costs to read.
Pick Amazon S3 if Workloads already inside AWS, where keeping data in the same region as the compute avoids the transfer charges that dominate an object storage bill.

Comments are hosted by EchoThread, which sets cookies and offers social sign-in. Like the analytics on this site, it does not load until you accept — see the privacy page.