Skip to main content
โšก Calmops

AWS Cost Optimization: Reserved Instances vs Savings Plans

Introduction

AWS cost optimization is one of the most underutilized ways to reduce infrastructure expenses. For companies running on AWS, computing costs typically represent 40-60% of the total cloud bill. By understanding the differences between Reserved Instances (RIs), Savings Plans, and On-Demand pricing, you can reduce costs by 30-70% without changing your architecture.

This guide provides practical strategies for optimizing AWS costs with real calculations and implementation examples.


Why AWS Cost Optimization Matters

The Cost Problem

Most organizations start with On-Demand pricing:

  • On-Demand EC2: $0.0965/hour for t3.medium in us-east-1
  • Annual cost for 1 instance: $0.0965 ร— 24 ร— 365 = **$845/year**
  • For 100 instances: $84,500/year

The Optimization Solution

With Reserved Instances or Savings Plans:

  • RI price: $0.0483/hour (50% savings)
  • Annual cost for 100 instances: $42,250/year
  • Savings: $42,250/year (50% reduction)

This scales rapidly as your infrastructure grows.


On-Demand Pricing: Baseline

On-Demand pricing means you pay for every hour of compute time without any commitment.

Pros

  • Maximum flexibility
  • Pay only for what you use
  • No commitment required
  • Easy to scale up/down

Cons

  • Highest per-unit cost
  • Unpredictable bills
  • Poor ROI for steady-state workloads

Use Case

On-Demand is appropriate for:

  • Development/testing environments
  • Unpredictable workloads
  • Temporary infrastructure
  • Short-term testing

Reserved Instances (RIs): Deep Discount Commitment

A Reserved Instance is a commitment to use a specific instance type in a specific region for 1 or 3 years.

How RIs Work

On-Demand Price:     $0.0965/hour
1-Year RI Discount:  -40% = $0.0579/hour
3-Year RI Discount:  -50% = $0.0483/hour

Monthly Savings (100 instances, 1-year RI):
= (0.0965 - 0.0579) ร— 24 ร— 30 ร— 100
= $0.0386 ร— 720 ร— 100
= $2,779/month
= $33,350/year

RI Payment Options

  1. All Upfront

    • Largest discount (up to 50%)
    • Pay entire 1-3 year cost upfront
    • Best for predictable, long-term workloads
    • Example: $420 upfront for t3.medium (1-year, all upfront)
  2. Partial Upfront

    • Medium discount (25-40%)
    • Pay ~30% upfront, rest monthly
    • Good balance of savings and flexibility
    • Example: $130 upfront + $30/month
  3. No Upfront

    • Smallest discount (10-20%)
    • Monthly payments, no upfront cost
    • Better cash flow management
    • Example: $35/month with no upfront

RI Flexibility

RIs are locked to:

  • Instance family (e.g., t3, m5, c5)
  • Instance size (e.g., medium, large, xlarge)
  • Availability Zone (optional)
  • Region (e.g., us-east-1)

Limitations:

  • Cannot change region
  • Changing instance size within family has fees
  • Non-transferable (generally)

Real-World RI Example

Scenario: Running 10 t3.medium instances in us-east-1 for 3 years

On-Demand Cost:

= $0.0965/hour ร— 24 hours ร— 365 days ร— 3 years ร— 10 instances
= $0.0965 ร— 262,800 ร— 10
= $253,452

3-Year All-Upfront RI Cost:

= $1,051 upfront ร— 10
= $10,510
= Total 3-year cost: $10,510
= Hourly equivalent: $0.0483/hour

Savings = $253,452 - $10,510 = $242,942 (96% savings!)

Savings Plans: Modern Alternative

AWS Savings Plans (introduced 2019) offer more flexibility than RIs while maintaining significant discounts.

How Savings Plans Work

You commit to spending a dollar amount (not instance count) for 1 or 3 years.

On-Demand: $0.0965/hour ร— 730 hours = $70.45/month
Savings Plan (1-year): $42.10/month (40% discount)
Savings Plan (3-year): $35.14/month (50% discount)

Types of Savings Plans

1. Compute Savings Plans (Most Flexible)

  • Apply to any instance type, region, or size
  • Can switch between EC2, Fargate, and Lambda
  • Best for dynamic workloads
  • 30-40% discount (1-year), 40-50% discount (3-year)

2. EC2 Instance Savings Plans (Medium Flexibility)

  • Apply to specific instance family (e.g., t3, m5)
  • Work across sizes and regions within family
  • 35-45% discount (1-year), 45-55% discount (3-year)

3. DynamoDB & SageMaker Savings Plans

  • Service-specific
  • Simpler to calculate

Savings Plans vs RIs: Key Differences

Feature RI Savings Plan
Flexibility Low High
Discount Range 30-50% 30-50%
Can switch instance size Limited Yes (compute plans)
Can switch region No Yes (compute plans)
Supports different services No Compute plans do
Purchase complexity Moderate Lower
Pricing Per instance Per $ committed

Head-to-Head Comparison: RI vs Savings Plans

Scenario: Mixed workload with changing instance needs

Workload:

  • Start with 5x t3.medium instances ($352.50/month on-demand)
  • After 6 months, need to scale to 3x t3.large instances
  • Need flexibility across regions

With Reserved Instances:

  • Purchase 5x t3.medium 1-year RIs: $1,740
  • After 6 months, can’t easily convert to t3.large
  • If you want to switch, you lose savings or buy new RIs
  • Total cost: $1,740 + new RI purchases

With Compute Savings Plans:

  • Commit to $200/month compute spending (1-year plan)
  • Upfront: $2,000 (less than RIs for same period)
  • Can switch to 3x t3.large after 6 months without penalty
  • Savings apply automatically
  • Total cost: $2,000 (fixed)

Winner: Savings Plans (more flexibility, similar cost)


Spot Instances: Ultra-Low Cost Option

Spot Instances are unused AWS capacity at 70-90% discounts. The tradeoff: AWS can interrupt them with 2-minute notice.

When to Use Spot

  • Batch jobs (data processing, analytics)
  • Fault-tolerant workloads
  • CI/CD pipelines
  • Development/testing
  • Time-insensitive tasks

When NOT to Use Spot

  • Production databases
  • Long-running services
  • Real-time applications

Cost Example

t3.medium pricing:
- On-Demand: $0.0965/hour
- 1-Year RI: $0.0579/hour
- Spot: $0.0289/hour (70% discount)

For 100 instances running 24/7:
- On-Demand: $84,500/year
- 1-Year RI: $50,700/year
- Spot: $25,300/year

Implementation Strategy

Step 1: Analyze Current Usage (Week 1)

Use AWS Cost Explorer:

  1. Go to AWS Cost Management โ†’ Cost Explorer
  2. Filter by service (EC2)
  3. View last 3 months of compute usage
  4. Identify sustained, predictable workloads

What to look for:

  • Instances running 24/7
  • Consistent instance types
  • Production vs development

Step 2: Calculate Savings Potential (Week 1)

For each instance type:

Monthly On-Demand Cost = $X
Estimated RI Savings = $X ร— 50%
Annual Savings = (Monthly Savings ร— 12)
Payback Period = RI Cost / Monthly Savings

Step 3: Purchase RIs or Savings Plans (Week 2)

For predictable, steady-state workloads: Reserve Instances For flexible/changing workloads: Savings Plans

  1. Go to EC2 โ†’ Reserved Instances
  2. Click “Purchase Reserved Instances”
  3. Select instance type, term, payment option
  4. Review hourly cost and commit

Step 4: Implement Spot for Dev/Test (Week 2)

  1. Identify non-critical workloads
  2. Launch Spot instances instead of On-Demand
  3. Set max price based on On-Demand price
  4. Use Spot Fleet for multi-instance deployments

Step 5: Monitor and Optimize (Ongoing)

Track RI utilization:

  1. Cost Explorer โ†’ Reserved Instance Utilization
  2. Aim for >80% utilization
  3. Adjust future purchases based on patterns

Real-World Case Studies

Case Study 1: SaaS Company (100 EC2 instances)

Before:

  • 100x t3.large instances (on-demand)
  • Monthly cost: $7,104
  • Annual cost: $85,248

Optimization:

  • Purchase 100x t3.large 3-year RIs (all upfront)
  • Cost: $35,700 upfront
  • New hourly rate: $0.049 (vs $0.0965)

Results:

  • Year 1 savings: $49,548
  • Year 2 savings: $49,548
  • Year 3 savings: $49,548
  • 3-year total savings: $113,880 (58% reduction)

Case Study 2: Data Pipeline Company (Mixed workload)

Before:

  • 20x m5.xlarge for production (on-demand)
  • 50x t3.medium for development (on-demand)
  • Monthly cost: $4,500
  • Annual cost: $54,000

Optimization:

  • Purchase 20x m5.xlarge 1-year RIs: $7,500
  • Implement Spot Fleet for dev (20 instances): $200/month
  • Use Savings Plans for burst capacity: $1,500/year

Results:

  • RI savings: $2,400/year
  • Spot savings: $14,400/year
  • Savings Plan optimization: $1,500/year
  • Total annual savings: $18,300 (34% reduction)

Common Mistakes to Avoid

Mistake 1: Over-Purchasing RIs

Problem: Buy RIs for capacity you don’t use

Solution:

  • Start with conservative estimates
  • Monitor utilization monthly
  • Only commit to proven, sustained workloads

Mistake 2: Not Using Savings Plans

Problem: Remaining on-demand because you’re uncomfortable with RIs

Solution:

  • Savings Plans offer 80% of RI savings with more flexibility
  • No downside to switching from on-demand

Mistake 3: Ignoring Spot Instances

Problem: Running dev/test on on-demand or RIs

Solution:

  • Dev/test should be 90% Spot
  • Save RIs/Savings Plans for production

Mistake 4: Not Considering Different Services

Problem: Buying RIs for EC2 but ignoring RDS, ElastiCache

Solution:

  • Apply savings plans to all applicable services
  • RDS Reserved Instances: 30-55% savings
  • ElastiCache: 35-50% savings

Tools and Automation

AWS Compute Optimizer

Provides RI/Savings Plan recommendations:

  1. Analyze current usage patterns
  2. Recommend optimal instance types
  3. Estimate savings with different options

Trusted Advisor

Identifies under-utilized RIs and opportunity purchases

Third-Party Tools

  • CloudHealth by VMware: Advanced cost analytics
  • Cloudability: Detailed cost tracking and recommendations
  • Kubecost: For Kubernetes workloads on AWS

Decision Matrix

Choose Reserved Instances IF:
โœ“ Workload is predictable
โœ“ Instance type won't change for months
โœ“ Can commit to 1-3 year terms
โœ“ Want maximum discount
โœ“ Upfront budget available

Choose Savings Plans IF:
โœ“ Need instance type flexibility
โœ“ Workload varies by size/type
โœ“ Want 80% of RI savings with flexibility
โœ“ May change regions
โœ“ Prefer predictable monthly billing

Choose Spot IF:
โœ“ Workload is fault-tolerant
โœ“ Can handle interruptions
โœ“ Development/testing workload
โœ“ Batch processing jobs
โœ“ Need 70%+ discount

Choose On-Demand IF:
โœ“ Unpredictable workload
โœ“ Short-term infrastructure
โœ“ Don't know usage patterns yet
โœ“ Prototyping new systems

Glossary

  • Reserved Instance (RI): Commitment to specific instance for 1-3 years
  • Savings Plan: Dollar-amount commitment offering flexibility
  • Spot Instance: AWS excess capacity at steep discount
  • On-Demand: Pay-per-hour without commitment
  • Utilization: Percentage of time instance is used
  • Upfront Payment: Initial cost paid at purchase

Resources


Comments