EKS Cost Components
| Component | Cost | Optimization Potential |
|---|---|---|
| EKS Cluster fee | $0.10/hr ($73/mo) | Low — fixed cost |
| EC2 nodes | Varies (largest cost) | High (40–80%) |
| EBS volumes (PVs) | $0.10/GB/mo | Medium |
| Load balancers (ALB/NLB) | $16–$22/mo each | Consolidation |
| Data transfer | $0.01–$0.09/GB | Architecture |
| NAT Gateway | $0.045/GB processed | VPC endpoints |
Karpenter: Replace Cluster Autoscaler
Karpenter (now a CNCF project, AWS-originated) makes smarter node provisioning decisions than Cluster Autoscaler. Key advantages: it selects the optimal instance type and size for each pending pod batch (not just scaling a fixed node group), enables Consolidation (rebalancing pods onto fewer nodes when possible), and responds faster to scale events.
Consolidation alone typically reduces node count by 20–35% on mature clusters with mixed workload sizes. Enable it with consolidationPolicy: WhenUnderutilized in your NodePool spec.
Graviton Nodes: 20% Better Price/Performance
AWS Graviton3 (arm64) EC2 instances offer 20–40% better price/performance than x86 equivalents. For most containerized Linux workloads, migration is straightforward — build your containers as multi-arch (amd64 + arm64) images using Docker buildx, then add Graviton instance types to your Karpenter NodePool.
Spot Node Groups for EKS
Run batch jobs, non-critical services, and stateless web tiers on Spot nodes. Use Karpenter's karpenter.sh/capacity-type: spot requirement and set weight to prefer Spot when available. Add the AWS Node Termination Handler to ensure graceful pod eviction on Spot reclaim.