# Egress Fees Are Dead. Lock-In Isn't.

The obituary ran in early 2024, in three installments over nine weeks: [Google on January 11, AWS on March 5, Microsoft on March 13](https://kempitlaw.com/insights/the-end-of-switching-charges-commercial-impact-and-compliance-priorities/), each announcing free data transfer out for customers leaving their platform. The EU Data Act delivers the legal burial on January 12, 2027, when switching charges are banned outright. The toll booth on the exit road, the one Cloudflare had [priced at up to an 80x markup](https://blog.cloudflare.com/aws-egregious-egress/), is gone.

You should celebrate that. Briefly. Then notice something about how easily it went: an industry that fights every regulatory inch surrendered its most infamous fee in nine weeks, globally, with press releases dressed as generosity. Prices that die that gracefully were not load-bearing. Here's the thesis: egress was the lock everyone could see, which is exactly why it was expendable, and the locks that matter, the architectural ones, came through the funeral untouched.

## An inventory of the walls

Lock-in isn't one thing; it's a stack of them, and the Data Act reached exactly one layer.

| Lock | How it holds you | Status after the Data Act |
|------|------------------|---------------------------|
| Billing (exit egress) | Leaving costs money per byte | Dead by January 2027 |
| Proprietary services | Your code calls APIs that exist nowhere else | Untouched |
| Data gravity | State is massive; moving it takes time you don't have | Untouched |
| Identity and access | Years of IAM policy encode your org into one vendor's model | Untouched |
| Committed spend | Prepaid years make your own CFO the vendor's advocate | Untouched |

<p class="table-source">The committed-spend mechanics are covered in the pricing post; the taxonomy above is the map this post walks.</p>

The billing row was the cheapest to concede because it only bit once, at the exit, on a customer already lost. The other rows bite continuously, invisibly, and long before any exit is contemplated, which makes them both stronger and politically safer. No regulator has ever been photographed next to an IAM policy.

## The locks that actually hold

Proprietary services are the honest lock, because they trade real value for real captivity. DynamoDB, Spanner, Lambda's event model, each is genuinely excellent, each has no drop-in twin elsewhere, and every line of code written against one converts a pricing decision into a rewrite project. The [same-app comparison](/cloud/same-app-four-platforms) we published stayed portable only because the reference app used the most generic parts available, and that was a choice; most real systems chose the good parts years ago and are shaped like them now.

Data gravity is the physical lock. Free egress made moving a petabyte free; it did not make it fast, and it did nothing for the harder half, which is moving it while the system keeps running. The arithmetic is unforgiving: a petabyte over a 10 Gbps link takes about nine days at perfect line rate, and no production link runs at perfect line rate. State has mass, replication takes time, cutover windows terrify, and the [exit-plan drills](/sovereignty/your-regulator-wants-an-exit-plan) regulators now expect exist precisely because the calendar, not the invoice, is where exits die.

The identity lock is the one nobody prices. A mature AWS account is thousands of IAM policies, roles, and trust relationships, which is to say your entire organizational security model, written in a dialect one vendor speaks. Translating workloads is engineering. Translating years of accumulated permissions, exceptions, and tribal knowledge about why that one role exists is archaeology, and it's the part every migration underestimates because it doesn't show up on any bill. Your team's fluency compounds the same way: five years of AWS-shaped instincts is an asset that quietly votes against every alternative in every architecture review.

And committed spend does its work through your own finance department, as covered in the [pricing post](/industry/cloud-pricing-is-a-business-model): three prepaid years make every migration proposal a proposal to strand money, and no CFO hears those neutrally.

## The steelman: lock-in is just value, priced

The best defense of the remaining locks is that they aren't locks at all; they're the receipt for value received. You adopted DynamoDB because it was the best tool, your team's AWS fluency is expertise rather than captivity, and demanding every service have a portable twin is demanding the least-common-denominator cloud, which nobody actually wants to build on. Switching costs exist in every deep technology relationship, from ERP to email, and treating them as a scandal is naive. There's real force here: some lock-in is the shadow cast by genuine capability, and a strategy of avoiding every proprietary service is usually a strategy of shipping slower forever.

The answer isn't to refuse the trade; it's to price it. Adopt the proprietary service with your eyes open, with the divorce cost written next to the capability gain, reviewed like any other liability, because a cost you've priced is a decision and a cost you've never examined is a trap. The vendors' own behavior shows which state they prefer: the fee everyone could price died in nine weeks, while the costs nobody prices survived the funeral in perfect health. Free egress means the walls no longer charge admission on the way out. Walk the perimeter of your own architecture sometime and count them anyway: which rows of that table would actually hold you, and what's the number written next to each one? If there's no number, that's the answer.

---

Related: [Cloud Pricing Complexity Is a Business Model, Not an Accident](/industry/cloud-pricing-is-a-business-model), where the committed-spend lock got its anatomy.
More about what we're building at [light-cloud.com](https://light-cloud.com).
