Amazon EKS — EKS vs ECS vs Fargate

3 minute read

AWS offers three main ways to run containers. Understanding the differences helps you pick the right service for your workload.


Quick Comparison

Feature EKS ECS Fargate
Orchestrator Kubernetes AWS-proprietary Not an orchestrator — it’s a compute engine
Portability Run anywhere (any K8s cluster) AWS only AWS only (works with EKS and ECS)
Learning Curve Steeper (Kubernetes ecosystem) Lower (AWS-native API) Lowest (no node management)
Ecosystem Huge CNCF ecosystem (Helm, ArgoCD, Prometheus) AWS-ecosystem tools Uses EKS or ECS ecosystem
Control Full control over cluster and nodes Moderate control Least control (serverless)
Pricing $0.10/hr control plane + compute No control plane fee + compute Per vCPU/memory per second
Node Management You manage (or Fargate) You manage (or Fargate) AWS manages everything
Multi-Cloud Yes (K8s runs anywhere) No No

Understanding Fargate

Fargate is not an orchestrator. It’s a serverless compute engine that works with both EKS and ECS.

Think of it this way:

  • EKS = Orchestrator (uses Kubernetes to schedule pods)
  • ECS = Orchestrator (uses AWS task definitions to schedule containers)
  • Fargate = Compute option (removes the need to manage EC2 instances)

You can run:

  • EKS on EC2 — You manage the worker nodes
  • EKS on Fargate — AWS manages the compute (serverless pods)
  • ECS on EC2 — You manage the container instances
  • ECS on Fargate — AWS manages the compute (serverless tasks)

EKS on EC2 vs EKS on Fargate

Aspect EKS on EC2 EKS on Fargate
Node Management You manage EC2 instances No nodes to manage
DaemonSets Supported Not supported
GPU Workloads Supported Not supported
Persistent Storage EBS + EFS EFS only (no EBS)
Pricing EC2 instance pricing Per-pod vCPU + memory pricing
Pod Density Multiple pods per node One pod per micro-VM
Startup Time Fast (pods on existing nodes) Slower (~30-60s cold start)
HostNetwork Supported Not supported
Privileged Containers Supported Not supported
Cost for Steady Workloads Lower (better bin-packing) Higher (overhead per pod)
Cost for Bursty Workloads Higher (idle nodes) Lower (pay-per-pod)

When to Choose EKS

Choose EKS when:

  • Your team already knows Kubernetes
  • You need multi-cloud or hybrid portability
  • You want access to the CNCF ecosystem (Helm, ArgoCD, Prometheus, Istio)
  • You’re running complex microservices architectures
  • You need custom controllers or operators
  • You want to avoid vendor lock-in on the orchestration layer

When to Choose ECS

Choose ECS when:

  • You’re an AWS-only shop and want the simplest container orchestration
  • Your team doesn’t need Kubernetes-specific features
  • You want zero control plane costs
  • You’re running a small number of services
  • You prefer AWS-native tooling over the CNCF ecosystem

When to Choose Fargate

Add Fargate to either EKS or ECS when:

  • You don’t want to manage, patch, or scale EC2 instances
  • You have bursty, unpredictable workloads
  • You’re running batch jobs with varying demand
  • You want strong pod-level isolation (each pod in its own micro-VM)
  • Your workloads don’t need DaemonSets, GPUs, or privileged access

Decision Flowchart

Do you need Kubernetes specifically?
├── YES → Use EKS
│   ├── Need DaemonSets, GPUs, or privileged? → EKS on EC2
│   ├── Bursty workloads, no node mgmt? → EKS on Fargate
│   └── Mix of both? → EKS on EC2 + Fargate profiles
│
└── NO → Do you need the simplest AWS container service?
    ├── YES → Use ECS
    │   ├── Steady workloads, cost-optimize? → ECS on EC2
    │   └── Variable workloads, ops-minimize? → ECS on Fargate
    │
    └── Not sure → Start with ECS on Fargate (lowest barrier)

Cost Comparison Example

For a workload running 10 pods (each 0.5 vCPU, 1 GB memory) 24/7 in us-east-1:

Option Monthly Cost (Approx.)
EKS on EC2 (2x m5.large On-Demand) ~$73 (EKS) + ~$140 (EC2) = ~$213
EKS on Fargate (10 pods) ~$73 (EKS) + ~$240 (Fargate) = ~$313
ECS on EC2 (2x m5.large On-Demand) $0 (ECS) + ~$140 (EC2) = ~$140
ECS on Fargate (10 tasks) $0 (ECS) + ~$240 (Fargate) = ~$240

Key Takeaway: EKS has a control plane cost ($73/mo). ECS does not. Fargate is more expensive than EC2 for steady workloads but eliminates node management. Choose based on your operational priorities, not just raw cost.


What’s Next?

Now let’s look at the EKS architecture — how the control plane and data plane work together.

Next: EKS Architecture →

Updated: