What 500 TB/mo of CloudFront egress actually costs
TL;DR. Moving 500 TB/mo of data delivered from the CloudFront CDN to viewers (US/Europe) costs about $24,540/month — roughly $294,482/year — in transfer fees alone, before you pay for storage, requests, or any NAT-gateway / cross-AZ traffic. That's a blended $0.048/GB. The same 512,000 GB cost $0 on Cloudflare CDN (free tier), because those targets don't meter egress the way AWS does.
The worked calculation
AWS bills data transfer in binary gigabytes (1 TB = 1,024 GB), and the rate is tiered — the first block is the priciest, then it steps down. For 512,000 GB:
| Tier | Data | Rate /GB | Cost |
|---|---|---|---|
| First 10 TB | 10,240 GB | $0.085 | $870 |
| 10–50 TB | 40,960 GB | $0.080 | $3,277 |
| 50–150 TB | 102,400 GB | $0.060 | $6,144 |
| 150–500 TB | 358,400 GB | $0.040 | $14,336 |
| Less free tier (first 1 TB/mo) | −1,024 GB | — | −$87 |
| One month | 512,000 GB | ~$0.048 blended | $24,540 |
The same 512,000 GB on infrastructure that doesn't meter egress
| Where it's served | Egress / month | Notes |
|---|---|---|
| CloudFront → internet | $24,540 | The metered, tiered rate above. |
| Cloudflare CDN (free tier) | $0 | Unmetered cache-hit bandwidth for normal sites on the free plan. |
| bunny.net CDN | $2,560–$5,120 | Volume-network pricing, ~$0.005–0.01/GB; excellent for media. |
| OVH / Hetzner flat box | $0 | Generous-to-unlimited transfer included; dedicated boxes are unmetered. |
The honest footnote. This compares egress only. R2 and B2 still charge for storage (~$15/TB and ~$6/TB per month); a flat box still costs rent plus the time to run it. Egress is simply the line where AWS's markup is most extreme and most avoidable — which is why it's usually the first thing worth moving.
What 500 TB/mo actually is
512,000 GB of egress in a month is, concretely, any one of:
- ~170,667 hours of 1080p video streamed (≈3 GB/hour)
- a 100 MB app/dataset downloaded ~5,120,000 times
- a ~2 MB web page served ~256,000,000 times
- a 50 MB podcast episode delivered ~10,240,000 times
When this is genuinely fine (don't move it)
- In-region consumption. If these bytes are read by other AWS services in the same region rather than sent to the internet, you're not paying the egress rate — the fix is a free private-network endpoint, not a migration.
- Spiky, unpredictable traffic that genuinely benefits from scale-to-zero and global presence.
- Small and flat. A few hundred GB a month is a small bill; a migration won't pay for itself.
Related
- the full CloudFront egress breakdown — the per-GB tiers and every scale from 1 TB to 500 TB.
- The same service at other scales: 1 TB/mo, 5 TB/mo, 10 TB/mo, 50 TB/mo, 100 TB/mo.
Sources
- AWS CloudFront pricing — US/Europe tiers and the perpetual 1 TB/mo free tier — aws.amazon.com/cloudfront/pricing/
- Alternative pricing (Cloudflare R2 zero egress, bunny.net ~$0.005–0.01/GB, OVH/Hetzner included transfer): the respective provider pricing pages.