Understanding Cloud Egress Fees: What You Pay and Why
A clear explanation of cloud egress fees: internet vs inter-region vs same-region transfer, why ingress is free, why hyperscalers charge, and how to estimate your data-transfer bill.
Data transfer is one of the most misunderstood lines on a cloud bill. Putting data into the cloud is almost always free; getting it out is where the meter runs, and the rate swings wildly depending on where the bytes are headed. This article explains the different kinds of transfer, why the pricing looks the way it does, and how to estimate what you will actually pay before the invoice arrives.
Ingress is free, egress is not
Nearly every major cloud lets you upload data for free. Ingress - bytes coming in - costs you nothing because the provider wants your data on their platform. Egress - bytes leaving - is metered, because once your data lives there, charging to move it out both captures revenue and discourages you from leaving. This asymmetry is deliberate, and it shapes how you should architect for cost: design so that the bytes that must leave are minimized, and the bytes that can stay internal, stay internal.
The three kinds of egress
Not all egress is priced the same. There are roughly three tiers, from most expensive to least:
| Transfer type | Typical cost | Example |
|---|---|---|
| Internet egress | $0.05-$0.09/GB (hyperscaler) | Serving a file to a user's browser |
| Inter-region | $0.01-$0.05/GB | Replicating a bucket across regions |
| Cross-AZ (same region) | $0.00-$0.01/GB | Service-to-service across zones |
| Same-AZ / same-region internal | Often free | App reading its co-located bucket |
Internet egress
This is the headline rate and the most expensive path: data leaving the provider's network for the public internet, such as serving downloads or API responses to end users. After a small monthly free allowance, hyperscalers charge in the $0.05 to $0.09 per GB range, with volume discounts at very high tiers. A growing set of alternative providers offer free or bundled egress, which is why provider choice matters so much for outward-serving workloads - compare them on the egress page.
Inter-region transfer
Moving data between two regions of the same cloud - say, replicating storage from one continent to another - is cheaper than public internet egress but still metered. Multi-region architectures and cross-region replication can accumulate meaningful transfer cost, so place data near the compute that uses it.
Same-region and cross-AZ traffic
Traffic that stays within a single region is the cheapest, and traffic within a single availability zone is frequently free. Some providers do charge a small per-GB fee for cross-AZ traffic even within a region, which surprises teams running chatty microservices spread across zones. Co-locating tightly coupled services reduces this.
Why hyperscalers charge so much
The raw cost of transit to a provider operating at hyperscale is a tiny fraction of a cent per GB - far below the $0.05-plus they bill. Egress pricing is therefore a commercial decision, not a cost pass-through. It serves two purposes: it monetizes data movement, and it creates switching friction, since a large dataset becomes expensive to extract. Understanding this reframes egress as a strategic line item you can architect around, not an unavoidable tax. The same data on a free-egress provider can change a project's economics entirely.
What counts as egress (and what does not)
- Counts: data served to the internet, cross-region replication, cross-cloud transfer, often cross-AZ traffic, and data pulled out via API.
- Usually free: uploads (ingress), traffic within the same AZ, and frequently traffic between a provider's storage and its own CDN.
- Watch for: NAT gateway data-processing charges and load-balancer data charges, which are separate meters that ride alongside egress and are easy to miss.
How to estimate your egress bill
- Categorize your traffic. Split expected transfer into internet, inter-region, and same-region buckets - each has a different rate.
- Estimate GB per category per month. Use existing logs, CDN analytics, or a representative sample multiplied up.
- Apply the right rate to each bucket and subtract any free allowance.
- Model a CDN scenario. If most traffic is repeat reads, a CDN cuts origin internet egress by your cache hit ratio; only the misses pay origin rates.
- Model a free-egress provider. Re-price internet egress at zero and add any storage premium to compare totals.
The egress cost calculator handles steps 3 through 5 - plug in your GB by category and compare providers directly. Pull current per-GB rates from the live egress table rather than memorized numbers, since rates and free tiers change. If your egress is storage-driven, the object storage page shows which buckets carry egress fees and which do not.
Practical ways to lower egress
- Cache repeat reads at a CDN edge so the origin only pays on misses.
- Keep service-to-service and storage-to-compute traffic in the same region and AZ.
- Compress text payloads so fewer bytes cross the wire.
- Choose a free-egress or bundled-allowance provider for outward-heavy workloads.
- Use private interconnects for steady, high-volume bulk transfer to your own infrastructure.
Takeaway
Egress fees are a tiered, deliberate pricing structure, not a flat tax: internet egress is the expensive path, inter-region is cheaper, and same-region internal traffic is often free. Ingress is free everywhere because providers want your data in. Categorize your traffic, price each category separately, and model both a CDN and a free-egress provider before committing. Estimate with the calculator, verify rates on the live egress comparison, and revisit whenever your traffic mix changes.