The order of operations matters
Cost work goes wrong when teams start with the biggest lever (commitments) before the cleanup, locking in a bill for waste. The safe order: delete, rightsize, schedule, then commit.
1. Delete the idle 20%
Almost every bill I audit has 15–25% pure waste: unattached volumes, idle load balancers, forgotten dev environments, snapshots of instances deleted years ago, previous-generation instances nobody migrated. This is free money — no risk, no engineering trade-off.
# unattached EBS volumes still billing every month
> aws ec2 describe-volumes --filters Name=status,Values=available \
--query "Volumes[].{ID:VolumeId,GB:Size,Created:CreateTime}" --output table2. Rightsize with data, not vibes
Use two weeks of real utilisation. An instance at 8% CPU p99 can drop two sizes; one at 60% should be left alone. Memory needs an agent or container metrics — CPU-only rightsizing is how people break JVM services that were memory-bound all along.
3. Schedule the humans' environments
Dev and staging that run 24/7 are billing 168 hours a week for maybe 50 hours of use. Auto-stop outside working hours cuts those line items ~70% with zero production impact.
4. Only now: commitments
| Option | Best for | Watch out |
|---|---|---|
| Savings Plans / committed use | Stable baseline compute | Commit below your post-cleanup baseline, never at it |
| Reserved capacity | Databases, caches | Instance-family lock-in |
| Spot / preemptible | Stateless, retry-safe work | Needs graceful shutdown handling — test the interruption path |
The traps that turn savings into outages
- Deleting "unused" backups that were the DR plan. Verify restore paths before touching snapshots.
- Rightsizing away burst headroom. Check p99, not average — the average hides the Friday spike that pays your salary.
- Spot for stateful workloads. The discount is not worth a corrupted database.
- Cost dashboards nobody owns. Assign each top-10 line item an owning team, or the bill grows back in two quarters.
Reliability and cost are not enemies. Waste is unmonitored infrastructure, and unmonitored infrastructure is also where incidents live.