Most AWS bills I audit are not bloated because of exotic architecture mistakes. They are bloated because of a dozen boring defaults nobody revisited: on-demand pricing for steady workloads, gp2 volumes, log groups that never expire, S3 buckets with no lifecycle rules, NAT gateways carrying traffic that should never touch them. Below are 20 fixes, grouped by where the money leaks, each with a realistic savings range, a worked example, and — where it helps — the exact CLI command or config. Individual line items routinely drop 50–90%. Your total bill won't fall by the sum of those percentages, but a 25–40% reduction in the first quarter is a normal outcome.
Why "boring" wins
I spend a lot of my time on cloud cost reviews. Before touching anything, we plot every candidate optimization on a simple 2×2: effort to implement on one axis, savings potential on the other.
The pattern is remarkably stable across companies. The top-left quadrant — low effort, good savings — is almost never empty. It's usually full.…