Amazon EKS — EKS vs ECS vs Fargate
EKS vs ECS vs Fargate
AWS offers three main container services, and choosing the wrong one is a common — and expensive — mistake. This page compares all three so you can pick the right tool.
The Three Services
AWS Container Services
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │
│ │ Amazon ECS │ │ Amazon EKS │ │ AWS Fargate │ │
│ │ │ │ │ │ │ │
│ │ AWS-native │ │ Kubernetes │ │ Serverless │ │
│ │ container │ │ on AWS │ │ compute for │ │
│ │ orchestrator │ │ │ │ containers │ │
│ └───────────────┘ └───────────────┘ └───────────────┘ │
│ │
│ Note: Fargate is a COMPUTE ENGINE, not an orchestrator. │
│ It works WITH both ECS and EKS. │
└─────────────────────────────────────────────────────────────┘
Key clarification: Fargate is NOT a competitor to ECS or EKS. It’s a compute engine that works with both. Think of ECS and EKS as the “what to run” and Fargate as the “where to run it” (alongside EC2).
Comparison Table
| Aspect | ECS | EKS | Fargate |
|---|---|---|---|
| Type | Container orchestrator | Container orchestrator | Compute engine |
| Standard | AWS-proprietary | Kubernetes (CNCF) | N/A (works with ECS/EKS) |
| Learning curve | Low | High | Low (with ECS) |
| Cluster fee | Free | $0.10/hr ($73/month) | N/A |
| Compute options | EC2 or Fargate | EC2, Fargate, or both | Serverless only |
| Portability | AWS only | Multi-cloud | AWS only |
| Ecosystem | AWS tooling only | Helm, operators, CRDs, etc. | Limited |
| Ideal team size | Small-medium | Medium-large | Any |
| DaemonSets | No (use sidecars) | Yes (EC2 nodes) | No |
| GPU support | Yes (EC2) | Yes (EC2) | No |
When to Use Each
Use Amazon ECS When:
- Your team doesn’t know Kubernetes and doesn’t need to learn it
- You’re deploying straightforward containerized apps
- You want the simplest path to running containers on AWS
- You don’t need multi-cloud portability
- You have < 20 microservices
Use Amazon EKS When:
- Your team already knows Kubernetes
- You need Kubernetes-specific features (CRDs, operators, Helm)
- Multi-cloud portability matters (same manifests on GKE, AKS)
- You have complex networking requirements
- You’re running 20+ microservices
- You need fine-grained scheduling (affinity, taints, tolerations)
Use Fargate (with either ECS or EKS) When:
- You don’t want to manage EC2 instances
- Workloads are bursty or unpredictable
- You’re running batch jobs or cron tasks
- Security requires pod-level isolation (each Fargate task gets its own VM)
Decision Flowchart
Do you need containers on AWS?
├── No → Consider Lambda, App Runner, or Lightsail
└── Yes
├── Does your team know Kubernetes?
│ ├── No
│ │ └── Do you need K8s-specific features?
│ │ ├── No → Use ECS ✅
│ │ └── Yes → Invest in learning K8s → Use EKS
│ └── Yes
│ └── Do you need multi-cloud?
│ ├── Yes → Use EKS ✅
│ └── No → EKS (if > 20 services) or ECS (if simpler)
└── Do you want serverless containers?
└── Yes → Fargate with ECS (simpler) or EKS (if you need K8s)
Cost Comparison
For running 10 microservices, each needing 0.5 vCPU and 1 GB memory:
| Component | ECS + EC2 | ECS + Fargate | EKS + EC2 | EKS + Fargate |
|---|---|---|---|---|
| Orchestrator fee | $0 | $0 | $73 | $73 |
| Compute (10 pods, 24/7) | ~$60 | ~$180 | ~$60 | ~$180 |
| NAT Gateway (1 AZ) | $32 | $32 | $32 | $32 |
| Monthly total | ~$92 | ~$212 | ~$165 | ~$285 |
Takeaway: ECS is cheaper for simple workloads. EKS pays for itself when you need K8s features that would take months to build on ECS.
Common Mistakes
| Mistake | Why It’s Wrong |
|---|---|
| “EKS because everyone uses K8s” | If your team doesn’t know K8s, ECS is faster to production |
| “ECS because it’s cheaper” | The $73/month EKS fee is trivial compared to engineering time |
| “Fargate for everything” | Fargate is 2-3x more expensive than EC2 for steady-state workloads |
| “We’ll migrate from ECS to EKS later” | Migration is painful — decide upfront |
Quick Reference
| Question | Answer |
|---|---|
| Simplest option? | ECS + Fargate |
| Cheapest option? | ECS + EC2 |
| Most portable? | EKS + EC2 |
| Most serverless? | ECS/EKS + Fargate |
| Best for Kubernetes shops? | EKS |
| Best for small teams? | ECS |
What’s Next?
Ready to test your understanding? Try the Introduction Exercises to solidify what you’ve learned.