Cloud Egress Fees Compared: AWS vs. Azure vs. GCP Pricing

When evaluating a new cloud provider, most people look at the instance price first. That's understandable — and still a mistake. The real cost driver is buried in the fine print: egress fees, the charges for outbound data transfer. For data-intensive applications, these costs can exceed the compute bill itself. Ignore them, and the end-of-month invoice becomes a surprise.
What Are Egress Fees and How Do They Arise?
Cloud providers fundamentally distinguish between two directions of data traffic: ingress (data flowing into the data center) and egress (data leaving the data center). Ingress is free with nearly all major providers. Egress is not.
This applies regardless of where the data is going: to an end user on the internet, to another cloud region of the same provider, or to a different cloud provider entirely. Each of these routes has its own rate — and all of them cost extra.
The model isn't new. It dates back to the early days of the public cloud, when bandwidth was genuinely scarce and expensive. At the infrastructure level, that's no longer the case today — but egress prices at the hyperscalers have barely moved.
The Hyperscaler Pricing Model in Detail
The big three — AWS, Azure, and GCP — follow a similar pattern. Concrete numbers (as of 2025, EU region):
AWS: Internet egress costs approximately $0.09/GB from the first GB (after a 100 GB free tier per month). Transfer between AWS regions runs $0.02–0.08/GB depending on the region. Transfer between Availability Zones within a region: $0.01/GB — in both directions.
Azure: Internet egress between €0.05 and €0.087/GB (after a 5 GB free tier). Cross-zone transfer: €0.01/GB.
GCP: Internet egress from $0.085/GB. Between zones: $0.01/GB.
These numbers sound small. They aren't — not when the application transfers multiple terabytes daily.
The Kubernetes Factor: Egress Between Availability Zones
In Kubernetes clusters distributed across multiple Availability Zones, an additional cost dimension emerges: pods communicate with each other across zones, and every byte on that path costs money. With microservice architectures that generate heavy internal traffic, this adds up quickly.
A commonly used countermeasure is Topology-Aware Routing: Kubernetes can be configured so that pods preferentially communicate with endpoints in the same zone. This significantly reduces cross-zone traffic but requires deliberate setup — it's not the default.
How Egress Fees Become a Lock-in Mechanism
Egress costs work in two directions. On one hand, they accrue during normal operations. On the other, they protect the provider against customer churn: anyone who wants to migrate their data to another provider pays egress fees on every byte that leaves the data center. With hundreds of terabytes, that can mean a substantial one-time payment.
This structural lock-in is no accident. The EU Commission has recognized it: the EU Data Act obligates cloud providers, among other things, to facilitate switching by reducing or eliminating switching costs — and mandates that egress fees be eliminated entirely by 2027.
For DevOps teams, this means: portability and migration capability should be built into the architecture from the start — not only when the desire to switch arises.
Egress Fees in Practice: Concrete Cost Examples
A realistic scenario: a SaaS application transfers 10 TB of data per month to the internet. A normal figure for a mid-sized product with an active user base.
With AWS (EU region):
10,000 GB × $0.09 = $900/month. For egress alone. Add compute, storage, and any cross-zone traffic on top.
With a European provider offering 20 TB of included traffic:
$0 for egress. Up to the included allowance.
The difference over a year: nearly $10,800, solely from data transfer charges. Compute costs not even included.
This isn't an extreme example. It's a typical one.
TCO Over List Price: How to Calculate True Cloud Costs
Total Cost of Ownership (TCO) in a cloud context encompasses more than compute and storage. A complete calculation considers:
- Internet egress (by volume)
- Egress between regions and Availability Zones
- Egress to other cloud services (e.g., CDN, external APIs)
- Support costs (basic support at hyperscalers is often paid)
- License costs for proprietary services (load balancers, managed services)
- Migration costs when switching providers
Plug these items into a spreadsheet and project based on your actual traffic profiles — you'll quickly get a far more realistic picture than the first glance at the instance price list provides.
Checklist: What to Consider When Comparing Providers
- Internet egress rate (per GB, after free tier)
- Monthly free allowance — absolute or percentage-based?
- Costs for transfer between regions and zones
- Costs for outbound traffic to CDN providers
- Included traffic in managed Kubernetes offerings
- Switching costs upon cancellation (egress for data migration)
- Pricing transparency — is everything summarized on one page?
Alternatives to the Hyperscalers: What European Providers Do Differently
While AWS, Azure, and GCP have established their egress model as the standard, European cloud providers often take a different approach: included traffic, flat-rate models, or significantly lower per-GB rates.
This isn't purely a cost argument. For companies based in the EU, data protection, GDPR compliance, and digital sovereignty are additional factors. Those who cannot or prefer not to run workloads on infrastructure outside the EU do have EU regions with the hyperscalers — but not EU companies as contractual partners.
Egress fees aren't a technical detail. They're a pricing model designed to work in the background until the first surprising invoice arrives. If you truly want to understand your cloud costs, calculate with TCO — not the cheapest instance type. And if you take flexibility and cost transparency seriously, weigh traffic costs just as heavily as CPU and RAM in your next provider comparison.
Full-Stack Developer Reality: What the Title Actually Means
An honest look at what full-stack development means today, where the real problems lie, and how developers can navigate it without burning out.
Bring Your Own Cloud: What the Model Means and Why It
BYOC is not just another cloud flavor — it is a fundamentally different software delivery model: the vendor deploys into your infrastructure. What that means technically and who needs it.