Amazon EKS — EKS Pricing
EKS pricing has multiple components. The cluster fee is just the beginning — compute, networking, and storage costs add up quickly. Let’s break it all down.
Cost Components
| Component | Cost | Notes |
|---|---|---|
| EKS Cluster (Control Plane) | $0.10/hour (~$73/month) | Per cluster, regardless of size |
| EC2 Instances (Worker Nodes) | Varies by instance type | On-Demand, Reserved, Savings Plans, or Spot |
| Fargate | Per vCPU + memory per second | Billed per pod, no node costs |
| NAT Gateway | $0.045/hour + $0.045/GB processed | Often the biggest hidden cost |
| Data Transfer | $0.01-0.09/GB (cross-AZ, internet) | Cross-AZ traffic between pods costs money |
| EBS Volumes | $0.08/GB/month (gp3) | Persistent storage for pods |
| EFS | $0.30/GB/month (standard) | Shared persistent storage |
| ALB/NLB | $0.0225/hour + LCU charges | Per load balancer |
| CloudWatch | Varies | Logs, metrics, Container Insights |
| Extended Support | $0.60/hour per cluster | When running old K8s versions |
EKS Cluster Fee
Every EKS cluster costs $0.10 per hour, which is approximately $73 per month or $876 per year.
This covers:
- Fully managed control plane (API server, etcd, scheduler)
- Multi-AZ high availability
- Automatic upgrades and patching
- 99.95% SLA
You pay this regardless of whether you have 1 node or 1,000 nodes.
EC2 Compute Costs
Worker node costs depend on instance types and pricing models:
Common EKS Instance Types
| Instance | vCPU | Memory | On-Demand (us-east-1) | Use Case |
|---|---|---|---|---|
| t3.medium | 2 | 4 GB | ~$0.0416/hr (~$30/mo) | Dev/test |
| m5.large | 2 | 8 GB | ~$0.096/hr (~$70/mo) | General workloads |
| m5.xlarge | 4 | 16 GB | ~$0.192/hr (~$140/mo) | Medium workloads |
| m6g.large (Graviton) | 2 | 8 GB | ~$0.077/hr (~$56/mo) | Cost-optimized |
| c5.xlarge | 4 | 8 GB | ~$0.170/hr (~$124/mo) | CPU-intensive |
| r5.xlarge | 4 | 32 GB | ~$0.252/hr (~$184/mo) | Memory-intensive |
Pricing Models
| Model | Discount | Commitment |
|---|---|---|
| On-Demand | Baseline | None |
| Savings Plans | Up to 72% | 1 or 3-year term |
| Reserved Instances | Up to 72% | 1 or 3-year term |
| Spot Instances | Up to 90% | Can be interrupted |
Tip: Use Graviton (ARM) instances for ~20% savings on general workloads. Many containerized applications run on ARM without changes.
Fargate Pricing
Fargate charges per-pod based on vCPU and memory requested:
| Resource | Price (us-east-1) |
|---|---|
| vCPU | $0.04048 per vCPU per hour |
| Memory | $0.004445 per GB per hour |
Example: 0.5 vCPU, 1 GB Memory Pod
vCPU: 0.5 × $0.04048 = $0.02024/hr
Memory: 1.0 × $0.004445 = $0.004445/hr
Total per pod: $0.024685/hr ≈ $18/month
For 10 such pods running 24/7: ~$180/month (Fargate compute only, plus $73 EKS fee = $253 total)
Compare with EC2: Two m5.large instances could run those 10 pods for ~$140/month + $73 EKS = $213 total.
Fargate makes sense when: Workloads are bursty, you don’t want node management overhead, or you need strong pod-level isolation. For steady workloads, EC2 is usually cheaper.
Networking Costs — The Hidden Killer
Networking is often the most surprising part of an EKS bill.
NAT Gateway
If your nodes are in private subnets and pull images, call AWS APIs, or make any outbound internet requests:
NAT Gateway: $0.045/hr ≈ $33/month (per NAT Gateway)
Data processed: $0.045/GB
Two NAT Gateways (multi-AZ) processing 500 GB/month:
Hourly: 2 × $33 = $66
Data: 500 × $0.045 = $22.50
Total: $88.50/month
Cross-AZ Data Transfer
Pods on different AZs communicating with each other:
$0.01/GB in each direction ($0.02/GB round-trip)
This adds up fast for chatty microservices.
Tips to Reduce Networking Costs
- Use VPC endpoints for S3, ECR, and other AWS services (avoids NAT Gateway for AWS traffic)
- Use topology-aware routing to reduce cross-AZ traffic
- Pull images from ECR with a VPC endpoint (no NAT Gateway data charges)
- Consider a single NAT Gateway for dev environments (saves $33/mo but loses HA)
Extended Support Costs
When your EKS cluster runs a Kubernetes version that has exited standard support, it enters extended support:
| Support Type | Cost | Duration |
|---|---|---|
| Standard Support | Included in $0.10/hr | ~14 months from release |
| Extended Support | Extra $0.60/hr (~$438/mo per cluster) | ~12 additional months |
Extended support costs 6x the base cluster fee. Always plan upgrades proactively.
Cost Comparison: EKS vs Self-Managed K8s vs ECS
For a typical small production setup (3 worker nodes, 1 ALB, moderate traffic):
| Item | EKS | Self-Managed K8s | ECS |
|---|---|---|---|
| Control Plane | $73/mo | $0 (but you run 3 master nodes ~$210/mo) | $0 |
| Worker Nodes (3x m5.large) | $210/mo | $210/mo | $210/mo |
| ALB | $25/mo | $25/mo | $25/mo |
| NAT Gateway (2x) | $66/mo | $66/mo | $66/mo |
| Total | ~$374/mo | ~$511/mo | ~$301/mo |
EKS is cheaper than self-managed K8s (you avoid running master nodes). ECS is cheaper if you don’t need Kubernetes features.
Free Tier and Cost Estimation
- No EKS free tier — You pay from cluster creation
- AWS offers a cost calculator: calculator.aws
- Use AWS Cost Explorer with EKS cost allocation tags
- Tag your clusters and node groups for cost tracking
Useful Tags
# Tag EKS cluster
aws eks tag-resource \
--resource-arn arn:aws:eks:us-east-1:123456789012:cluster/my-cluster \
--tags team=platform,environment=production,project=api
Monthly Cost Estimate Template
Use this template to estimate your EKS costs:
| Item | Quantity | Unit Cost | Monthly Cost |
|---|---|---|---|
| EKS Cluster | 1 | $73 | $73 |
| Worker Nodes (type) | N | $X/hr × 730 | $ |
| Fargate Pods | N | vCPU + Memory | $ |
| NAT Gateway | 1-3 | $33 + data | $ |
| ALB/NLB | N | $25 + LCU | $ |
| EBS Storage | N GB | $0.08/GB | $ |
| Data Transfer | N GB | $0.01-0.09/GB | $ |
| Total | $ |
What’s Next?
Before we create a cluster, let’s make sure all the prerequisite tools are installed.