AWS egress cost: what data transfer really costs across services
TL;DR. AWS meters data transfer out of AWS to the internet, across all services per gigabyte, and the rate has barely moved in years even as wholesale bandwidth fell by more than half. At 50 TB/mo that's about $4,403/month — roughly $52,838/year — in transfer alone, before storage or requests. The same bytes cost $0 in egress on Cloudflare R2, a few hundred dollars on a CDN like bunny.net, or nothing on a flat-rate box you already rent. Below: the exact per-GB tiers, what they add up to at every scale, the lines that are also egress but rarely get blamed on it, and the honest cases where you should leave it where it is.
The per-GB tiers
AWS egress is tiered — the first block is the priciest, then it steps down (US/Europe, as of 2026-06-15):
| Monthly egress tier | Price /GB |
|---|---|
| First 100 GB/mo (free allowance) | free |
| First 10 TB | $0.090 |
| 10–50 TB | $0.085 |
| 50–150 TB | $0.070 |
| Over 150 TB | $0.050 |
What it costs at every scale
Pure transfer-out cost, AWS to the internet, before storage or requests — vs the targets that don't meter egress the same way. As of 2026-06-15.
| Egress / month | AWS → internet | Cloudflare R2 | bunny.net CDN | OVH / Hetzner flat box |
|---|---|---|---|---|
| 1 TB/mo | $92 | $0 | $5–$10 | $0 |
| 5 TB/mo | $461 | $0 | $26–$51 | $0 |
| 10 TB/mo | $922 | $0 | $51–$102 | $0 |
| 50 TB/mo | $4,403 | $0 | $256–$512 | $0 |
| 100 TB/mo | $7,987 | $0 | $512–$1,024 | $0 |
| 500 TB/mo | $29,491 | $0 | $2,560–$5,120 | $0 |
The honest footnote. This table is 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 the markup is most extreme and most avoidable.
The lines that are also egress (and hide)
The headline rate usually understates your true transfer spend, because these are billed as transfer too and rarely get attributed to it:
- NAT Gateway — data through a NAT gateway is charged per GB processed, on top of egress. Private subnets pulling the wrong way quietly double the cost.
- Cross-AZ traffic — moving data between Availability Zones in one region is billed per GB each way.
- Inter-region replication — copying to another region is metered transfer.
- Per-request fees — GET/PUT billed per thousand; high-request, small-object workloads stack a second bill.
The ways to cut it (in order of effort)
- Put a cache in front (lowest effort). A CDN serves repeat requests from cache, so they never touch metered egress. Cloudflare's free tier gives unmetered cache-hit bandwidth for normal sites; bunny.net (~$0.005–0.01/GB) is excellent for media.
- Move to zero-egress storage. Cloudflare R2 is S3-compatible with no egress fees; Backblaze B2 gives free egress up to 3× stored data. Both speak the S3 API — usually a config change.
- Serve the heavy traffic from a flat-rate box. OVH and Hetzner include generous-to-unlimited transfer.
- Fix the hidden internal egress. Add private-network endpoints (AWS VPC gateway endpoints, Azure Private Link / Service Endpoints, GCP Private Google Access) so internal traffic skips metered paths; collapse needless cross-zone chatter. Worth doing even if you stay put.
When it's genuinely fine (don't move it)
- Low egress (a few hundred GB/month) — the bill is small; not worth a migration.
- Spiky, unpredictable traffic that truly benefits from scale-to-zero and global presence.
- Deep in-region integration — if data is consumed by other AWS services in-region (no internet egress), you're not paying the rate; the fix is the free private-endpoint cleanup, not a move.
Cost by scale
- What 1 TB/mo of AWS egress costs — ~$92/month.
- What 5 TB/mo of AWS egress costs — ~$461/month.
- What 10 TB/mo of AWS egress costs — ~$922/month.
- What 50 TB/mo of AWS egress costs — ~$4,403/month.
- What 100 TB/mo of AWS egress costs — ~$7,987/month.
- What 500 TB/mo of AWS egress costs — ~$29,491/month.
Sources
- AWS EC2/S3 data-transfer-out pricing — the $0.09/GB first tier and 100 GB free allowance — aws.amazon.com/ec2/pricing/on-demand/
- Cloudflare, "AWS's Egregious Egress" — egress unchanged since 2018 while wholesale bandwidth fell ~93% over a decade — blog.cloudflare.com/aws-egregious-egress/
- Alternative pricing (Cloudflare R2 zero egress, bunny.net ~$0.005–0.01/GB, OVH/Hetzner included transfer): the respective provider pricing pages.