Cloud Repatriation: The Hidden Costs of Public Cloud Architecture
When 37signals reported in late 2024 that they had saved over $2 million by leaving AWS, a wave of CTOs ran the numbers and quietly came to the same conclusion: for predictable, steady-state workloads, the public cloud has gotten expensive in ways that are hard to defend on a finance call.
Two years later, repatriation is not a fringe move. It is a default consideration on any infrastructure review at a company past Series B with stable demand.
The Three Cost Drivers Behind Repatriation
The math has not really changed. The visibility of the math has.
Egress Fees
AWS charges roughly $0.09 per GB out to the internet beyond the first 100 GB. For a company moving 200 TB/month, that is over $18,000 monthly โ for the privilege of letting your data leave. Hetzner charges zero. Cloudflare R2 charges zero. The egress tax is now the single most cited reason for moving.
GPU Markups
H100 instances on AWS list at roughly 3-4x the bare-metal cost amortized over depreciation. For AI workloads, this delta is often the entire margin of the business.
Predictability Premium
Cloud is priced for elasticity. If your workload is not elastic, you are paying for an option you never exercise.
When Repatriation Does Not Pay
Repatriation is a trap for:
- Pre-Series-A startups (your time is more valuable than the savings)
- Genuinely bursty workloads (the cloud was actually designed for these)
- Compliance-heavy industries without dedicated platform staff
- Teams without at least one engineer who has run a fleet before
The Modern Hybrid Stack
The teams getting this right do not pick a side. They run a hybrid:
| Workload | Where it runs |
| Steady-state web tier | Hetzner / OVH / colo |
| GPU training | Lambda Labs, Crusoe, dedicated |
| Bursty traffic | AWS, Cloudflare Workers |
| Object storage | Cloudflare R2, Backblaze B2 |
| Edge | Cloudflare, Vercel |
