Amazon EKS — What is Amazon EKS?

4 minute read

What is Amazon EKS?

Amazon Elastic Kubernetes Service (EKS) is a fully managed Kubernetes service from AWS. It runs the Kubernetes control plane for you — that’s the API server, etcd database, scheduler, and controller manager — so you can focus on deploying and running your applications.


The Problem EKS Solves

Running Kubernetes yourself is hard. Really hard. Here’s what you’d need to manage without EKS:

Self-Managed Kubernetes — Your Responsibility
┌─────────────────────────────────────────────────────┐
│  Control Plane (you manage ALL of this)              │
│  ┌──────────┐ ┌──────┐ ┌───────────┐ ┌───────────┐ │
│  │ API      │ │ etcd │ │ Scheduler │ │ Controller│ │
│  │ Server   │ │      │ │           │ │ Manager   │ │
│  └──────────┘ └──────┘ └───────────┘ └───────────┘ │
│  • High availability (multi-master)                  │
│  • etcd backups and disaster recovery                │
│  • Certificate rotation                              │
│  • Version upgrades (scary!)                         │
│  • Security patching                                 │
├─────────────────────────────────────────────────────┤
│  Data Plane (you also manage this)                   │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐            │
│  │ Worker   │ │ Worker   │ │ Worker   │            │
│  │ Node 1   │ │ Node 2   │ │ Node 3   │            │
│  └──────────┘ └──────────┘ └──────────┘            │
└─────────────────────────────────────────────────────┘

With EKS, AWS takes over the control plane:

Amazon EKS — Shared Responsibility
┌─────────────────────────────────────────────────────┐
│  Control Plane (AWS manages this)        ☁️ AWS      │
│  ┌──────────┐ ┌──────┐ ┌───────────┐ ┌───────────┐ │
│  │ API      │ │ etcd │ │ Scheduler │ │ Controller│ │
│  │ Server   │ │ (3AZ)│ │           │ │ Manager   │ │
│  └──────────┘ └──────┘ └───────────┘ └───────────┘ │
│  ✅ HA across 3 AZs     ✅ Auto-patched             │
│  ✅ etcd backed up       ✅ 99.95% SLA               │
├─────────────────────────────────────────────────────┤
│  Data Plane (you manage this)           👤 You       │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐            │
│  │ Worker   │ │ Worker   │ │ Worker   │            │
│  │ Node 1   │ │ Node 2   │ │ Node 3   │            │
│  └──────────┘ └──────────┘ └──────────┘            │
└─────────────────────────────────────────────────────┘

Think of it this way: EKS is like renting an apartment. The landlord (AWS) maintains the building structure, plumbing, and electrical (control plane). You’re responsible for furnishing and maintaining your apartment (data plane — your worker nodes and applications).


Key Features of Amazon EKS

Feature Description
Managed Control Plane AWS runs API server, etcd, scheduler across 3 AZs
Kubernetes Conformant Passes CNCF conformance tests — standard K8s APIs work
Multiple Node Options EC2 managed nodes, self-managed nodes, or Fargate (serverless)
Native AWS Integration IAM for auth, VPC for networking, EBS/EFS for storage
Add-on Ecosystem CoreDNS, kube-proxy, VPC CNI, EBS CSI managed as add-ons
Version Support Supports latest K8s versions; extended support available

How EKS Works — The 30-Second Version

You ──kubectl──▶ EKS API Server ──▶ Scheduler ──▶ Worker Nodes
                     │                                   │
                     │           etcd (state store)       │
                     │                                   │
                     └──── ENI (network interface) ──────┘
                          (connects control plane
                           to your VPC)
  1. You run kubectl apply -f deployment.yaml
  2. The request hits the EKS API server (managed by AWS)
  3. The scheduler decides which worker node should run your pod
  4. The kubelet on that worker node pulls the container image and starts it
  5. The VPC CNI plugin assigns a real VPC IP address to your pod

What EKS Manages vs What You Manage

Component Who Manages It?
API Server ☁️ AWS
etcd (cluster state) ☁️ AWS
Scheduler ☁️ AWS
Controller Manager ☁️ AWS
Control plane HA & patching ☁️ AWS
Worker nodes (EC2 or Fargate) 👤 You
Application deployments 👤 You
Pod networking (VPC CNI) 👤 You (with AWS add-on)
Storage (EBS/EFS CSI drivers) 👤 You (with AWS add-on)
IAM permissions 👤 You
Kubernetes RBAC 👤 You

When Should You Use EKS?

Use EKS when you:

  • Already use Kubernetes and want to run it on AWS
  • Need multi-cloud portability (Kubernetes is the standard)
  • Have a team with Kubernetes expertise
  • Need fine-grained control over networking and scheduling
  • Run complex microservices architectures
  • Need Kubernetes-specific features (CRDs, operators, Helm)

Consider alternatives when you:

  • Just need to run containers (consider ECS — simpler)
  • Have a single container to run (consider App Runner or Lambda)
  • Don’t have Kubernetes expertise and don’t need K8s-specific features

EKS Cluster Versions

EKS supports multiple Kubernetes versions simultaneously. As of 2024:

K8s Version EKS Status
1.31 Standard support
1.30 Standard support
1.29 Standard support
1.28 Standard support
1.27 Extended support (+$0.60/hr)
≤ 1.26 End of life

Pro tip: Always start with the latest stable version. EKS auto-upgrades are not a thing — you must upgrade manually, and it’s easier when you’re not 3 versions behind.


Quick Reference

Item Value
Service name Amazon Elastic Kubernetes Service (EKS)
Control plane SLA 99.95%
Cluster fee $0.10/hr ($73/month)
Minimum nodes 0 (Fargate-only cluster)
Max pods per node Depends on instance type (ENI limits)
Supported K8s versions Latest 4 minor versions (standard support)
Regions 25+ AWS regions

What’s Next?

Now that you understand what EKS is, let’s compare it with self-managed Kubernetes options in Managed vs Self-Managed K8s.