Skip to content

Amazon EKS overview

First PublishedByAtif Alam

Amazon Elastic Kubernetes Service (EKS) runs the Kubernetes control plane for you: API server, etcd, and scheduler are managed by AWS. You attach worker capacity (managed node groups, self-managed nodes, or Fargate) and run workloads with standard Kubernetes APIs (kubectl, manifests, Helm).

ApproachYou manageAWS manages
EKSNodes (or Fargate profiles), add-ons, workloads, RBACControl plane, control-plane patches
ECSTask definitions, servicesOrchestration engine (no Kubernetes API)
Self-managed K8s on EC2Control plane + nodes + etcd backupsUnderlying EC2 only

Choose EKS when you need the Kubernetes ecosystem (operators, CNCF tools, portable YAML) and are OK with AWS-specific wiring for networking, IAM, and storage. Choose ECS when you want simpler AWS-native orchestration without Kubernetes.

The follow-up page walks through a production-oriented cluster with Terraform:

  • VPC — Multi-AZ private subnets for nodes, public subnets for load balancer–facing traffic where needed, NAT for outbound from private subnets.
  • API endpointPrivate Kubernetes API (not reachable from the public internet); you reach it via VPN, Direct Connect, or a bastion / jump host in the VPC (see the Terraform page).
  • NodesManaged node groups (AWS maintains AMIs and rolling updates for the worker layer).
  • Add-ons — Core EKS add-ons (VPC CNI, CoreDNS, kube-proxy) and EBS CSI for persistent volumes.
  • Security — Control-plane encryption (KMS), least-privilege IAM for nodes and cluster role; IRSA (IAM Roles for Service Accounts) introduced as the pattern for pod-level AWS permissions.

This is a baseline suitable for learning and many internal platforms—not every enterprise control (e.g. multi-account guardrails, full IRSA for every app) fits in one tutorial.

Before Create cluster with Terraform, you should be comfortable with:

TopicWhy it matters
Setting up basic accessAWS CLI, credentials, region
IAMRoles and policies for EKS cluster and nodes
NetworkingVPC, subnets, route tables, security groups
VPC connectivityHow you’ll reach a private API (VPN, etc.)

Tools on your machine: Terraform 1.5+ (or current supported 1.x), AWS CLI, kubectl (aligned with the cluster Kubernetes version).

  1. Skim Architecture and AWS networking if subnets/NAT are fuzzy.
  2. Work through Terraform: production cluster step by step in a non-prod account first.
  3. Configure kubectl and run a smoke test (kubectl get nodes).
  4. For deploying applications, continue with Core objects, Manifests, and the rest of this Kubernetes section.

Create an EKS cluster with Terraform — VPC module, EKS module, private API, managed node groups, add-ons, and operational notes.