Amazon Web Services
Containers — ECS, EKS & Fargate
Run containers as managed services, with or without managing the underlying servers.
AWS gives two container orchestrators. ECS (Elastic Container Service) is AWS's own simpler orchestrator: you define task definitions (containers, CPU/memory, ports) and run them as services behind a load balancer. EKS (Elastic Kubernetes Service) is managed upstream Kubernetes for teams that want the portability and ecosystem of K8s, with AWS operating the control plane.
ECS vs EKS is choosing between a house-brand appliance that just works (ECS) and an industry-standard one with a huge accessory ecosystem (EKS/Kubernetes). EC2 vs Fargate is owning the building your machines sit in versus renting fully-serviced space and only paying for the machines.
Key Concepts
1
The other axis is where containers run. The EC2 launch type runs tasks on EC2 instances you manage (more control, you patch the nodes). Fargate is serverless containers: you specify CPU/memory per task and AWS runs them with no servers to manage, billing per task. Fargate works with both ECS and EKS. The choice is: ECS for AWS-native simplicity, EKS for Kubernetes portability; Fargate to drop node management, EC2 for control and cost tuning at scale.