Purchase Options: On-Demand, Reserved, Spot, Savings Plans
~14 min read
Four ways to pay for the same EC2 capacity, trading commitment and interruption risk for discount.
On-Demand pricing is pay-by-the-second (with a 60-second minimum) at the standard published rate, with no commitment — you can launch and terminate at will. It's the right default for unpredictable workloads, short-term testing, or anything you haven't yet run long enough to understand its real usage pattern.
Reserved Instances (RIs) commit you to a specific instance type/Region for a 1 or 3 year term in exchange for a significant discount (typically 30-60% versus On-Demand, more for longer terms and upfront payment). The tradeoff is inflexibility — you're committing to a specific configuration, though 'Convertible' RIs allow limited changes to the reserved instance attributes during the term.
Savings Plans are a more flexible alternative to RIs: instead of committing to a specific instance type, you commit to a specific dollar-per-hour spend (e.g. "$5/hour of compute") for 1 or 3 years, and AWS automatically applies the discount to whatever matching usage you actually incur — including, for 'Compute Savings Plans,' usage across different instance families, sizes, and even Lambda/Fargate, not just EC2. This flexibility is why Savings Plans have largely become the recommended default over traditional RIs for most customers today.
Spot Instances let you bid for AWS's genuinely spare, unused capacity at a steep discount (commonly 60-90% off On-Demand), with the catch that AWS can reclaim a Spot Instance with as little as a 2-minute warning if it needs that capacity back for On-Demand customers. This makes Spot appropriate only for fault-tolerant, stateless, or checkpoint-able workloads — batch processing, CI/CD build fleets, big data analytics, and horizontally-scaled web tiers that can lose an instance without losing data.
In the AWS Console
- 1
EC2 → Reserved Instances / Savings Plans → Purchase Savings Plans
Review AWS's recommendation (based on your account's actual recent usage) for an hourly commitment amount, then choose the term (1 or 3 year) and payment option (all/partial/no upfront).
Always check the usage-based recommendation first rather than guessing a commitment amount — over-committing means paying for unused reserved capacity.
- 2
EC2 → Spot Requests → Request Spot Instances
Configure the same launch parameters as On-Demand, optionally setting a maximum price (though AWS recommends leaving this at the On-Demand cap and letting Spot pricing float rather than setting an artificially low bid).
For production Spot usage, EC2 Auto Scaling Groups with a mixed instances policy (blending On-Demand and Spot) is the standard, more resilient pattern rather than raw standalone Spot Requests.
💬 Deep Dive with AI
Key points
- •On-Demand: no commitment, standard rate, best for unpredictable/short-term usage
- •Reserved Instances: 1-3 year commitment to a specific config, 30-60%+ discount, less flexible
- •Savings Plans: 1-3 year $/hour spend commitment, applies flexibly across instance types (and Lambda/Fargate for Compute Savings Plans) — the modern recommended default
- •Spot Instances: 60-90% discount on spare capacity, reclaimable with ~2 minutes notice — only for interruption-tolerant workloads