How much does egress really cost on AWS, Azure, and OCI?
Data transfer out is the line item that quietly breaks cloud budgets. Here's how AWS, Azure, and OCI egress pricing compares, with worked monthly examples.
Compute gets the attention in cloud budgets because it's the number on the quote. Egress — data transfer out to the internet — is the number nobody models, and it's the one that most often turns a projected saving into a wash. It scales with your traffic, not with your instance count, so it grows exactly when the business is going well.
The headline difference: free tier size
All three hyperscalers give you a monthly allowance of free internet egress before metering starts, then charge per GB on a declining tiered scale. The allowance is where they diverge sharply.
| Provider | Free per month | First paid tier (approx.) |
|---|---|---|
| AWS | 100 GB | ~$0.09 / GB |
| Azure | 100 GB | ~$0.087 / GB |
| OCI | 10 TB | ~$0.0085 / GB |
Figures are public on-demand list prices in US regions, gathered August 2026. Discounts (committed use, reserved capacity, EDP/enterprise agreements) change the picture materially — always confirm against the provider's live calculator before deciding.
Two things stand out. First, OCI's free allowance is 100x larger — 10 TB per month versus 100 GB. Second, once you're past the allowance, OCI's per-GB rate is roughly an order of magnitude below the other two. That combination is why egress-heavy workloads are the single clearest case for looking outside AWS and Azure.
What that means at real traffic volumes
| Monthly egress | AWS | Azure | OCI |
|---|---|---|---|
| 1 TB | ~$83 | ~$80 | $0 (within free tier) |
| 10 TB | ~$900 | ~$870 | $0 (within free tier) |
| 50 TB | ~$4,200 | ~$4,100 | ~$350 |
| 200 TB | ~$16,000 | ~$15,500 | ~$1,650 |
At 1 TB per month the difference is a rounding error on most bills. At 50 TB it's a full-time engineer's salary. At 200 TB it is, for many mid-sized SaaS companies, the difference between gross margin targets being met and missed.
The egress costs people forget to count
- Cross-AZ traffic: AWS and Azure meter traffic between availability zones in the same region. A chatty microservice mesh can generate more internal transfer than customer-facing traffic.
- Cross-region replication: database replicas, backup copies, and DR standbys move data continuously, not just at failover.
- CDN origin pulls: your CDN reduces egress to end users but still pulls from origin on cache misses, and CDN egress is billed separately.
- Object storage retrieval: pulling large datasets out of object storage for analytics, ML training, or a migration is egress at full rate.
- The migration itself: moving 100 TB out of a provider is a one-time egress bill that should be modelled before you commit to a move.
How to model this before you commit
- Pull 12 months of actual data-transfer-out line items from your bill, not a forecast — seasonality matters.
- Separate internet egress from inter-AZ and inter-region transfer; they price differently and move differently.
- Project 24 months forward at your real traffic growth rate, then price that curve on each provider.
- Ask each provider what egress waiver or discount applies to your committed spend — the list price is rarely the enterprise price.
If egress is more than roughly 10% of your total cloud bill, it deserves its own architecture decision rather than being treated as overhead. That's usually the point at which a cross-provider comparison pays for itself.