dev · 2026-05-01
Compute monthly + 3-year savings from rightsizing under-utilized EC2 instances vs reserved instances vs savings plans.
| Current instances | 12 |
| On-demand $/instance/month | $280 |
| Avg CPU utilization % | 18% |
| Downsizing target % savings | 50% |
| Savings Plan discount % | 35% |
| Current annual cost | $40,320 |
| Annual savings (rightsizing) | $20,160 |
| Annual savings (rightsizing + SP) | $27,216 |
Most production EC2 fleets run at 15-30% average CPU utilization. The remaining capacity is paid-for slack. Rightsizing brings utilization to 50-65% (still safe) and cuts spend 30-60% per instance.
Default scenario: 12 instances × $280/mo × 12 = $40,320/yr. Rightsizing 50% × 80% of fleet = $16k savings. Layer Savings Plan on remaining = $8.5k more. Total annual savings: ~$24,500.
Compute Savings Plans are strictly better than RIs for most workloads:
Use RIs only for very stable, single-family workloads where the slight discount edge matters.
3-year All-Upfront Savings Plan = ~50-55% off on-demand. If your usage is stable, this saves 18-22% over 1-yr No-Upfront. Cash up-front is the trade-off; capital-constrained startups stick with 1-yr.
AWS Compute Optimizer (free) flags under-utilized instances with explicit recommendations. Or use CloudWatch metrics: filter for instances with <30% CPU avg over 14 days + <50% memory if you have CloudWatch Agent. Triage starts with biggest spend instances — m5.4xlarge running at 12% saves $1k/mo per instance.
Often overlooked. Detached EBS volumes still bill at $0.10/GB-month. Unattached Elastic IPs bill $3.60/mo each. Run AWS Trusted Advisor or scripted cleanup quarterly — typical 10% of monthly EBS spend is detached volumes.
Match commitment to floor — your minimum sustained usage. If you run 12 instances steady but might drop to 8, commit at 8. Above the commit pays on-demand; below the commit you forfeit the discount. Most teams under-commit by 30-40%, missing easy savings on the predictable floor.