Amazon EKS Explained: AWS Managed Kubernetes for Beginners

Amazon EKS (Elastic Kubernetes Service) is AWS’s managed Kubernetes service. It runs the Kubernetes control plane, the software that schedules and coordinates your containers, so you do not have to install, patch, or operate it yourself. You bring the workloads; AWS keeps the control plane running. EKS is designed for teams that want Kubernetes specifically and are ready to handle the operational work that follows once the control plane is set up.

Simple explanation

Kubernetes is an open-source system for managing containerised applications across a fleet of servers. It handles scheduling (deciding which server a container runs on), scaling, self-healing, and networking between containers.

The problem: running Kubernetes itself involves keeping several critical components online at all times. The control plane needs to be highly available, automatically backed up, and kept in sync across servers. That is a full-time job before you have written a single line of application code.

EKS offloads that job to AWS. You interact with the cluster through the standard Kubernetes API, the same way you would on any Kubernetes cluster anywhere. Your containers still run on compute you provision, either EC2 instances or Fargate, but the coordination layer is AWS’s problem.

Analogy

Think of Kubernetes as a large office building. The control plane is the building management team: they keep the lifts running, maintain the heating, and ensure the lights stay on. EKS means AWS is that management team. You still decide how to furnish your office and what work gets done there, but you do not need to hire a facilities crew of your own.

If you have not used Kubernetes before, start with What is Kubernetes before continuing. The rest of this page assumes a basic familiarity with the concepts.

What Amazon EKS is

EKS is an AWS service that provisions and manages the Kubernetes control plane for a cluster in your account. When you create an EKS cluster, AWS creates the following components in AWS-owned infrastructure:

  • API server — accepts kubectl commands and API calls from your tools and CI/CD pipelines
  • etcd — the key-value store that holds all cluster state
  • Controller manager — watches the cluster and reconciles desired state with actual state
  • Scheduler — assigns pods to nodes based on available resources and constraints

These run across multiple Availability Zones by default, are patched automatically for security vulnerabilities, and are covered by a 99.95% uptime SLA. You never access these components directly. You work with the Kubernetes API endpoint that EKS exposes.

What EKS does not do: run your application containers. For that, you still need compute, either EC2 node groups that you manage, or AWS Fargate, which provisions compute per pod without requiring you to manage EC2 instances.

EKS is standard Kubernetes

AWS does not fork Kubernetes or add proprietary abstractions to the core API. If a manifest or Helm chart works on any other certified Kubernetes cluster, it will work on EKS. Your knowledge and tooling transfer.

How Amazon EKS works

A practical mental model: EKS has two planes, and you only own one of them.

The control plane is what EKS manages. It runs in AWS infrastructure, completely separate from your VPC. It is the brain of the cluster. It knows what containers should be running, where they should run, and what state they are currently in. You pay a flat hourly fee for this, not per-instance costs.

The data plane is your compute. EC2 instances, grouped into node groups, register with the control plane and run the actual container workloads. These live in your VPC, appear in your EC2 console, and are billed at standard EC2 rates. If you use Fargate instead, AWS manages the underlying compute, but you are still responsible for defining how and where pods run.

When you deploy an application to EKS, here is what happens step by step:

  1. You apply a Kubernetes manifest (a YAML file) using kubectl or a CI/CD tool.
  2. The control plane validates the manifest and stores the desired state in etcd.
  3. The scheduler assigns your pods to available nodes in the data plane.
  4. The kubelet agent on each node pulls your container image from Amazon ECR and starts the container.
  5. The control plane continuously watches the cluster and replaces failed pods to maintain desired state.

The EKS networking model governs how pods get IP addresses and communicate within the cluster. It is worth understanding before you design anything for production.

Where to start reading

If you want to see this in practice rather than theory, the Creating Your First EKS Cluster guide walks through building a working cluster from scratch with eksctl.

What AWS manages vs what you manage

“Managed” is a word that gets stretched in cloud marketing. Here is what it actually means for EKS.

ComponentWho manages itNotes
Kubernetes API serverAWSMulti-AZ, auto-patched, covered by SLA
etcd clusterAWSEncrypted, automatically backed up
Control plane upgradesSharedYou initiate; AWS executes the upgrade
Worker nodes (EC2)YouInstance type, OS patches, scaling
Node group AMI updatesSharedAWS provides new AMIs; you apply them
Cluster add-ons (CoreDNS, kube-proxy, VPC CNI)SharedAWS provides managed versions; you choose when to update
Application workloadsYouManifests, Helm charts, CI/CD pipelines
RBAC and pod securityYouEKS does not configure these for you
Network policiesYouRequires a compatible CNI plugin (e.g., Calico) to enforce them
IAM permissions for podsYouConfigured via IAM Roles for Service Accounts (IRSA)

The practical implication: EKS reduces the cost of running a Kubernetes cluster, but does not eliminate it. You still need to keep the cluster upgraded, maintain node security, and keep add-ons current.

Common misconception

Teams new to EKS often assume “managed” means the cluster runs itself. It does not. The control plane is managed. Your nodes, add-ons, RBAC rules, network policies, and applications are still entirely your responsibility.

When to use EKS

EKS is the right tool when you have a concrete reason to use Kubernetes:

  • Your team already knows Kubernetes. If your engineers are comfortable with manifests, Helm, RBAC, and kubectl, EKS is the lowest-friction way to run those skills on AWS.
  • You need the Kubernetes ecosystem. Helm, Argo CD, Flux, Istio, KEDA, Prometheus, and hundreds of operators are built specifically for Kubernetes. If you need these tools, EKS gives you a place to run them without re-platforming.
  • You need workloads to run in multiple environments. Kubernetes runs on AWS, GCP, Azure, bare metal, and on-premises. If you need the same application to run consistently across environments, Kubernetes is the standard that makes that possible.
  • You have complex scheduling requirements. Node affinities, taints and tolerations, topology spread constraints, and GPU scheduling exist in Kubernetes and are difficult or impossible to replicate on simpler platforms.
  • You are running stateful workloads with fine-grained control. Kubernetes has mature support for persistent volumes, StatefulSets, and custom operators for databases and queues.

When not to use EKS

EKS is not the right default for container workloads. There are clear situations where it adds cost and complexity with no matching benefit:

  • Your team has no Kubernetes experience. The learning curve is real. Namespaces, RBAC, pod disruption budgets, ingress controllers, and network policies all take time to understand well enough to operate safely.
  • You are running a simple set of services. A handful of containerised APIs and background workers with no cross-environment requirements can run on ECS or App Runner with far less overhead.
  • You want a fully serverless container experience. ECS with Fargate and AWS App Runner are genuinely lower-touch than EKS with Fargate. EKS still requires cluster-level maintenance even when Fargate handles the compute.
  • You are cost-sensitive at small scale. Every EKS cluster carries a control plane fee regardless of workload. At small scale, that fixed cost can make EKS noticeably more expensive than alternatives.
  • You need to ship quickly. Setting up a production-ready EKS cluster, covering networking, IAM, security, add-on management, and monitoring, can take days. ECS is faster to get running if you do not need Kubernetes specifically.
Avoid this pattern

Choosing EKS because it sounds more advanced or more “enterprise” than ECS is a common mistake. Kubernetes complexity is not a feature. If your requirements do not justify it, that complexity is pure overhead that your team will carry indefinitely.

EKS vs ECS

Amazon ECS (Elastic Container Service) is AWS’s other managed container orchestration service. Both run containers; they have very different operating models. The EKS vs ECS comparison covers this in more detail, but here is the short version:

FactorEKSECS
Orchestration standardKubernetes (open standard)AWS-proprietary
PortabilityWorks on any Kubernetes environmentAWS only
EcosystemLarge (Helm, Argo CD, Istio, KEDA, and more)AWS-native tooling only
Operational complexityHigher — more configuration requiredLower — simpler mental model
Control plane costFlat fee per clusterNo control plane fee
Best forTeams with Kubernetes expertise or portability needsTeams wanting simple, AWS-native container operations

Neither is objectively better. Many large AWS customers run ECS in production for years without needing Kubernetes. If EKS is not a clear requirement, ECS is usually faster and simpler to ship with.

Analogy

ECS is like renting a fully serviced co-working space. You book a desk, sit down, and get to work — the building, internet, and coffee are already sorted. EKS is like leasing your own office floor. You get more control over the layout and can bring your own furniture, but you are responsible for setting up the network, maintaining the heating, and renewing the lease on time.

EKS vs self-managed Kubernetes on AWS

You can run Kubernetes on AWS without EKS by installing it yourself on EC2 instances using tools like kubeadm or kOps. Here is a clear-eyed comparison:

What self-managed gives you:

  • Full control over every control plane configuration option
  • No cluster control plane fee
  • Ability to run Kubernetes versions that EKS no longer supports

What EKS gives you instead:

  • A managed, highly available control plane with no operational burden
  • Automatic security patching for control plane components
  • Native integration with AWS IAM, VPC networking, ALB, and CloudWatch
  • A supported, tested upgrade path with managed in-place upgrades

For almost all production workloads, EKS is the better choice. The control plane fee is modest compared to the engineering time required to operate, patch, and upgrade the control plane yourself. Self-managed Kubernetes on EC2 makes sense mainly for specific compliance or configuration edge cases where EKS’s constraints are a hard blocker.

Rule of thumb

If you are asking “should I use EKS or self-managed Kubernetes?”, the answer is almost certainly EKS. The control plane overhead of self-managed Kubernetes is significant and the savings rarely justify it.

Pricing and cost considerations

EKS costs come from two places.

Control plane fee. AWS charges a flat hourly rate per EKS cluster. This applies to every cluster you create, regardless of how many pods or nodes are running. It runs continuously, including when the cluster is idle.

Compute costs. Your worker nodes are billed at standard AWS compute rates:

  • EC2 node groups — On-Demand, Reserved Instance, or Spot pricing for the instance types you choose. The EKS managed node groups guide explains how to configure these.
  • Fargate — charged per vCPU and GB of memory per second that a pod runs. There is no idle waste since you pay only for active pods, but Fargate is typically more expensive than EC2 for steady-state workloads.

Other costs to plan for:

  • NAT gateway and data transfer fees if pods communicate with services outside your VPC
  • Load balancer costs when using the AWS Load Balancer Controller for ingress
  • Storage costs for persistent volumes backed by EBS or EFS
  • CloudWatch costs for container logging and monitoring
Cost warning

The control plane fee runs 24/7. A test cluster you forget about costs money every hour it exists. Delete clusters you are not actively using — it is one of the easiest ways to prevent unexpected bills.

For production deployments, the main cost lever is node instance sizing and Spot instances rather than cluster count. Running fewer, larger nodes with Spot instances for fault-tolerant workloads cuts compute costs significantly.

Creating your first cluster

The fastest way to create an EKS cluster is eksctl, a CLI maintained by AWS and the open-source community:

eksctl create cluster \
  --name my-cluster \
  --region eu-west-1 \
  --nodegroup-name standard-workers \
  --node-type t3.medium \
  --nodes 2

This single command creates a VPC, subnets, the EKS control plane, IAM roles, and two EC2 worker nodes. It takes 15 to 20 minutes. Once complete, configure kubectl:

aws eks update-kubeconfig --region eu-west-1 --name my-cluster
kubectl get nodes

See the Creating Your First EKS Cluster guide for the full walkthrough, including networking, IAM configuration, and add-on setup.

Common mistakes

  1. Treating EKS as fully managed. EKS manages the control plane, not the cluster. Node patching, add-on updates, RBAC configuration, network policies, and application security are all your responsibility. Teams that expect EKS to “just work” tend to discover the operational surface area the hard way.
  2. Leaving unused clusters running. The control plane fee is continuous. A development cluster created for a proof-of-concept and then forgotten quietly accumulates cost. Build the habit of tearing down clusters you are not actively using.
  3. Choosing EKS when ECS would do. Kubernetes has a real learning curve. If your team has no Kubernetes experience and your workload does not require it, ECS is often faster to ship with and cheaper to operate long-term.
  4. Deploying all nodes in one Availability Zone. EKS keeps the control plane highly available automatically, but if all your worker nodes sit in a single AZ and that AZ has an incident, your application goes down. Spread node groups across at least two AZs for any workload that needs to stay up.
  5. Skipping IAM setup for pods. Pods that call AWS services (S3, DynamoDB, Secrets Manager) are often given broad EC2 instance role permissions as a quick fix. IAM Roles for Service Accounts (IRSA) is the right approach; it scopes permissions to individual pods rather than every pod on the node.
  6. Falling behind on upgrades. EKS only supports a limited number of Kubernetes versions at any time. Falling more than one or two minor versions behind makes upgrades harder and can leave you running versions that no longer receive security patches.
  7. Not setting up logging and monitoring from the start. EKS does not enable control plane logging or send application metrics anywhere by default. Setting up cluster monitoring early makes troubleshooting far easier than retrofitting it after an incident.

Frequently asked questions

What is Amazon EKS in simple terms?

Amazon EKS (Elastic Kubernetes Service) is the AWS managed Kubernetes service. It runs the Kubernetes control plane so you do not have to install or maintain it yourself. You still provide the worker servers where your application containers actually run.

Is EKS the same as Kubernetes?

EKS runs certified upstream Kubernetes. Your existing Kubernetes manifests, Helm charts, and kubectl commands work without modification. The difference is that AWS operates the control plane components (API server, etcd, scheduler) rather than you running them yourself.

When should I choose EKS over ECS?

Choose EKS when your team has Kubernetes experience, when you need the Kubernetes ecosystem (Helm, Argo CD, Istio, KEDA), or when you need to run workloads across multiple environments (cloud and on-premises). ECS is the better choice when you want simpler AWS-native operations and do not have a specific reason to use Kubernetes.

Is EKS too complex for small teams?

For most small teams with no existing Kubernetes experience, ECS is simpler to operate. EKS requires understanding Kubernetes concepts, managing node groups, configuring networking, and keeping cluster add-ons current. That overhead is worth it if you need the Kubernetes ecosystem, but if you just need to run containers, ECS removes most of that work.

What are the main costs of running EKS?

EKS has two main cost components: a flat fee per cluster for the managed control plane, plus the EC2 or Fargate compute costs for your worker nodes. The control plane fee applies even when no workloads are running, so deleting unused clusters matters for cost control.

Last verified: 4 April 2026 Cloud services change frequently. Verify details against official documentation before making infrastructure decisions.