sagar.jaswal// portfolio
--:--:-- IST
← writing.log
Mar 2, 2026·6 min read

How we cut our AWS bill by 70% without breaking prod

A startup invoice that doubled month over month, a serverless stack that was over-provisioned everywhere, and the unglamorous fixes that actually moved the number.

AWSCostServerless

The bill arrived and it had a comma in a place it didn't used to. At Panoculon Labs we'd shipped fast on a serverless AWS stack — Cognito, Lambda, DynamoDB, API Gateway, WebSockets — and fast had quietly become expensive. Here's the unglamorous work that took 70% off the top.

Measure before you cut

Cost Explorer grouped by service is the first stop, but the real signal was per-Lambda cost. Two functions were 60% of compute spend, and both were over-allocated memory "just in case."

  • Right-sized Lambda memory using actual p95 from logs, not gut feel.
  • Killed idle provisioned concurrency on functions that didn't need warm starts.
  • Moved chatty read paths off DynamoDB on-demand onto a cheaper access pattern.

The migration that mattered

The single biggest win was migrating the real-time meeting layer off the AWS WebSocket + Lambda combo onto Firebase, which cut latency roughly in half _and_ removed a per-message billing line that scaled with our most active users. Sometimes the cheapest infrastructure is the one you delete.

Every architecture decision is a pricing decision wearing a technical costume.

What stuck

Cost reviews are now part of the deploy checklist, not a quarterly panic. The number stayed down because the habit stayed up.