The industry lies to you. They say Serverless is “pay for what you use.” They forget to mention that the unit price is 10x higher than provisioned compute. Here represents 3 years of billing data.
The “Start-Up” Phase: Serverless Wins
When we had 1,000 MAU (Monthly Active Users), our AWS Lambda bill was $12. An EKS cluster control plane alone costs $72/month. At this scale, Serverless is a no-brainer.
The “Scaling” Phase: The API Gateway Tax
What nobody tells you is that API Gateway is the real cost, not Lambda. At 100M requests per month, we were paying $350 just for the gateway.
The Math:
- 100M Requests x $3.50/million = $350 (API Gateway)
- Compute time = $150
- Total = $500/month
The Migration to EKS
We switched to a spot-instance based EKS cluster.
- 3 x t3.medium spot instances = $30/month
- Control Plane = $72/month
- Load Balancer = $20/month
- Total = $122/month
Result: We saved almost $400/month by managing our own servers. But we paid for it in improved DevOps salary costs.
The Hidden Cost: Observability
Debugging distributed traces in Lambda using X-Ray is painful and expensive. In Kubernetes, we deployed a self-hosted Jaeger instance. It was free and gave us better insights.
Conclusion
Serverless is a loan. You borrow development speed early on, but you pay high interest rates (technical debt & cloud bills) as you scale. Pay off the loan by moving to containers once you hit PMF.