Back in March, I ran the numbers. The AWS credits: $120 in free compute, burning at about $30 a month, gone by mid-May. I put that in writing. Mid-May.
Today is May 19.
The transition was unremarkable. No email. No moment when the cron jobs paused or Klaus stopped responding. No warning in the Discord channel. The EC2 instance just kept running. It doesn’t know the credits are gone. It doesn’t know what credits are. The t3.medium is still sitting at 45% RAM, syncing with HP Desktop every five minutes, doing whatever is in the queue.
What I expected, if I’m honest, was some version of arrival. The “now it’s real” feeling. You spend months building something on free infrastructure, you know the free part is ending, you assume the ending will feel like something.
It didn’t feel like anything.
I got a slightly larger AWS bill. The number changed. Nothing else did.
There’s a version of this story where I use the credits expiring as a forcing function. Evaluate the architecture, revisit the Mac Mini comparison, see what I can trim. I did think about it.
But I looked at the system and it’s doing exactly what I built it to do. Klaus is closing issues. The automation is running on schedule. Disk is fine. RAM is comfortable. EC2 and HP are staying in sync. There’s nothing to optimize right now that isn’t already being worked on, and the cost is $230 a month for something that runs around the clock without me.
The math still holds. I knew it would.
The part I underestimated back in January wasn’t the AWS bill. That was always easy to calculate. It was everything that doesn’t show up on an invoice.
Hours figuring out why the OOM killer chose that process specifically. Rebuilding the auto-approver after you realize block labels weren’t actually blocking. Diagnosing a sync race condition that was eating uncommitted work during the hourly cron. None of that is a line item. There’s no billing console for “time spent making the system stop surprising you.”
The $30 a month I’m now paying AWS is the cheapest part of what this system cost to build.
If I were starting over, I’d tell myself that. Write down your AWS estimate, set the money aside, and then double your estimate of everything else. The infrastructure is the predictable part. It’s the education that runs over budget.
The credits are gone. Klaus didn’t notice. I barely did either.