Cloud Egress Pricing: The Math Behind AWS’s Markup

In the early days of web hosting, providers metered every resource separately — bandwidth, storage, CPU, memory. Customers resented the itemized bills, and the market eventually settled on flat-rate pricing. Then AWS arrived with a flexible, scalable model that reintroduced metering at scale, most painfully for data transfer out of the cloud.

AWS prices egress by the byte delivered — charge based on the volume of data, or “stock.” But AWS pays for its underlying network capacity by the megabit per second (Mbps) — the diameter of the pipe, or “flow.” That disconnect is where the margin lives.

From Pipe Diameter to Data Volume

A 1 Mbps connection running at full capacity for a month moves about 0.3285 TB. Wholesale transit contracts are typically billed at the 95th percentile, which trims the peak hour each day and lets a dedicated 1 Mbps link realistically push closer to 0.3458 TB per month. AWS will never run every transit link at 100% utilization; an average of 20–40% is typical for the industry. Assuming a conservative 20% floor, and using wholesale rates Cloudflare sees in the market (rounded up so AWS looks better), the markup on AWS egress is stark on a per-region basis.

AWS’s Egregious Egress
BLOG-597 Embedded Image - HxXJAr
BLOG-597 Embedded Image - ALWhKZ

The pattern holds: the longer AWS has operated in a region, the higher the effective markup. Even the newer Seoul availability zone carries a 357% premium, so there is little reason to expect relief as a market matures.

What About Peering?

AWS’s costs are not uniform. Traffic exchanged over a settlement-free peering connection — where AWS and a network like Cloudflare interconnect over a private network interface — carries no meaningful incremental cost, so the effective margin approaches infinity. AWS also collects rebates from colocation providers that charge customers cross-connect fees, pushing the real markup even higher.

Other major clouds have acted on this distinction. Both Microsoft Azure and Google Cloud offer substantial discounts on egress when traffic flows to mutual Cloudflare customers. The Bandwidth Alliance — including Alibaba, Backblaze, DreamHost, Scaleway, Vultr, Wasabi, and others — waives egress fees entirely for mutual customers. AWS is the notable holdout. The company was invited to join the Bandwidth Alliance and declined.

BLOG-597 Embedded Image - rbpCga

When neither the cloud provider nor the network incurs meaningful costs for peered traffic, charging customers the same rate as public internet transit is hard to justify on any technical basis.

Prices Frozen While Costs Fall

AWS’s stated mission emphasizes the lowest possible prices, but egress pricing tells a different story. Wholesale transit prices have fallen an average of 23% per year for a decade, leaving them 93% cheaper than ten years ago. AWS egress fees dropped only 25% over the same period, and in North America and Europe they have not changed since 2018 — even as wholesale costs there fell by more than half.

The Asymmetry That Makes No Sense

Unlike residential cable connections, wholesale bandwidth is symmetrical. A 1 Mbps link can carry 1 Mbps in and 1 Mbps out at the same total cost. Ingress and egress cost AWS identically, yet customers pay only for data leaving the cloud — sometimes at a premium that exceeds the cost of the underlying transport by several multiples. Even a charitable look at storage wear or capacity planning suggests egress should cost less than ingress, not more.

BLOG-597 Embedded Image - q0zvEQ

We could not find an innocent explanation. The most straightforward interpretation is that egress fees are structured to make it expensive to leave the AWS platform.

Against the Objections

AWS might argue that egress pricing must cover dark fiber, optical gear, and cross connects. At AWS’s scale, those costs are a rounding error — under a cent per Mbps — and they have fallen alongside transit prices. The default pricing that small businesses see remains unchanged, and negotiated deals with large customers still carry heavy egress charges.

Cloudflare and AWS share many customers, and AWS remains a strong service. The hope is that egress pricing eventually reflects the real cost structure, as most of the hosting industry has already done.

Footnote

1 To convert flow to stock: 1 Mbps at 100% for one month equals (1 million bits per second) × (60 seconds/minute) × (60 minutes/hour) × (730 hours/month) ÷ (8 bits/byte) ÷ 1012 bytes per TB = 0.3285 TB/month.

BLOG-597 Embedded Image - qCWWqe