networkingcost-optimizationawsgcpazure

Egress-free destinations: when outbound data costs you nothing

Not all outbound traffic is billable. Every major cloud has a list of destinations where egress is free, and routing through them is one of the cheapest optimizations available. Here is the list and how to use it.

The C3X Team··7 min read

Quick answer

Several destinations are genuinely free of egress charges. Traffic that stays inside one availability zone over private IPs is free on AWS, Azure, and GCP. Traffic from an AWS region to CloudFront is free. Traffic to most same-region managed services over a gateway endpoint (S3, DynamoDB) is free. AWS gives 100 GB per month of internet egress free, CloudFront gives 1 TB per month free, and GCP gives 200 GB per month. All three clouds now waive egress charges entirely when you are migrating your data off the platform. The practical lesson is that most egress bills come from paths that had a free alternative.

Egress is the line item people complain about most, and the complaint is usually justified: at 0.09 dollars per GB in most AWS US regions, a terabyte of outbound traffic costs about 92 dollars, and the meter never stops. What gets less attention is that a meaningful share of outbound traffic is not billed at all. Each cloud publishes a list of destinations and paths where the per-GB charge is zero, and rerouting traffic onto those paths is one of the highest-leverage, lowest-risk optimizations in the whole cost toolbox.

The free paths, cloud by cloud

PathAWSAzureGCP
Same AZ, private IPFreeFreeFree
Same AZ, public IP0.01 per GB each wayBillableBillable
Cross AZ, same region0.01 per GB each way0.01 per GB0.01 per GB
Region to CDN origin fetchFreeFreeFree
Gateway endpoint to object storeFreen/an/a
Monthly internet free allowance100 GB100 GB200 GB

Same zone over private addresses

The single biggest free path is traffic that never leaves an availability zone and never touches a public address. Two EC2 instances in the same subnet talking over their private IPs move data for zero. The same two instances talking over their public IPs or over an Elastic IP are charged 0.01 dollars per GB in each direction, which is a pure waste because the packets follow nearly the same route. This is exactly the trap covered in private IP versus public IP data transfer, and it is usually a configuration mistake rather than a design choice.

Origin fetches to a CDN are free

Pulling an object from S3 or an EC2 origin into CloudFront costs nothing. That is deliberate: the cloud would rather you serve through the CDN. The economics are striking. Serving 50 TB directly from S3 to the internet costs roughly 4,300 dollars per month at blended AWS egress rates. Serving the same 50 TB through CloudFront costs about 0.085 dollars per GB in North America and Europe, so roughly 4,250 dollars, but with a 90 percent cache hit ratio the origin fetches are free and the effective volume you pay for at the edge is the same 50 TB delivered to users. The real win arrives with committed pricing and with the first terabyte free each month. The mechanics are covered in CDN versus direct egress.

Gateway endpoints for S3 and DynamoDB

A VPC gateway endpoint for S3 or DynamoDB costs nothing per hour and nothing per GB. Without it, traffic from a private subnet to S3 goes through a NAT gateway at 0.045 dollars per hour plus 0.045 dollars per GB processed. A pipeline that reads 20 TB per month from S3 through a NAT gateway pays about 900 dollars in data processing alone. Move that onto a gateway endpoint and the charge is zero. This is the cheapest single change most AWS accounts can make, and it is covered in depth in gateway versus interface endpoints.

Free monthly allowances

AWS gives 100 GB of internet egress free per month across all regions and services, plus 1 TB free from CloudFront. Azure gives 100 GB per month. GCP gives 200 GB of data transfer out from North American regions. For small applications these allowances cover the entire bill. A SaaS product serving 60 GB of API responses per month pays nothing for egress on any of the three clouds. The allowance is per payer account, not per resource, so consolidated billing across many accounts still yields one allowance.

Switching away is now free

Since early 2024 all three major clouds waive egress fees for customers moving their data off the platform entirely. The process requires a support request, closing the account within a defined window, and usually a credit applied after the fact rather than a zero-rated meter. It is a genuine change, but it applies to exit, not to ongoing multi-cloud architectures. If you are copying data between two clouds every day as part of normal operation, you are paying the standard rate, which is the situation described in cross-cloud data transfer.

Other free paths worth knowing

On AWS, data transferred in from the internet is always free, as is traffic between an ELB and its targets in the same AZ, and traffic to and from most AWS service endpoints in the same region when it stays on the private network. On GCP, egress to other Google products such as YouTube, Maps, and Drive is free, as is traffic to a Google Cloud service in the same region. On Azure, inbound is free and traffic within a virtual network in the same zone is free. None of these are exotic; they simply require that you know the boundary and design across it deliberately.

Designing for the free paths

The practical method is to draw your traffic flows and label each arrow with its per-GB rate. Arrows carrying the most bytes should sit on the zero-rate paths: keep chatty services zone-local, put object storage behind gateway endpoints, front public traffic with the CDN, and reserve cross-region hops for data that genuinely must be replicated. Most egress bills are not the price of necessary traffic; they are the price of traffic that took a billable route when a free one existed. Price the topology before you build it against the resource catalog.

FAQ

Which cloud destinations have no egress charge?

Traffic that stays within one availability zone over private IP addresses is free on AWS, Azure, and GCP. Origin fetches from your region into the provider's CDN are free. AWS gateway endpoints to S3 and DynamoDB carry no hourly or per-GB charge. Inbound traffic from the internet is always free. GCP also exempts egress to other Google products such as YouTube and Drive.

How much free egress do I get per month?

AWS provides 100 GB of internet data transfer out per month across regions and services, plus 1 TB per month from CloudFront. Azure provides 100 GB per month. GCP provides 200 GB per month of data transfer out from North American regions. These allowances are per payer account rather than per resource, so consolidated billing across many accounts still yields a single allowance.

Is egress free when leaving a cloud provider?

Since early 2024 AWS, Azure, and GCP all waive egress fees for customers migrating their data off the platform entirely. The waiver typically requires a support request, a commitment to close the account within a defined window, and arrives as a credit rather than a zero-rated meter. It covers exit, not ongoing multi-cloud traffic, which is charged at standard rates.

Why is same-AZ traffic sometimes billed?

Because the charge follows the address, not the distance. Two instances in the same availability zone talking over private IPs transfer data for free, but the same two instances talking over public IPs or an Elastic IP are billed 0.01 dollars per GB in each direction on AWS. This is almost always a configuration mistake: the service was given a public hostname when a private one was available.

How much can a gateway endpoint save?

A VPC gateway endpoint for S3 or DynamoDB has no hourly or per-GB charge, while routing the same traffic through a NAT gateway costs 0.045 dollars per hour plus 0.045 dollars per GB processed. A pipeline reading 20 TB per month from S3 through NAT pays about 900 dollars in data processing that a gateway endpoint eliminates entirely, making it one of the cheapest optimizations available.

How does C3X help with egress cost?

C3X prices infrastructure from Terraform before deployment, so a design that routes traffic through a NAT gateway instead of a gateway endpoint, or that places chatty services in different availability zones, shows its cost in the pull request. Because egress cost is a property of topology rather than of any single resource, seeing the priced plan before it ships is where the free paths get chosen.

What to do next

Route your traffic onto the free paths before you deploy. C3X prices your Terraform topology against a live resource catalog. Start with the quickstart.

Try C3X on your own Terraform

Free and open source. No API key required. One command to install, one command to estimate.