
Egress pricing compared: what moving 2 TB a month actually costs
Published per-GB egress cost across six providers, plus the free-tier limits and committed-use discounts that actually change the real monthly total.
Egress cost is the line item that turns a cheap-looking storage bill into an expensive one, and it's also the line item providers are least consistent about advertising up front. AWS egress cost is the one most engineers already have a rough number for; the other five providers compared below aren't always benchmarked against it.
Below are published per-GB rates for six representative providers, normalised to a 2 TB/month transfer volume. Figures are rounded and illustrative. Confirm current published rates on each provider's own pricing page before using them for a real cost estimate.
| Provider | Free egress / month | Per-GB beyond free tier | Note |
|---|---|---|---|
| AWS S3 | 100 GB (first 12 months only) | ~$0.09 | Free tier is time-limited, not permanent |
| Google Cloud Storage | None (small always-free tier) | ~$0.12 | Varies by destination region |
| Cloudflare R2 | Unlimited | $0.00 | No egress fee at any volume, by design |
| Backblaze B2 | 3x stored data, daily | ~$0.01 | Free allowance scales with how much you store |
| DigitalOcean Spaces | 1 TB bundled into base plan | ~$0.01 | Bundled allowance resets monthly, doesn't roll over |
| Hetzner Object Storage | Allowance varies by plan | ~$0.001-0.005 | Consistently the cheapest per-GB beyond free tier |
What actually moves the total
For a 2 TB/month workload, the difference between the cheapest and most expensive provider in this table is close to $200/month at list price, before any committed-use discount. That gap compounds annually and is large enough to justify an afternoon of benchmarking before committing to a provider on brand familiarity alone. Infrastructure cost is one side of the margin equation; what actually reaches your bank account after commissions and taxes is the other, and both deserve the same scrutiny before you trust a dashboard number.
The catch in every free tier
Every "free egress" or "bundled egress" figure above has a condition attached: a time limit, a minimum plan, or a design choice that could change. None of them are unconditional forever.
Only egress (data transferred out). Stored-data pricing is a separate line item on every provider's pricing page and is not reflected in the table above: a provider with cheap egress and expensive storage can still lose on total cost depending on your read/write mix.
R2's pricing model deliberately has no charge for data transferred out. That's the intentional core of Cloudflare R2 pricing, not a rounding artifact. Confirm this is still current before relying on it; free-egress positioning is exactly the kind of term that changes with a pricing update.
Committed-use or reserved-capacity discounts, which several of these providers offer above roughly 50-100 TB/month and which aren't reflected in the published self-serve rates compared here. At that volume, talk to sales before trusting a public pricing page.
- Provider pricing pages (AWS, Cloudflare, Backblaze, DigitalOcean, Hetzner, Google Cloud): primary source for each per-GB rate; check each provider's own current page before use