Skip to content

EC2 Pricing Models

Model Discount Commitment Use when
On-Demand 0% None Short-term, dev/test, experiments, unpredictable
Reserved (RI) up to 72% 1-3 yr, SPECIFIC instance/region Predictable steady 24/7 production
Savings Plans up to 72% 1-3 yr, SPEND LEVEL ($/hr) Predictable spend WITH flexibility (any instance counts)
Spot up to 90% None (evictable, 2-min warning) Batch, stateless, restartable work
Dedicated Host ~on-demand Optional (RI) BYOL licensing (Oracle/MS), compliance

Reserved: pick instance type + region + term + payment (No/Partial/All Upfront). Convertible RI = can change type (smaller discount).

Savings Plans = spend-floor commitment, NOT a cap:

Commit $50/hr → every instance up to $50/hr value gets ~60% off
Usage $30/hr → still pay $50 (wasted $20)
Usage $80/hr → pay $50 discounted + $30 full price
  • Compute SP: any instance, any region, any family (flexible, smaller discount)
  • EC2 Instance SP: specific family in region (bigger discount, RI-like)
  • Analogy: gym membership (commit monthly, per-class cheaper) vs pay-per-visit (On-Demand)

Spot = reverse surge pricing:

  • Cheap when AWS has spare capacity, evicted with 2-min warning when demand rises
  • NOT for DBs/stateful — batch, CI/CD, ML training (with checkpoints), stateless web
  • No end-time commitment — eviction is the only end

Dedicated Host = exclusive physical server (still AWS-owned):

  • You pay whole host, no shared tenants
  • For BYOL software licensed per core/socket
  • Dedicated Instances (simpler variant): dedicated hardware, no BYOL

Mixed fleet strategy (the real-world pattern)

Section titled “Mixed fleet strategy (the real-world pattern)”
Baseline (always-on) → Reserved / Savings Plans (~60%)
Variable/spikes → On-Demand (~20%)
Interruptible batch → Spot (~20%)
Scenario Answer
Predictable 24/7, 3-yr RI or Savings Plans
Predictable + flexible instance choice Compute Savings Plans
Batch, can tolerate interruption Spot
Dev/test short-term On-Demand
Per-core licensed software Dedicated Host
New app, unknown traffic On-Demand first, move later
  • [[aws/index]]
  • [[aws/ec2-instance-types/index]]