AWS Bills Have a Way of Sneaking Up on You
Mine hit $135/day before I knew it.
Look, I'm grateful for AWS Activate credits. They've funded years of experimentation. But there's a dark side to free money—it masks terrible spending habits.
After acquiring 10+ businesses, each with their own AWS accounts, I had a mess on my hands. Half-configured RDS instances someone forgot to delete. Load balancers pointing to nothing. S3 buckets from experiments that died in 2022.
When those credits hit their expiration date, reality struck. Time to see how much fat I could cut.
Spoiler: I dropped our bill from $135/day to $47/day. Here's how.
First: Kill the Zombies
Every acquisition came with digital ghosts. Previous founders would spin up environments, run tests, then move on to the next shiny thing.
I found pre-production environments nobody had touched in months. Kubernetes clusters running 24/7 for applications with zero traffic. One account had three different staging environments for the same app.
The rule: If the team isn't using it, kill it.
No exceptions. No "but we might need it later." That's how you stay poor.
The Hidden Bill Killers
Here's what really shocked me—developers would shut down EC2 instances but leave everything else running. I'd see $10/month in VPC and EC2-Other charges for "stopped" infrastructure.
Pro tip: There's more to tear down than just your instance.
The real killers were:
- Dead EBS volumes attached to terminated instances ($15/month each)
- NAT gateways serving zero traffic ($45/month)
- Elastic IPs not attached to anything ($3.60/month per IP)
- Log groups storing debug output from 2021 ($2-20/month)
- Load balancers pointing to dead targets ($20/month minimum)
CDK, CloudFormation, and Beanstalk are the worst offenders. They create dozens of resources and clean up maybe half when you delete a stack.
The Big Question: Do You Really Need Enterprise Everything?
This was my moment of truth. I asked myself:
- Do we need 99.99% uptime for our MVP with 200 users?
- Are we actually using auto-scaling?
- Does our SaaS really need enterprise Kubernetes?
The answer was obvious. We were running NASA-level infrastructure for a lemonade stand.
Kamal: My Escape Hatch
Kubernetes was costing us a fortune. Multiple master nodes, worker nodes, load balancers, plus the complexity tax of managing it all.
Kamal changed everything.
Rails deployments without the complexity. No load balancer fees. No managed Kubernetes charges. Just containers on simple servers.
Setup took an afternoon. Our team went from fighting YAML configurations to shipping features. And our infrastructure costs dropped by 60%.
The Real Lesson
Most startups are over-engineering from day one. You're not Netflix. You're not handling Black Friday traffic. You probably don't even have product-market fit yet.
Start simple. Ship fast. Scale when you actually need to.
Your users care about your product working, not whether you're using the latest orchestration platform.
What's Next?
Now that our applications are portable thanks to Docker and Kamal, I'm evaluating competitors. Hetzner, AmericanCloud, Linode—they're all viable options when you're not locked into AWS-specific services.
Want to audit your own AWS bill? Start with Cost Explorer. Sort by service. Anything over $20/month that you can't explain in one sentence? That's your first target.
The goal isn't to spend zero on infrastructure. It's to spend money on things that actually move your business forward.