The cheapest EC2 instance is the one you turned off
Every cost review I’ve run starts the same way. Someone opens Cost Explorer, sorts by service, and EC2 sits at the top like it pays rent. It doesn’t. You do.
Before anyone says “Savings Plans”, do these four things in this order. The order is the whole trick.
1. Find what’s on that shouldn’t be
Dev and test environments get used about 50 hours a week. They run for 168. Shutting them down nights and weekends takes roughly 70% off those instances, and all it needs is a tag and a scheduled Lambda. Nobody has ever filed a ticket because staging was off at 3 a.m. on a Sunday.
2. Rightsize what’s left
Pull two weeks of CloudWatch CPU. If p95 stays under 20%, drop a size. CloudWatch doesn’t report memory out of the box, so install the agent before trusting any “it needs the RAM” argument, including your own.
3. Commit last
Reserved Instances and Savings Plans discount whatever you happen to be running. Buy them before rightsizing and you’ve locked in a discount on waste for one to three years. Compute Savings Plans are the forgiving choice: they follow you across instance families, regions, Fargate and Lambda.
4. Make it boring
Tag every resource with an owner. Send a weekly boto3 report of spend by tag to the people on those tags. Costs drop the week people see their own name next to a number.
The 50% savings wasn’t one clever move. It was these four, done every week until they got boring. Boring is the goal.