Cloudflare R2 vs AWS S3 vs Backblaze B2: Real Object Storage Cost at 100 TB in 2026
The short answer: headline $/GB storage pricing tells you almost nothing about what any of these three actually cost, because the gap between them is dominated by egress, not storage. At 100 TB stored with low egress, Backblaze B2's cheap raw storage rate makes it the lowest-cost option at roughly $695/month, against $1,500 on Cloudflare R2 and $2,331 on AWS S3. The moment real internet egress enters the picture, the ranking changes dramatically: at 100 TB stored plus 100 TB of monthly internet egress, R2 and B2 both stay flat (R2 at $1,500 because egress is permanently free; B2 at $695 because 100 TB of egress sits comfortably within its 300 TB free-egress allowance, three times the 100 TB stored) — while S3 jumps to roughly $10,041/month, using AWS's current tiered internet-egress rates, with egress alone accounting for more than three-quarters of the bill. Storage price is the smallest lever in this comparison; egress policy is the one that actually decides the outcome.
What each vendor bills
Cloudflare R2 (OFFICIAL, Cloudflare's R2 pricing page). Standard storage: $0.015/GB-month. Infrequent Access storage: $0.01/GB-month. Infrequent Access carries two separate, independent rules: a 30-day minimum storage duration (an object deleted or overwritten before 30 days still bills for the full 30 days), and a $0.01/GB retrieval fee that applies whenever Infrequent Access data is actually read, accessed, or copied — regardless of how long it has been stored, not only for reads occurring before the 30-day mark. Class A operations (writes, uploads, lists): $4.50 per million (Standard tier; $9.00/million on Infrequent Access). Class B operations (reads): $0.36 per million (Standard; $0.90/million on Infrequent Access). Internet egress: $0, unconditionally, on both storage classes — R2's signature differentiator, not a conditional allowance. Free tier: 10 GB storage, 1 million Class A operations, 10 million Class B operations, and free egress, every month.
AWS S3 (OFFICIAL, AWS S3 pricing, Standard tier, US East / N. Virginia (us-east-1), all figures in GB using the standard 1,000 MB = 1 GB convention AWS itself uses for billing). Storage: $0.023/GB-month for the first 50 TB/month, $0.022/GB-month for the next 450 TB, $0.021/GB-month beyond 500 TB — this article's 100 TB workload spans both the first and second tiers: 50 TB at $0.023/GB plus the remaining 50 TB at $0.022/GB, for a blended storage cost of $2,250/month rather than a single flat rate. Requests: PUT/COPY/POST/LIST at roughly $5 per million, GET/SELECT at roughly $0.40 per million — no meaningful free monthly request allowance comparable to R2's. Internet data transfer out is billed in tiers, not a single flat rate: the first 100 GB/month is free (aggregated across all AWS services and regions), then $0.09/GB for the next 10 TB, $0.085/GB for the next 40 TB, $0.07/GB for the next 100 TB, and $0.05/GB beyond 150 TB — the cost driver that dominates S3's bill at any meaningful delivery volume, and one that declines per-GB as volume grows rather than staying flat. Lifecycle transitions to Infrequent Access or Glacier tiers lower the storage rate further but add their own retrieval fees and minimum storage durations, not modeled in this article's baseline Standard-tier figures.
Backblaze B2 (OFFICIAL, Backblaze B2 pricing). Pay As You Go storage: $6.95/TB-month ($0.00695/GB-month) — the cheapest raw storage rate of the three, billed from byte-hours across the billing cycle. Egress: free up to 3x your average monthly storage volume (also calculated from byte-hours), with overage billed at $0.01/GB beyond that allowance. Class A, B, and C transactions (uploads, downloads, and API calls) are free on the Pay As You Go plan — a structural difference from R2's and S3's per-operation charges. At this article's 100 TB stored, the free-egress allowance is 300 TB a month; at 100 TB of actual monthly egress, that workload sits well inside the allowance with 200 TB of headroom to spare, so no egress charge applies at all.
Three explicit workload shapes
All ILLUSTRATIVE. Shape A: 100 TB stored, low egress (1 TB/month, representing infrequent access or backup-style storage). Shape B: 100 TB stored, high egress (100 TB/month, representing active content delivery at a volume equal to total stored data). Shape C: 100 TB stored, high request volume (200 million read operations and 2 million write operations a month, with a moderate 10 TB/month egress, representing a request-heavy application rather than a bulk-transfer one).
Cost at 100 TB, by workload shape
Formula: R2 = (GB stored × $0.015) + (billable Class A ops ÷ 1M × $4.50) + (billable Class B ops ÷ 1M × $0.36), egress always $0; S3 = tiered storage (first 50 TB × $0.023, next 50 TB × $0.022) + tiered egress (first 100 GB free, then $0.09/GB to 10 TB, $0.085/GB to 50 TB, $0.07/GB to 150 TB, $0.05/GB beyond) + request charges; B2 = (GB stored × $0.00695) + (egress GB beyond the 3x-storage allowance × $0.01), transactions free on Pay As You Go.
| Workload shape | Cloudflare R2 | AWS S3 (tiered egress) | Backblaze B2 |
|---|---|---|---|
| A: 100 TB stored, 1 TB egress | $1,500 | $2,331 | $695 |
| B: 100 TB stored, 100 TB egress | $1,500 | $10,041 | $695 |
| C: 100 TB stored, 200M reads, 2M writes, 10 TB egress | $1,573 | $3,231 | $695 |
Shape B's egress volume (100 TB) spans three of AWS's four paid egress tiers in a single month: the first roughly 9.9 TB at $0.09/GB, the next 40 TB at $0.085/GB, and the remaining roughly 50 TB at the $0.07/GB third tier — none of it reaches the cheapest $0.05/GB tier, which only starts at 150 TB of cumulative monthly egress.
Backblaze B2 wins every shape tested here on raw dollar cost, purely because its storage rate is roughly 35% of S3's and its egress allowance comfortably absorbs every egress volume this article modeled; it only stops winning once sustained egress exceeds 3x the stored volume in a given month, a workload shape closer to a live video-streaming or high-traffic CDN-origin pattern than general application storage.
Why S3's bill is dominated by egress, not storage
Formula: S3 egress share of total bill = egress cost ÷ total cost. In Shape B, egress is $7,791 of the $10,041 total — about 78% of the bill — while storage, the number most buyers compare first, is only $2,250 (using AWS's correct tiered storage rate: $0.023/GB for the first 50 TB, $0.022/GB for the next 50 TB, since this article's 100 TB falls across both tiers). This is the single most important structural fact about S3 pricing at any meaningful delivery volume: a team evaluating S3 by its storage rate alone, without separately modeling expected egress across AWS's tiered rate schedule, will underestimate its real cost by several multiples the moment the stored data is actually served to end users over the internet rather than just archived.
Where R2's "always free" egress genuinely changes the calculus
R2 is architected so that egress is never a billable line item, under any circumstances, on either storage class — a structural guarantee, not a conditional allowance the way B2's 3x-storage threshold is. This makes R2's total cost fully predictable from storage and operation volume alone, with no risk of an egress spike from an unexpectedly popular file or traffic surge. B2's free-egress allowance is generous (3x average storage) but is still a threshold that a genuinely high-delivery workload — sustained egress exceeding 3x the stored data in a given month — can exceed, at which point the $0.01/GB overage, while modest, reintroduces a variable cost R2 never has.
Operations cost: a real but secondary line, mostly on R2
Formula: operations cost = (billable Class A ops ÷ 1M × $4.50) + (billable Class B ops ÷ 1M × $0.36). In Shape C, R2's operations add only about $73 on top of its $1,500 storage base — a small fraction of total cost, but a real one for request-heavy workloads at far higher operation volumes than this article's illustrative shape, since Class A operations in particular (writes, uploads, and list calls) are priced over ten times higher per operation than Class B reads on both R2's Standard tier and, by a similar ratio, on S3's request pricing.
Sensitivity
- Egress volume relative to stored data. The single largest lever in this entire comparison; it is what separates S3's dramatic cost escalation from R2's and B2's flat or near-flat totals across the shapes modeled.
- Whether workload exceeds B2's 3x-storage free-egress threshold. Below it, B2 remains the cheapest option tested; above it, the $0.01/GB overage, while still cheap relative to S3's $0.09/GB, begins to matter at sufficient volume.
- Storage class choice on R2. Moving from Standard to Infrequent Access roughly halves the storage rate but doubles both operation classes' cost and adds a retrieval fee — only worth it for genuinely cold, rarely-accessed data.
- Request volume and mix (reads versus writes). Write-heavy workloads cost disproportionately more per operation than read-heavy ones on both R2 and S3, independent of total data volume.
Budgeting traps
- Comparing these three vendors on headline $/GB storage price alone. At 100 TB with meaningful egress, storage is the smallest line item on all three; egress policy decides the real outcome.
- Assuming Backblaze B2's free egress is unconditional like R2's. It is capped at 3x average monthly storage, a real and crossable threshold for a sufficiently egress-heavy workload.
- Forgetting AWS S3's 100 GB/month free egress allowance is aggregated across all AWS services and regions, not per-bucket. A multi-service AWS account can exhaust this shared allowance well before a single storage workload would suggest.
- Overlooking R2's Class A/Class B operation costs because egress is free. A write-heavy, high-request-volume workload still accrues real, if secondary, operation charges on R2.
What to ask before you buy
Model your actual expected monthly egress volume, not just stored data volume, before comparing any of these three vendors — it is the variable that most often overturns a storage-price-led decision. If evaluating Backblaze B2 for an egress-heavy workload, confirm your expected egress will stay under its 3x-average-storage free allowance, since exceeding it introduces a cost B2's headline pricing doesn't foreground.