In June 2026, I started reviewing my AWS bill. The goal was not to shave a few dollars off this month. Even a charge that is only a few dollars today becomes a heavy fixed cost once usage grows 100x. So I pictured that "future amount" first, fixed things while the systems kept running, and shaped the infrastructure to fit. This is the measured record of that work.
The first thing I learned: the thing eating the most money is not the product feature. What was eating money was a NAT Gateway that CDK (a tool that defines AWS infrastructure as code) had quietly stood up (a relay that lets a private network reach the outside; it bills you just for existing), an Amplify (AWS's build and hosting platform) that was only building, a health-check Lambda (an event-driven function runtime) that ran every 15 minutes, and 820,000 rows of junk data piled up in a dev (development) environment nobody was watching. Each is small today, or a charge you never notice. But leave them alone and they grow in proportion to usage and time. So I looked at each through "what happens at 100x" and killed them one by one.
Let me put the conclusion first (about an 11-minute read).
The biggest fixed cost was not a product feature but a NAT Gateway that the IaC (infrastructure-as-code) default stood up on its own — if you don't set natGateways explicitly, two are created, one per AZ (Availability Zone; a data-center partition), costing $58–66/month. "Serverless means zero fixed cost" does not hold automatically.






