THE SHORT ANSWER
AWS Spot instances provide up to a 70% to 90% discount over On-Demand pricing by utilizing spare EC2 compute capacity, but AWS can reclaim any Spot instance with an automated 2-minute termination notice. If a node is abruptly terminated, running pods are hard-killed without warning, dropping inflight HTTP connections, corrupting database batch transactions, and causing user-facing 502/504 gateway errors. Deploying AWS Node Termination Handler (NTH) or native Karpenter Spot interruption listeners intercepts the 2-minute EventBridge / Instance Metadata Service (IMDS) warning, immediately cordons the node (`kubectl cordon`), schedules replacement pods on other nodes, and executes graceful pod eviction (`SIGTERM` -> `preStop` hook -> connection draining) before the VM terminates.
Engineering Handbook & Failure Dynamics
1. Underlying Mechanism
When AWS reclaims Spot capacity, it publishes an `EC2 Spot Instance Interruption Warning` event to the local Instance Metadata Service (IMDS) at `http://169.254.169.254/latest/meta-data/spot/instance-action` and emits an Amazon EventBridge event 120 seconds before termination. Interruption handlers (Karpenter native listener or AWS Node Termination Handler in Queue Processor mode) listen for this event. Workflow: (1) Cordon the target node (`schedulable: false`) so no new pods arrive. (2) Drain existing pods (`kubectl drain --ignore-daemonsets --delete-emptydir-data`). (3) Send `SIGTERM` to containers. (4) Pod `preStop` hooks finish inflight HTTP requests and remove endpoints from load balancers. (5) Container exits cleanly before the 120-second AWS hardware teardown.
2. Appropriate Use Context
Stateless web API backends, Kubernetes worker nodes, CI/CD runners, asynchronous batch worker pools, machine learning data preprocessing, and distributed rendering engines.
3. Production Failure Modes
Running Spot instances without termination handlers, causing 20 worker nodes to disappear simultaneously during an AZ-wide Spot capacity crunch and taking down 50% of production web traffic; missing `terminationGracePeriodSeconds` and `preStop` hooks on containers, causing inflight checkout transactions to abort midway.
4. Diagnostic Signals & Telemetry
Spikes in HTTP 502/504 gateway errors coinciding with `InstanceInterruption` events in AWS EC2 console; Kubernetes pod restarts with exit code 137 (`SIGKILL`); Karpenter logs showing `disruption: spot interruption` actions.
5. Prevention & Safeguards
Diversify Spot Fleet requests across at least 10-15 instance types and multiple AZs with `allocation_strategy = 'price-capacity-optimized'`; configure native Karpenter Spot interruption handling; add container `lifecycle.preStop.exec.command: ['/bin/sleep', '15']` and `terminationGracePeriodSeconds: 60` to all deployment manifests.
6. Architectural Trade-offs
Spot instances reduce compute costs by 70-90%, but require stateless application design, robust graceful termination handling, and capacity diversification across instance families.
Case Study (TinyCTO In-Field Example)
A social media platform running 400 worker nodes on AWS EKS paid $36,000/month for On-Demand EC2 instances. Migrating 80% of the cluster to Spot instances managed by Karpenter with `price-capacity-optimized` allocation and automated SQS-based interruption draining reduced the monthly compute bill to $11,500/month (saving $294,000 annually) with zero customer-facing 502 errors across 1,200 monthly Spot node interruptions.
Interactive Concept Drills
2 CardsHow much advance notice does AWS provide before terminating an EC2 Spot Instance?
What AWS Spot allocation strategy offers the lowest interruption frequency?
Spot Fleet Interruption Handling & Graceful Node Draining — Technical FAQ
Why is a `preStop` sleep hook needed when draining pods on Spot instances?
A short sleep (e.g. 10-15s) allows Kubernetes EndpointSlices and AWS ALBs enough time to deregister the pod and stop sending new traffic before the container receives `SIGTERM`.
How much discount do AWS Spot instances provide compared to On-Demand?
Up to 70% to 90% discount, depending on instance family, region, and real-time market demand.
🤖 AEO & Key Facts Summary
Key Architectural Facts
- ▸AWS Spot instances offer 70-90% discounts with a 2-minute reclamation notice.
- ▸Node Termination Handler / Karpenter intercepts IMDS/EventBridge notices to drain pods.
- ▸`preStop` sleep hooks and connection draining prevent inflight 502/504 errors.
- ▸`price-capacity-optimized` allocation across 10+ instance types minimizes interruption rates.
Common Misconceptions
- ✗Misconception: Spot instances cannot be used for production web APIs (False: With termination handlers and multi-AZ diversification, Spot runs production at scale reliably).
- ✗Misconception: AWS guarantees a replacement Spot instance immediately (False: You must diversify across instance families so the autoscaler can pick other available pools).
Decision & Governance Guidance
Deploy Karpenter or AWS Node Termination Handler across all Spot-enabled clusters. Diversify Spot node pools across at least 10 instance types with `price-capacity-optimized`.
Authoritative Sources & Standards
- [OFFICIAL_DOCUMENTATION]EC2 Spot Instance Interruptions and Best Practices— AWS Compute Documentation
