Amazon EKS

A fully managed Kubernetes control plane service that enables seamless migration of on-premises Kubernetes workloads to the cloud

Overview

Amazon Elastic Kubernetes Service (EKS) is a fully managed service that provides the Kubernetes control plane (API server, etcd, scheduler, etc.). It is fully compatible with the standard Kubernetes API, so existing Kubernetes tools (kubectl, Helm, Argo CD, etc.) and applications work without modification. Worker nodes can be EC2 instances (managed node groups or self-managed), Fargate, or EKS Anywhere (on-premises). EKS automatically handles Kubernetes version upgrades, security patches, and control plane high availability (distributed across 3 AZs). It natively integrates with AWS services such as IAM, VPC, ELB, EBS, and EFS, allowing Kubernetes workloads to seamlessly consume AWS resources.

Selection Criteria Between ECS and Cost Structure

EKS and ECS are both container orchestration services, but they target different use cases. Choose EKS when Kubernetes ecosystem compatibility is a priority: teams already using Kubernetes, organizations pursuing multi-cloud or hybrid cloud strategies, and those wanting to leverage the rich Kubernetes ecosystem (Istio, Prometheus, Argo CD, etc.). Choose ECS for simpler, AWS-native container operations: teams that want to avoid the Kubernetes learning curve, those prioritizing deep AWS service integration, and small to medium-scale container workloads. On pricing, EKS incurs a fixed cost of $0.10 per hour (approximately $73/month) for the control plane, whereas the ECS control plane is free. Azure Kubernetes Service (AKS) offers a free control plane tier, but it comes without an SLA - the Standard tier with SLA costs roughly the same as EKS. Worker node costs (EC2 or Fargate) are the same for both EKS and ECS.

Scaling with Node Groups and Karpenter

In EKS operations, node group design and scaling strategy are key challenges. Managed node groups delegate node provisioning, AMI updates, patching, and draining to AWS, significantly reducing operational burden. For more advanced scaling, deploying Karpenter enables automatic selection of optimal instance types based on Pod resource requests, building cost-efficient clusters that dynamically mix Spot and On-Demand instances. Unlike Cluster Autoscaler, which scales at the node group level, Karpenter provisions individual nodes tailored to pending Pod requirements, reducing both scheduling latency and resource waste. Karpenter's consolidation feature continuously evaluates running nodes and replaces underutilized ones with smaller, better-fitting instances. For a systematic study of Amazon EKS, related books (Amazon) are a helpful reference.

Security and EKS Anywhere

EKS security starts with Pod Security Standards, which enforce policies to restrict privileged container execution, host network usage, and privilege escalation. IAM Roles for Service Accounts (IRSA) maps Kubernetes service accounts to IAM roles, granting Pods fine-grained AWS permissions without sharing node-level credentials. Network policies (via Calico or VPC CNI network policy support) control Pod-to-Pod traffic at the namespace level. Secrets encryption with a KMS customer-managed key protects sensitive data stored in etcd. A distinctive EKS feature is EKS Anywhere, which lets you run the same Kubernetes distribution on-premises using VMware vSphere or bare metal, enabling consistent tooling and operations across cloud and on-premises environments. While AKS offers Azure Arc-enabled Kubernetes for hybrid scenarios, EKS Anywhere provides greater independence in on-premises environments by not requiring continuous cloud connectivity.

共有するXB!