Cloud egress costs

What are cloud egress costs?

Cloud egress costs, sometimes referred to as cloud data transfer costs, are charges incurred when data moves out of a cloud provider's network. Transferring data to the internet, users, another region, or a different cloud provider all generate egress charges. Ingress, moving data into a cloud environment, is typically free.

Egress costs are one of the more overlooked line items on a cloud bill. These charges do not map to a specific resource the way compute or storage does, which makes them easy to miss until they show up as an unexpected spike.

Why egress costs accumulate

Data moves constantly in a cloud environment. A few common sources of egress spend include:

  • Serving application content or API responses to end users over the internet.
  • Replicating data across regions for redundancy or disaster recovery.
  • Transferring data between cloud providers in multi-cloud environments.
  • Exporting data to on-premises systems or third-party services.
  • Sending logs, metrics, or backups to external monitoring or storage destinations.

Each of these generates egress charges at rates that vary by provider, region, and destination.

How egress is priced across AWS, Azure, and GCP

Egress pricing differs meaningfully across providers and is one of the more complex parts of a cloud bill:

  • AWS charges for data transferred out to the internet on a tiered basis, with lower rates at higher volumes. Data transferred between AWS regions is also charged. So is data transferred between availability zones within the same region in some cases. Data transfer within the same availability zone is generally free.
  • Azure charges for outbound data transfers to the internet on a tiered model that's similar to AWS. Data transferred between Azure regions is charged, though rates vary by region pair. Some services have their own egress pricing that differs from the standard rates.
  • GCP charges for egress to the internet and between regions. GCP has historically been more transparent about egress pricing and offers free egress for data transferred to Google services like BigQuery in some configurations.

All three providers offer free egress in specific scenarios, such as data transferred to their own CDN services or within the same region and availability zone.

Egress costs in a multi-cloud environment

Egress charges become particularly significant when data moves between cloud providers. There is no peering agreement between AWS, Azure, and GCP, which means transferring data from one provider to another goes over the public internet and incurs full egress rates on the sending side.

For organizations running workloads across multiple clouds, this creates a real cost consideration around where data lives and how it moves between environments. Architectural decisions that seem neutral from a performance perspective can have meaningful egress cost implications.

What egress costs look like at scale

Say a media company serves video content from AWS S3 to users globally. Monthly egress volume is around 500TB.

DestinationVolumeApproximate monthly cost
Internet (United States users)300TB$27,000
Internet (European Union users)150TB$13,500
Cross-region replication50TB$1,000
Total$41,500

Note: Figures are based on a simplified flat rate for illustration. AWS S3 egress pricing is tiered and varies by region and destination. See the AWS pricing page for current rates.

Shifting delivery to AWS CloudFront reduces internet egress charges significantly, as data transferred from S3 to CloudFront is free and CloudFront's egress rates are lower than standard S3 rates.

Reducing egress costs

Here are a few approaches to reducing egress costs that tend to have the most impact:

  • Use a CDN to serve content closer to users and take advantage of lower CDN egress rates.
  • Minimize unnecessary cross-region data transfers by keeping data and compute in the same region where possible.
  • Compress data before transferring it to reduce the volume being billed.
  • Review architecture decisions that result in data moving between availability zones unnecessarily.
  • Evaluate whether data that needs to move between providers in multi-cloud environments could instead be processed where it already lives.