Cloud Egress Fees Explained — Why Your Bill Is Higher Than Expected

What Egress Fees Are and Why They Exist

Cloud pricing has gotten complicated with all the marketing noise flying around. “Pay only for what you use.” Sure. But nobody mentions what happens when your data wants to leave.

Here’s the short version: data going into your cloud provider is free. Data coming out? You’re paying per gigabyte. Every single time.

I discovered this the hard way in 2019. My team had built a SaaS application on AWS, and we were shuffling customer data between regions for compliance reasons. The architecture diagram looked clean — elegant, even. The actual bill made me want to flip a table.

Probably should have opened with this section, honestly. Most teams don’t know egress fees exist until they show up on an invoice. By then, you’ve already built your entire system around services that seemed cheap until they weren’t.

But what is egress, exactly? In essence, it’s any data leaving your cloud environment. But it’s much more than that. Your application pushing data out of a cloud region — egress. A customer downloading files from your S3 bucket — egress. Backing up to a different provider — egress. Your CDN pulling content from origin — egress. Replicating a database across regions — egress. The word starts to feel ominous once you understand how often it’s happening.

AWS calls it “data transfer.” Azure calls it “bandwidth.” GCP calls it “egress.” The terminology differs. The pain is identical.

The underlying logic isn’t entirely unreasonable. Data centers run on physical network connections. Those connections have real capacity limits and real costs. When a gigabyte leaves AWS, it traverses multiple networks. AWS pays for that capacity. They pass it along to you, with markup.

And the markup is substantial. AWS probably pays around $0.02 per gigabyte in actual network costs for most regions. They charge you $0.09. That’s a 4.5x markup. It sounds predatory, but it’s really just the economics of cloud infrastructure — providers lose money if you leave, gain money if you stay. Hence the pricing model that makes egress feel like trying to escape a casino.

That’s what makes egress fees so endearing to us engineers who love clean billing. Don’t make my mistake. Know what you’re walking into before the first invoice arrives.

Egress Pricing Compared — AWS vs Azure vs GCP vs OCI

So, without further ado, let’s dive in. Here’s actual pricing as of early 2024. These numbers shift slightly over time but stay directionally consistent — meaning the relative pain stays roughly the same.

AWS Egress Rates (US East 1)

  • First 1 GB per month: $0.00 (free tier)
  • Next 9.999 TB: $0.09 per GB ($92.16 per TB)
  • Next 40 TB: $0.085 per GB ($87.04 per TB)
  • Beyond 50 TB: $0.07 per GB ($71.68 per TB)

Azure Egress Rates (US East)

  • First 5 GB per month: $0.00 (free tier, sometimes)
  • Next 9.995 TB: $0.087 per GB ($89.09 per TB)
  • Next 40 TB: $0.083 per GB ($85.05 per TB)
  • Beyond 50 TB: $0.08 per GB ($81.92 per TB)

Google Cloud Egress Rates (us-central1)

  • First 1 GB per month: $0.00 (free tier)
  • 1 TB to 10 TB: $0.12 per GB ($122.88 per TB)
  • 10 TB to 100 TB: $0.10 per GB ($102.40 per TB)
  • Beyond 100 TB: $0.08 per GB ($81.92 per TB)

Oracle Cloud Egress Rates (Ashburn region)

  • First 10 TB per month: Free
  • Beyond 10 TB: $0.0085 per GB ($8.70 per TB)

Oracle’s pricing breaks the model entirely. Roughly one-tenth of what AWS charges. This isn’t accidental — Oracle is actively hunting AWS enterprise market share, and egress pricing is their sharpest weapon right now.

The gap at scale is staggering. Run a video delivery service pushing 1,000 TB monthly. On AWS, after volume discounts, you’re looking at roughly $71,680 per month. On Oracle? $8,492. Same data. Wildly different outcome for your finance team.

GCP charges the most aggressively of the major three. Their focus is analytics and machine learning workloads — not data delivery. They don’t expect you to move much out. Pricing reflects that assumption pretty bluntly.

Azure lands in the middle. Microsoft knows enterprise customers run hybrid workloads. Data flows in and out constantly. Their pricing acknowledges that reality, even if only slightly.

Cross-region egress adds yet another layer. Moving data between two AWS regions inside the United States runs $0.01 per GB. International transfers hit $0.02 per GB. Cheaper than external egress — but significant once you’re replicating at any real scale.

Common Scenarios That Trigger Surprise Bills

CDN Without Proper Caching

You’ve set up CloudFront. AWS’s CDN promises fast content delivery. What nobody emphasizes during setup is that every cache miss pulls from origin. Every origin pull is egress.

A 70 percent cache hit rate means 30 percent of your traffic moves from S3 to CloudFront as billable egress. At $0.085 per GB, a website pushing 50 TB monthly generates $1,275 just from cache misses. Most teams aren’t tracking that metric at all.

Database Replication Across Regions

Production database in us-east-1. Disaster recovery replica in eu-west-1. PostgreSQL, MySQL, MongoDB — doesn’t matter which. Replication is constant egress, running quietly in the background.

A 500 GB database with continuous replication generates roughly 50 GB daily of replica traffic — call it 1,500 GB monthly. At $0.01 per GB cross-region, that’s $15 monthly. Fine, right? Add three more regions for compliance requirements, and you’re at $60 monthly for replication alone. Stack multiple databases on top, and it balloons fast.

API Responses to External Clients

Your REST API runs on EC2. Clients request JSON responses. Each response is data leaving AWS — egress, charged accordingly. One million daily requests averaging 50 KB each comes out to 50 TB monthly. At $0.085 per GB, that’s $4,250 monthly in API egress alone.

I worked with a fintech startup that ran directly into this. Their cost model assumed $8,000 monthly on AWS. Actual bill came in at $32,000 — mostly egress from API calls they hadn’t factored in at all. They rebuilt on OCI within six months. That was an expensive lesson.

Backup to a Different Provider

Multi-cloud strategy: data in AWS, backups going to Azure. Every backup is egress from AWS, then ingress to Azure — ingress being free, naturally. A 100 GB daily backup means 3 TB leaving AWS monthly at $255. Over twelve months, that’s $3,060 just to keep backups on a second provider.

Cross-provider backups add up faster than most teams expect — especially when they’re treating it as a free redundancy move.

Log Aggregation

CloudWatch, Datadog, Splunk, New Relic — whichever logging service you’re using, if it lives outside AWS, every log line is egress. A moderately busy application generates around 500 MB of logs daily. That’s 15 GB monthly. At $0.085 per GB, roughly $1.28. Essentially nothing.

Ten applications? $128 monthly. A hundred applications across an organization? $1,280 monthly just for logging egress. It compounds quietly.

How to Reduce Egress Costs

CDN With Aggressive Caching

Implement proper cache headers. Set CloudFront TTLs to 24 hours for static content, one hour for semi-static pages. Enable gzip compression on responses. These three changes alone can push hit rates from 70 percent to 95 percent — which translates directly to lower egress bills.

Serving media files? Implement image optimization and switch to WebP instead of JPEG. File sizes drop 30 to 40 percent. Less data moved per request, lower monthly costs. The CloudFront configuration cost here is essentially zero. The savings are real.

Keep Everything in the Same Region

Single-region architecture eliminates cross-region egress entirely. Database, application servers, cache layer, CDN origin — all in us-east-1. Data stays local.

This works cleanly until you need disaster recovery or international presence. At that point, accept some cross-region replication as a cost of doing business. Minimize it where possible. Use read replicas in secondary regions rather than full database copies — at least if you want to avoid replication costs spiraling out of control.

Use OCI for Egress-Heavy Workloads

If your business model involves moving significant amounts of data, Oracle Cloud is worth a serious evaluation. The $0.0085 per GB rate is genuinely transformative for the right use cases.

A video hosting startup I consulted with ran the numbers carefully. Moving to OCI for storage and egress saved them $240,000 annually. They kept AWS for compute-heavy machine learning workloads. Hybrid cloud, optimized by actual cost data rather than vendor loyalty. That was the right call for them.

Compression and Data Reduction

Before data leaves your cloud environment, compress it. Text compresses 70 to 90 percent. JSON compresses similarly well. Even binary data often compresses 20 to 40 percent, depending on content type.

Database backups compressed before transfer reduce egress by 50 percent without much effort. Log files compressed before shipping to external logging platforms can reduce egress 80 percent. One client dropped their monthly egress bill from $6,000 to $1,200 purely by enabling gzip compression on API responses. CPU overhead was negligible. Savings were immediate.

Committed Use Discounts

AWS offers committed use discounts on data transfer. Commit to twelve months of egress volume, get roughly 25 percent off. This works well for predictable, stable workloads — batch data processing, regular reporting exports, scheduled backups.

For unpredictable or spiky workloads, skip it. Committing to volume you might not hit is just prepaying for nothing.

Local Caching at the Edge

Lambda@Edge processes requests at CloudFront edge locations directly. Responses stay local instead of traveling back to origin for every request.

A real estate search platform used Lambda@Edge to filter property listings at the edge — only the filtered results ever hit origin. Egress dropped 60 percent. Same user experience. Substantially smaller bill.

Evaluate Your Architecture

Ask hard questions early. Does this data actually need to live in the cloud? Can processing happen locally? Should some data live inside a customer’s VPC rather than your centralized cloud account?

I worked with a healthcare client storing patient records in AWS and then transmitting them back to their own on-premises servers for compliance processing. Every patient record was egress. We changed the architecture — data stayed on-premises, AWS held only non-sensitive metadata. Monthly egress dropped from $2,400 to $120.

Sometimes the most expensive line item isn’t the technology choice. It’s the assumption that everything belongs in the cloud — made once, early, and never revisited.

Marcus Chen

Marcus Chen

Author & Expert

Robert Chen specializes in military network security and identity management. He writes about PKI certificates, CAC reader troubleshooting, and DoD enterprise tools based on hands-on experience supporting military IT infrastructure.

76 Articles
View All Posts

Stay in the loop

Get the latest multicloud hosting updates delivered to your inbox.