$RodHat_
MOTD

Egress fees were never about bandwidth

Published by

Egress fees were never about bandwidth
Photo: AI-generated — no human photographer / RodHat AI Cover

Bandwidth is a commodity. It is one of the few things in computing whose cost has fallen relentlessly for thirty years with no sign of stopping. Transit at scale is priced in fractions of a cent per gigabyte and has been for a long time.

Cloud egress was priced at multiples of that, for years, at every major provider, with remarkable pricing consistency between competitors. Ingress was free.

If that asymmetry were about recovering a cost, ingress would cost something too. Packets go both ways over the same fibre. The asymmetry only makes sense as what it obviously was: free to move in, expensive to move out.

Data gravity, priced

The mechanism is elegant and I have a grudging respect for it.

You don’t decide to be locked in. You accumulate. A few terabytes of logs. Then object storage backing the application. Then a data warehouse. Then five years of analytics history that three teams depend on and nobody has ever considered moving.

By the time somebody asks what a migration would cost, the answer includes an egress bill large enough to make the whole conversation stop. Not “we’d rather not” — a line item that makes the business case fail on arithmetic alone. The lock-in was never contractual. It was the exit fee, compounding quietly with every gigabyte you wrote.

The genius of it is that it’s invisible during accumulation. Every individual decision to store one more thing was correct and cheap. The trap closed by summation.

Then it got regulated

The EU Data Act put switching costs for cloud services squarely in scope, with a path toward eliminating charges for moving your own data out. The major providers announced free egress for customers leaving, ahead of the deadlines, in the way you announce something you’ve decided you’re going to have to do anyway.

Read the fine print and it’s narrower than the headlines suggested — free egress when you’re leaving entirely, with process requirements, notice periods, and account closure attached. That’s not the same as egress being free for a hybrid architecture, or for a team that wants their data in two places, or for anything that isn’t a full exit.

But the direction is real, and the thing I got wrong is worth admitting.

What I expected

My assumption was that this would be routed around within a year. Cap the fee at the front door and the margin reappears somewhere else — API request pricing, cross-region transfer, a “premium tier” for the throughput you need to actually complete a petabyte migration before the heat death of the universe.

Some of that happened. Cross-region and cross-AZ transfer pricing remains a rich vein and nobody regulated it. Request-count pricing on object storage does real work on a migration involving hundreds of millions of small objects — and that’s the bill people don’t model, because it doesn’t look like a data transfer charge at all.

But the headline fee genuinely came down and stayed down, and the reason isn’t regulatory enforcement. It’s that once one provider could advertise “leaving is free,” it became a competitive lever for winning migrations in. The regulation created the opening; the sales incentive did the rest. Competition and regulation working in the same direction is rare enough that I should have allowed for it.

The lock-in that didn’t go anywhere

Here’s the part that matters more than the fee, and it’s the reason I’m not celebrating.

Moving bytes was always the easy problem. Moving architecture is the hard one, and nothing about it changed.

Your data may be free to extract. Your application is still built on a managed queue with proprietary delivery semantics, a serverless runtime with a bespoke event model, an IAM system whose policy language has no equivalent anywhere else, and a managed database whose failover behaviour your code quietly depends on. None of that is a data transfer problem. All of it is a rewrite.

The exit cost moved from the egress bill to the engineering calendar, which is worse in one specific way: it’s not a number anyone can put on a slide. A €400,000 egress charge is a line item an executive can approve or reject. “Eighteen months of platform engineering with no user-visible output” doesn’t survive a planning cycle, and it never gets to the point of being rejected — it just never gets proposed.

So: fees down, good, genuinely. But if you want to know your real switching cost, don’t measure it in terabytes. Count the managed services with no open equivalent, and multiply by how long it takes your team to reimplement one.