$244K Later: Why We Left AWS for Our Own Hardware
Our infrastructure now costs about $100 a month to run, on hardware we own. A few years ago, the same company was paying Amazon Web Services an average of about $4,500 a month. In 2025, with most of the move behind us, the cloud bill was still a few hundred dollars a month. Today the cloud is a small leftover line, and the real work runs on servers we own.
The bigger win is not the bill. It is what the hardware lets us do. Buzzwords, our news-analysis engine, was priced out of the cloud in 2019 because its calculations were too expensive to run there. On our own machines those same calculations are effectively free, and in September 2026 we brought the engine back.
This is the full story, more than a decade of it: what we built, what it cost, where we got it wrong, and what it took to leave.
The number: $243,687.57
Between November 2013 and February 2026, our AWS invoices totaled $261,997.98. AWS credited back $18,310.41 along the way. Net, we paid $243,687.57, nearly a quarter of a million dollars. Our billing statements go back further still. Before that invoice record starts, from 2011 to late 2013, we paid roughly $13,000 more on earlier accounts. That puts the full total at about $257K.
That is the honest number, and it is lower than one we almost published. An earlier version of this post used a much larger total pulled from a parsed spreadsheet of our bills. When we reconciled it line by line against the actual invoices, we found the parser had counted about six years of monthly bills twice. Every figure below comes from the invoices themselves.
The early years: cheap and easy (2011–2016)
Our AWS bills go back to August 2011, when the monthly statements ran a few hundred dollars: about $3,600 for the rest of 2011, $3,300 in 2012 and $4,800 in the first ten months of 2013. The invoice records behind the rest of this post start in November 2013, and that partial year came to $515. It was $3,976 in 2014, under $1,000 in 2015 and $5,482 in 2016. At that scale the cloud is a gift. You pay for what you use, you never think about hardware, and you can try ideas in an afternoon.
In August 2016 we wrote our first cloud function, buzzword-today, in Python. It counted words in the news. That was the seed of Buzzwords.
Buzzwords and the serverless years (2016–2018)
Buzzwords grew into exactly the kind of system AWS markets: event-driven, bursty and API-heavy. At its peak it ran 32 cloud functions, 11 message queues and 10 notification topics, with a document database behind it and an Alexa skill on the front ("Alexa, what are today's buzzwords?").
The bill followed: $23,649 in 2017 and $26,678 in 2018. We also started paying for AWS Business Support in 2017. We kept paying it every year through 2025, $21,399 in total.
Later, RoboTrader added 65 functions of its own, for 97 at peak across both platforms. Twenty-four of RoboTrader's functions were the same time-window code copied once per window, from one minute to ten weeks. One function with a parameter would have done the job.
2019: the bill that broke the bank
2019 was our most expensive year on paper: $53,674 invoiced, about $4,500 a month on average. By then we were running an AWS Organization with 11 accounts, each with its own logging, monitoring and governance overhead.
Then came December. That month's invoice was $24,473, more than our first four years of AWS combined ($10,951). Of that, $20,759 was Lambda, our serverless functions. It was every dollar of Lambda we spent in 2019, all in one month. Buzzwords had just switched on a new sentiment calculation, and it ran on cloud functions against a cloud database.
"A single day of calculations cost a fortune." — Jacob, CEO
AWS bills monthly, so we can't show you one day's cost. The monthly invoice says enough.
To be fair to AWS, they later issued an $11,079 credit against that December bill. With all of 2019's credits ($13,984), our net cost for the year was $39,689. That helped. It didn't change the conclusion. As Jacob puts it, the cloud costs to run Buzzwords and RoboTrader were breaking the bank. So we turned the Buzzwords calculations off and started rebuilding on-prem.
Moving home (2020–2021)
The move was gradual and mostly unglamorous:
- Cloud functions became scheduled scripts. Most of our "serverless" work ran on a predictable schedule anyway. Python and cron on a machine we own do the same job without per-call pricing.
- The cloud document database became CouchDB, keeping the single-table data model we had designed to run on both.
- Managed MySQL became MySQL we run ourselves.
- Web hosting moved to virtual machines on servers we own, behind our own edge.
The bill fell to $21,381 in 2020 and $20,613 in 2021, about $1,750 a month. That was real progress, and it made the next year harder to take.
2022: our worst net year, mid-migration
In 2022 we paid AWS $49,880, with no credits. That is the most we ever paid in a single year after credits, and it came two years into the move.
It was not a mystery. The invoices show where it went: EC2 compute ($16.8K), DynamoDB ($5.6K), Business Support ($4.6K), managed MySQL ($4.2K), S3 storage ($2.7K), Lambda ($2.6K), load balancing ($2.3K), the web application firewall ($1.8K) and AWS Config ($1.3K). In plain terms, we were running both worlds at once. The old platform kept serving while the new one came up, and the governance tooling kept billing for all of it. We were paying AWS to watch us leave.
This is the trap in most cloud exits. Moving 80% of the workload does not cut 80% of the bill. The last services, the support plan and the account-level tooling all shrink last.
The long tail (2023–2026)
The bill finally fell for good: $33,788 invoiced in 2023 ($29,833 after credits), $15,272 in 2024, $5,776 in 2025, and $336 for January and February 2026.
How much did the tail cost? From 2022 through 2024 we paid AWS $94,985 net ($49,880 + $29,833 + $15,272). At our current run rate of about $100 a month, the same 36 months would have cost about $3,600. So the slow exit cost roughly $91,000 more than running at today's rate. Not all of that was waste, because some of it paid for workloads that hadn't moved yet. It is still the clearest price tag we have for moving slowly.
The numbers that matter
| Metric | Value |
|---|---|
| AWS billing history | 2011 – 2026; figures here cover the invoice records, Nov 2013 – Feb 2026 |
| Total invoiced | $261,997.98 |
| Credits from AWS | $18,310.41 |
| Net paid | $243,687.57 |
| Highest year, invoiced | 2019: $53,674 ($39,689 after credits) |
| Highest year, net | 2022: $49,880 |
| Highest month | Dec 2019: $24,473 (AWS later credited $11,079) |
| Biggest single line, lifetime | EC2 compute: $87,281 |
| Support, monitoring and governance lines | at least $46,113 |
| Cloud functions at peak | 97 (32 Buzzwords + 65 RoboTrader) |
| AWS accounts in the Organization | 11 |
| Running cost today | about $100 a month (estimate: power and internet) |
The support and governance figure adds Business Support ($21,399), CloudWatch ($11,720), WAF ($6,364), Config ($3,772) and CloudTrail ($2,858). Those service lines come from a breakdown that reconciles to the invoices but may not capture every charge, so read it as "at least".
The good, the bad and the ugly
The good. We learned event-driven architecture properly, and it still shapes how we build. The cloud let a small team try serious ideas with no hardware at all. And the move worked: about $100 a month instead of about $4,500, with calculations Buzzwords was priced out of now running for next to nothing.
The bad. We built an enterprise-shaped cloud for a small company. Eleven accounts with full governance tooling made sense on a whiteboard. In practice it created overhead that billed every month whether or not any work ran. We paid for Business Support every year from 2017 to 2025, including years when the services it covered were mostly gone.
The ugly. Our worst net year came in the middle of leaving. The infrastructure behind the Alexa skill kept running, and billing, for about three years after anyone used it. And we are still not at zero: two months of 2026 invoices total $336. The cloud is great at starting things and terrible at noticing when you've stopped.
What we'd do differently
Model the bill before the architecture. A per-call price looks tiny until a calculation fans out into thousands of calls, logs, queues and permissions. We should have priced the December 2019 workload before we switched it on.
Size the governance to the company. Account-level tooling is right for organizations with compliance mandates and separate teams. For us it was a recurring tax.
Set an end date for every resource. Every function, queue and account should have an owner and a planned shutdown. Dormant resources lingered for years because nobody made an explicit decision to turn them off.
Commit to the exit. The 2022–2024 tail cost about $91,000 above today's run rate. A hard deadline would have cut it.
The honest assessment
AWS was the right choice in the early years. We had no hardware, and the cloud let us move fast. It was the wrong choice for our calculation-heavy workloads by 2019, and it took us years too long to act on that.
Owning hardware isn't free either. We now own the 3 a.m. pages: disks, power, certificates and backups. The $100 a month is our estimate for power and internet. It doesn't include the hardware itself or our time. We think that trade is clearly worth it for us. It may not be for you.
We're not anti-cloud. But after more than a decade and $244K, we know which bill we'd rather pay. For the run-rate detail, line by line, read the companion piece, About $4,500 a Month to About $100.
The best proof is Buzzwords. The engine we switched off in 2019 because a day of calculations cost a fortune is running again. Its first function's name is now a live website, buzzword.today. The story of that revival is on god of bots, and the bots' own account of the move is in Leaving AWS.
Want the same result for your cloud bill?
We cut our own AWS bill from $53,674 a year (2019, as billed) to about $100 a month, and we kept every product. That work is led by an AWS Certified Solutions Architect – Professional who holds six AWS certifications, including DevOps Engineer – Professional and Security – Specialty. Because we built these platforms on AWS first, we know what belongs in the cloud, what to bring onto your own hardware, and how to move it without breaking anything. Send us your bill and we'll show you where the money goes.
Get a cloud cost review · See our services
Further reading: Leaving AWS: 97 functions, our own hardware · The Buzzwords revival · Buzzwords · RoboTrader · buzzword.today
Part of the Cloud Exit series on d-e-v.com. Next: About $4,500 a Month to About $100, the run-rate math. After that: "DynamoDB to CouchDB: Why We Left NoSQL for NoSQL."




Add new comment
Comments
Comments appear after review.