TL;DR: If Compute Savings Plans are a buffet pass, EC2 Instance Savings Plans are your VIP table at one specific restaurant — commit to a specific instance family in a specific region for 1 or 3 years and get up to 72% off (6% more than Compute SP). You keep flexibility within those bounds (change size, OS, tenancy) but you're married to that family and region. More commitment, bigger discount — the right tool only when you're genuinely locked in.
The numbers
- Up to 72% off vs Compute SP's 66% — the reward for locking family + region.
- You can change: instance size (m5.large ↔ m5.2xlarge), OS (Linux ↔ Windows), tenancy. You can't change: instance family (m5 → c5, or even m5 → m6i), region.
- Payment: All Upfront (max discount), Partial, No Upfront (most popular, still ~50–60% off); RIs apply first, then Savings Plans fill the gaps.
- Coverage ~70–80%, utilization target ~90%+ in Cost Explorer.
- Field examples: a standardized 200-instance c5/us-east-1 game backend committed $300/hr for 72% off its autoscaling baseline; a compliance-locked r5/eu-central-1 analytics fleet bought 3-yr All Upfront with zero waste risk; a team that committed m5/us-west-2 then migrated half its load to Fargate stranded ~$80/hr of coverage — the cautionary case.
Do this
- Confirm the fleet is genuinely stable — same family, same region, month after month, with no migration on the roadmap.
- Commit to the baseline $/hour, not the peak — deeply discount steady usage, let autoscale spikes ride on-demand.
- Exclude Spot from the commitment math (Savings Plans don't cover Spot).
- Use Cost Explorer's EC2-Instance-SP recommendation, start 1-year if unsure (you can buy more later; plans stack), and pick payment by cash flow.
- Mix with Compute SP — EC2 Instance SP for your most stable workloads, Compute SP for everything evolving; review the portfolio quarterly.
Gotchas
- Newer generations count as a different family — m5 → m6i breaks coverage, which stings during AWS's frequent generation refreshes.
- Coverage tanks during EC2→serverless/container migrations — Fargate and Lambda don't count; plan around it.
- Region-locked — expanding to a new region means on-demand there.
- 72% you underuse loses to 66% you fully use — a wasted deeper discount is worse than a smaller one fully utilized.
Skip this if
- Your architecture is evolving, multi-service (EC2 + Lambda + Fargate), or might expand regions — Compute Savings Plans protect against change at a 6% lower discount.
- You want the classic per-instance-type reservation for a specialized/stable fleet — see Reserved Instances, and the broader Savings Plans overview for choosing between them.