TL;DR: Spot Fleet (2015) is your fleet manager for large-scale Spot: you declare a target ("I need 100 vCPUs") and the instance types/AZs you'll accept, and it finds the cheapest available capacity, launches to meet the target, and automatically replaces interruptions — your app sees steady capacity while the chaos is handled behind the scenes. For fault-tolerant, checkpointable workloads it cuts EC2 compute 70–90%. The single thing that makes it reliable: diversification across many instance types and AZs.
The numbers
- Spot is up to 90% off On-Demand with a 2-minute reclaim warning; Spot Fleet spreads capacity across pools so an interruption in one doesn't sink the fleet.
- Allocation strategies:
capacityOptimized/priceCapacityOptimized(AWS interruption data — the production go-to),diversified(even spread),lowestPrice(cheapest but concentrates risk). - Express target capacity in vCPUs (or memory), not instance count — the fleet mixes sizes (5× m5.2xlarge + 10× c5.xlarge → 100 vCPUs cheapest); smaller types often have better availability.
- Field examples: an animation render farm went $40K → $6K/mo (85% off) once it diversified from c5-only to c5/c5n/c5a/c6i (interruptions dropped below 5%); a Spark analytics pipeline saved ~70% with capacityOptimized on idempotent nightly jobs.
Do this
- Diversify aggressively — 10+ current-gen instance types (m5/c5/r5/Graviton) across multiple AZs; pinning to one type/AZ is the #1 reliability mistake.
- Use
capacityOptimizedorpriceCapacityOptimizedso AWS steers toward the lowest-interruption pools while keeping cost low. - Set max price to the On-Demand price — you'll almost always pay far less, and a temporary spike won't cost you capacity or overpay.
- Express target capacity in vCPUs to let the fleet bin-pack cheaper pools.
- Design for interruptions — checkpointing, idempotency, graceful SIGTERM shutdown; monitor CloudWatch interruption metrics and prune high-interruption types.
Gotchas
- 2 minutes is all you get — long jobs without checkpointing get hurt; check the Spot Instance Advisor for interruption frequency by type/region before choosing.
- No automatic load-balancer integration — for web servers you'd handle ALB/NLB registration yourself, so an ASG is usually the better fit there.
- Availability varies by generation and region — older gens (m3/c3) have poor Spot supply; us-east-1 is strong, smaller regions vary.
- Prices can still spike (rarely) — the max=On-Demand cap protects you.
Skip this if
- The workload is a web app/service needing ALB integration and metric-based scaling — use an Auto Scaling Group with a mixed-instances policy.
- You need to blend Spot with On-Demand and Reserved in one managed fleet — EC2 Fleet does that; for larger batch orchestration, AWS Batch with Spot. The underlying model is Spot Instances.