# Amazon EKS

> Kubernetes with the hard part, the control plane, run by AWS.

- Level: Advanced
- Topics: AWS, Cloud
- URL: https://tidbit.legios.com.ar/amazon-eks/
- In Spanish: [Amazon EKS](https://tidbit.legios.com.ar/es/amazon-eks/)

**Amazon EKS** (Elastic Kubernetes Service) is managed Kubernetes on AWS. Kubernetes has two halves: the **control plane** (the brain: the API server, the scheduler and the etcd database that stores the state of the cluster) and the **worker nodes** (the machines where your containers actually run). EKS runs the control plane for you, spread across several Availability Zones, patched and backed up, and exposes the standard Kubernetes API so your usual tools (`kubectl`, Helm, GitOps pipelines) work unchanged.

For the nodes you choose: managed node groups of Amazon EC2 instances that EKS creates and upgrades, Fargate so pods run with no node to manage at all, or the Karpenter autoscaler that launches the right-sized instance on demand. EKS also wires Kubernetes into AWS: a pod can carry an IAM role, a Kubernetes Service of type LoadBalancer becomes a real AWS Load balancer, and a persistent volume becomes an Amazon EBS disk.

Why pick it over Amazon ECS and Fargate? Portability and ecosystem. A team that already runs Kubernetes elsewhere, or depends on its tools (operators, service meshes, Argo CD), brings its manifests to EKS almost as they are. The price is complexity: Kubernetes has many moving parts, and version upgrades still need planning on your side.

Example: a company with 40 microservices runs them on one EKS cluster with three node groups (general purpose, memory-heavy, and GPU for model inference), one Helm chart per service, and Argo CD deploying every merge to main.

## An analogy

Renting a theater with the technical crew included. AWS runs the lighting booth and the sound desk (the control plane); you bring the actors (your containers) and decide how big a stage you need (the nodes).

## Keep in mind

- AWS runs and patches the control plane; you choose how nodes run: EC2, Fargate or Karpenter.
- It is upstream Kubernetes: standard API, standard tooling, portable manifests.
- Deep AWS integration: IAM roles for pods, load balancers, EBS and EFS volumes.
- More flexible than ECS, and noticeably more to learn and operate.

## Go deeper

- [What is Amazon EKS? (official docs)](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)
- [Amazon EKS product page](https://aws.amazon.com/eks/)

## Related terms

- [Kubernetes](https://tidbit.legios.com.ar/kubernetes/): The system that runs and babysits containers across many machines.
- [API](https://tidbit.legios.com.ar/api/): The menu of things one program lets another program ask for.
- [Server](https://tidbit.legios.com.ar/server/): A computer whose job is to answer requests from other computers, all day, every day.
- [Database](https://tidbit.legios.com.ar/database/): An organized store of data that programs can search and update safely.
- [Container](https://tidbit.legios.com.ar/container/): A sealed box with a program and everything it needs to run anywhere.
- [Regions and Availability Zones](https://tidbit.legios.com.ar/regions-and-availability-zones/): Where AWS physically lives: cities worldwide, each split into separate data centers.
- [Amazon EC2](https://tidbit.legios.com.ar/amazon-ec2/): Virtual computers you rent by the hour, in any size, and switch off when done.
- [Amazon ECS and Fargate](https://tidbit.legios.com.ar/amazon-ecs-and-fargate/): AWS runs your containers; with Fargate you never see the servers at all.
