Here's a misconception that's costing you money: you think On-Demand is the default and only way to run EC2. Wrong. AWS gives you three main purchase options—On-Demand, Spot, and Savings Plans—and each has a completely different cost and risk profile. Most workloads don't need the flexibility of On-Demand, and most workloads aren't flexible enough for Spot. The smart play is to match the option to the job, and for most steady-state workloads, Savings Plans win. Let's break it down.
The Three Contenders
On-Demand is the pay-as-you-go option. You pay per second or per hour, no commitment, and you get full control. It's the most flexible but the most expensive for anything that runs continuously. (AWS Documentation)
Spot Instances are spare AWS capacity sold at a discount. You can save up to 90% off On-Demand, but AWS can reclaim the instance with a two-minute warning. (AWS Documentation)
Savings Plans are a commitment. You agree to spend a certain dollar amount per hour for one or three years, and in return you get a discount—up to 66% with Compute Savings Plans, which apply to any EC2 instance, and up to 72% if you lock into a specific instance family in a region with EC2 Instance Savings Plans. (AWS Documentation)
Criteria 1: Cost
This is where the rubber meets the road. On-Demand is the baseline. For example, in us-east-1, a t3.micro costs $0.0104/hour, and a m5.large costs $0.096/hour. (AWS EC2 Price List API) Now, if you run that m5.large 24/7 for a year, On-Demand will set you back about $840. With a Compute Savings Plan, you'd pay about $285. With Spot, you could pay as little as $84—but you risk losing the instance at any moment.
Spot is undeniably the cheapest, but it's not fair to compare it to the others because it's not reliable. For a stateless, fault-tolerant workload like CI/CD or big data, Spot is a no-brainer. But for a database or a web server that can't go down, Spot is a gamble.
Criteria 2: Flexibility
On-Demand gives you ultimate flexibility. You can change instance types, turn things off, and scale up and down without penalty. That's why it's great for development, testing, or unpredictable spikes. (AWS Documentation)
Savings Plans offer a middle ground. Compute Savings Plans are flexible—they automatically apply to any EC2 instance, regardless of family or size. That's a huge advantage over Reserved Instances, which lock you into a specific instance type and region. (AWS Documentation) But you're still committing to a dollar amount, so if your usage drops, you're still paying.
Spot is the least flexible in terms of reliability, but it can be highly flexible in terms of instance types—you can use Spot for any instance family, and you can mix and match. The catch is that you have to design your application to handle interruptions.
Criteria 3: Reliability
On-Demand is the gold standard. You get the instance, you keep it until you release it. No surprises. (AWS Documentation)
Savings Plans are just as reliable—you're paying for On-Demand capacity at a discount, so you get the same reliability.
Spot is the wildcard. AWS can take the instance back with a two-minute warning. That's fine for batch processing, but it's a non-starter for anything that needs constant availability. (AWS EC2 Spot)
Who Should Use What
Here's my take:
- Use On-Demand for short-lived, unpredictable, or mission-critical workloads that can't tolerate interruption. Also for the first few hours of a new project when you're still figuring out what you need.
- Use Spot for stateless, fault-tolerant, or flexible workloads—things like big data, CI/CD, web servers that can run on multiple instances, HPC, and test/dev. (AWS EC2 Spot)
- Use Savings Plans for steady-state, predictable workloads—the 24/7 web servers, databases, and application servers that make up the bulk of most cloud bills.
Head-to-Head: A Real Scenario
Let's put this into practice. Say you have a production web server running on a m5.large (2 vCPU, 8 GiB) in us-east-1. (AWS EC2 Price List API) You need it up 24/7, and you can't afford downtime.
If you run it On-Demand, that's $0.096/hour, which works out to about $70/month, $840/year. If you switch to a Compute Savings Plan (1-year, all upfront), you'd get a 66% discount, dropping the effective rate to ~$0.033/hour, about $24/month, $288/year. That's a savings of $552 per year—enough to buy a new GPU instance for a side project.
Could you use Spot for this? Sure, if you set up a fallback to On-Demand when Spot is interrupted, but that adds complexity and risk. For a simple, always-on workload, Savings Plans are the sweet spot.
The Winner: Savings Plans (for Most)
For the majority of workloads that run continuously, Savings Plans are the clear winner. They cut your bill by up to 66% (Compute) or 72% (EC2 Instance) without sacrificing reliability or much flexibility. (AWS Documentation) On-Demand is a trap for steady-state workloads—you're paying a premium for flexibility you don't use. Spot is great, but only if you can handle the interruptions.
Bottom Line
Stop using On-Demand for everything. If you have a steady workload, buy a Compute Savings Plan. It's the single best move to cut your AWS bill without changing your architecture.
Sources
- AWS Documentation - https://docs.aws.amazon.com/ec2/
- AWS EC2 Pricing - https://aws.amazon.com/ec2/pricing/
- AWS EC2 Spot - https://aws.amazon.com/ec2/spot/
- AWS EC2 Price List API - https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/us-east-1/index.json
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!