Egress fees are charges for data transferred out of a cloud network or between its locations, usually priced per gigabyte. In cloud economics they are one of the most frequently underestimated cost lines, because inbound data transfer is typically free while outbound traffic to the internet, other regions or other clouds is metered.
Also called data transfer costs, egress fees influence architecture as much as budgets. They affect where workloads run, how data is replicated, whether a content delivery network is used and how expensive it is to move away from a provider, which is why they are central to discussions of vendor lock-in and multi-cloud strategy.
How egress fees are charged
Providers meter bytes that cross defined boundaries. The direction and destination of traffic decide the rate: data leaving to the public internet is billed at the highest rate, traffic between regions at a lower rate, and traffic between availability zones in the same region often at a small per-gigabyte charge in both directions. Traffic within a single zone over private addresses is generally free.
Internet egress is normally priced in volume tiers, so the per-gigabyte rate falls as monthly volume grows. Many providers include a free monthly allowance, commonly around 100 GB for internet egress, and list prices for the first tier have historically been in the range of several cents per gigabyte, varying by region and provider. Exact rates change and must be checked against the current price list.
Billing granularity also matters. Transfer is usually measured in gigabytes per month per usage type, and the bill groups it under labels such as internet out, inter-region or regional transfer. Because these lines are spread across many services, egress is rarely visible as one number, which is a major reason it surprises teams. Tagging resources and exporting detailed billing data to a query tool turns these scattered lines into a clear picture per application.
The table below summarizes the main traffic paths and how they are usually billed.
| Traffic path | Usually billed | Relative cost |
|---|---|---|
| Inbound from the internet | No | Free |
| Within one availability zone | No, on private addresses | Free |
| Between availability zones | Yes, often in each direction | Low |
| Between regions | Yes | Moderate |
| To the internet | Yes, in volume tiers | Highest |
| Through a CDN to users | Yes, at CDN rates | Often lower than direct egress |
| Over a dedicated interconnect | Yes, at reduced rates plus port fees | Lower per gigabyte |
Hidden sources of egress
Much egress does not come from serving users but from internal architecture. Several patterns create data transfer charges that teams do not anticipate when they design a system.
| Pattern | Why it costs money | Mitigation |
|---|---|---|
| Cross-zone microservice calls | Every request and response crosses a billed boundary | Zone-aware routing and topology hints |
| NAT gateway for cloud APIs | Processing charge on top of transfer | Private endpoints for storage and services |
| Cross-region replication | Every write is copied to another region | Replicate only data that needs disaster recovery |
| Analytics in another cloud | Raw data leaves the provider | Process data where it is stored |
| Database replicas in other zones | Replication traffic between zones | Accept as resilience cost, size deliberately |
NAT gateway charges deserve special attention. Traffic from private subnets to object storage or other managed services can pass through a NAT gateway and incur a per-gigabyte processing fee, even though the destination is inside the same provider. Gateway or private endpoints usually remove that charge.
Egress fees and vendor lock-in
Because ingress is free and egress is not, moving data into a cloud is cheap while moving it out is expensive. For organizations with petabytes of data, the cost of a one-time migration to another provider can be a significant barrier, which critics describe as a form of economic lock-in.
Regulation and competition have started to change this. Following European data portability rules, several large providers announced waivers of egress fees for customers leaving the platform entirely, usually requiring an application and a completed migration within a set period. These waivers do not cover ongoing multi-cloud traffic, so day-to-day egress remains billed.
Some alternative object storage providers and S3-compatible services market zero or low egress pricing, often with fair-use limits tied to stored volume. They can reduce costs for download-heavy workloads, but teams should compare total cost, including request fees and performance, rather than egress alone.
Reducing egress costs
Effective reduction combines architecture changes with FinOps practices such as cost allocation and cost anomaly detection, so that data transfer is visible per team and per service.
| Strategy | Effect | Trade-off |
|---|---|---|
| Content delivery network | Caches content close to users, lowers origin egress | CDN fees and cache invalidation complexity |
| Compression | Fewer bytes per response | Small CPU overhead |
| Co-locating compute and data | Keeps traffic in one region or zone | Less geographic redundancy |
| Private endpoints | Avoids NAT processing charges | Extra configuration per service |
| Committed or negotiated pricing | Lower per-gigabyte rates at scale | Requires volume commitment |
The essential first step is measurement. Billing exports broken down by usage type, together with VPC flow logs, show which services and paths generate the traffic, and the largest contributor is often not the one teams expect.
Common misjudgments
- Treating multi-zone deployment as free: high availability across zones adds inter-zone transfer charges.
- Estimating only compute and storage in a total cost of ownership comparison, leaving data transfer out.
- Assuming a free tier covers production: monthly allowances are small compared with real workloads.
- Ignoring egress from backups and exports to external systems or other clouds.
- Optimizing rates instead of volume: removing unnecessary transfer usually saves more than negotiating price.
A practical rule is to estimate data transfer during design reviews, alongside compute and storage, by multiplying expected request volume by average response size for each traffic path. Even a rough estimate reveals whether an architecture choice will cost a few dollars or thousands per month.
In plain words
Egress fees are like a toll on the way out of a parking garage. Driving in costs nothing, but every car that leaves pays. In the cloud, the cars are data, and every gigabyte sent out to users, other regions or other providers is charged.
For small websites the toll is barely noticeable. For companies that move large amounts of data, it can become one of the biggest items on the cloud bill and can make switching providers expensive.
A real-world example
A media startup hosted video files in object storage and streamed them directly to viewers. As its audience grew to about 200 TB of downloads per month, the monthly bill showed data transfer costing more than compute and storage combined, a situation the founders had not modeled.
The engineering team placed a content delivery network in front of the storage bucket, enabled long cache lifetimes for finished videos and moved thumbnail generation into the same region as the bucket. Because most views now came from CDN caches, origin egress fell to a small fraction of its previous level, and total delivery cost dropped noticeably even after adding the CDN fees.