Amazon EKS
Amazon Elastic Kubernetes Service (Amazon EKS) is a managed Kubernetes service that makes it easy to run Kubernetes on AWS and on-premises. Kubernetes is an open-source system for automating the deployment, scaling and management of containerized applications.
Amazon EKS enables Kubernetes applications to run on both Amazon Elastic Compute Cloud (Amazon EC2) and AWS Fargate. With Amazon EKS, you can leverage all the performance, scale, reliability and availability of AWS infrastructure, as well as integrations with AWS networking and security services, such as application load balancers (ALBs) for load distribution, AWS Identity and Access Management (IAM) integration with role-based access control (RBAC), and AWS Virtual Private Cloud (VPC) support for pod networks.
Managed Kubernetes clusters
Managed control plane
Amazon EKS provides a scalable and highly available Kubernetes control plane running across multiple AWS Availability Zones (AZs). Amazon EKS automatically manages the availability and scalability of Kubernetes API servers and the etcd persistence layer. Amazon EKS runs the Kubernetes control plane in three AZs to ensure high availability, and automatically detects and replaces unhealthy control plane nodes.
Service integrations
AWS Controllers for Kubernetes (ACK) enables direct management control of AWS services from within the Kubernetes environment. ACK facilitates the creation of scalable and highly available Kubernetes applications using AWS services.
Hosted Kubernetes console
EKS provides an integrated console for Kubernetes clusters. Cluster operators and application developers can use EKS as a single place to organize, visualize and troubleshoot Kubernetes applications running on Amazon EKS. The EKS console is hosted by AWS and is automatically available to all EKS clusters.
EKS add-ons
EKS add-ons are common operating software used to extend the operational functionality of Kubernetes. You can use EKS to install and maintain up-to-date add-on software. When launching an Amazon EKS cluster, select the add-ons you want to run in the cluster, including Kubernetes tools for observability, networking, autoscaling and AWS service integration.
Managed node groups
Amazon EKS lets you create, update, scale and decommission nodes for a cluster with a single command. These nodes can also use Amazon EC2 Spot Instances to reduce costs. Managed node groups run Amazon EC2 instances using the latest EKS-optimized or custom Amazon machine images (AMIs) in an AWS account, while updates and terminations gracefully exhaust nodes to ensure application availability.
Hybrid deployments
You can use EKS on AWS Outposts to run containerized applications that require especially low latency to local systems. AWS Outposts is a fully managed service that extends AWS infrastructure, AWS services, APIs and tools to virtually any connected location. With EKS on Outposts, you can manage containers locally with the same ease that you manage containers in the cloud.
Nodes running in AWS Local Zones or AWS Wavelength can be attached to EKS, giving you more choices for AWS-managed infrastructure at the edge.
Amazon EKS Distro packages the same open-source Kubernetes software distribution used in Amazon EKS on AWS for use on your own local infrastructure. Manage your EKS Distro clusters with your own tools or with Amazon EKS Anywhere.
With Amazon EKS Anywhere, you can easily create and operate Kubernetes clusters (by building them with software in Amazon EKS Distro) on-premises, including on your own virtual machines (VMs) and bare metal servers. EKS Anywhere saves the complexity of building and supporting your own Kubernetes cluster management tools. EKS Anywhere provides automation tools that simplify clustering, administration and operations on infrastructure such as bare metal, VMware vSphere and cloud VMs. This includes cloud VMs with default logging, monitoring, networking and storage configurations. EKS Anywhere brings additional tools and components that you will need to run Kubernetes in production, such as cluster installation and lifecycle management, observability, cluster backup and policy management.
Use exctl to run nodes and management from a single line
Use the eksctl command line tool to launch Amazon EKS in minutes. Simply run the command "exctl create cluster" to create your EKS cluster. You can use exctl to simplify cluster management and operations, including node and add-on management.
Windows support
Amazon EKS supports Windows worker nodes and Windows container scheduling. EKS supports running Windows worker nodes alongside Linux worker nodes, allowing you to use the same cluster to manage applications on both operating systems.
ARM support
AWS Graviton2 processors power Arm-based EC2 instances, providing a big jump in performance and capabilities, as well as significant cost savings. Improving the cost-effectiveness of applications is a major goal of running containers. By combining both of these goals, you get great price performance. For example, load tests show that instance types based on Graviton2 processors deliver up to 40% better price performance than their x86 M5, C5 and R5 family counterparts. Amazon EKS on AWS Graviton2 is generally available where both services are available regionally.
Networking and security
Amazon EKS makes it easier to provide security for Kubernetes clusters, with advanced features and integration with AWS services and technology partner solutions. For example, IAM provides fine-grained access control, and Amazon VPC isolates your Kubernetes clusters from other clients.
IPv6 support
Amazon Elastic Kubernetes Service (EKS) supports IPv6, enabling customers to scale containerized applications on Kubernetes far beyond the limits of the private IPv4 address space. With EKS support for IPv6, pods are assigned only to a globally routable IPv6 address, allowing applications to scale in a cluster without consuming the limited private IPv4 address space. This globally routable IPv6 address can be used to communicate directly with any IPv6 endpoint on the Amazon VPC, local network or public Internet. In addition, EKS configures the network so that pods can continue to communicate with IPv4-based endpoints outside of the cluster, allowing the benefits of IPv6 to be adopted using Kubernetes without having to migrate all dependent services deployed across the organization to IPv6.
Service discovery
AWS Cloud Map is a cloud resource discovery service. With Cloud Map, you can define custom names and maintain up-to-date locations of dynamically changing application resources. This increases application availability because the web service always discovers the most current resource locations. Cloud Map works with external-dns, an open-source Kubernetes connector that automatically propagates internal service locations to the Cloud Map service registry when you start Kubernetes services and removes them when you're done. Kubernetes-based services can be discovered through Cloud Map, which provides a unified service registry for all containerized workloads.
AWS IAM Authenticator
Amazon EKS integrates Kubernetes RBAC (native role-based access control for Kubernetes) with AWS IAM. You can assign RBAC roles directly to each IAM entity, enabling granular control of access permissions to Kubernetes control plane nodes.
IAM for service accounts
Amazon EKS allows you to assign IAM permissions to Kubernetes service accounts. The IAM role can control access to other containerized services, AWS resources outside the cluster, such as databases and secrets, or third-party services and applications running outside AWS. This gives precise pod-level access control when running clusters with multiple co-located services, while simplifying cluster availability and optimizing costs.
Compliance
Amazon EKS is certified by multiple compliance programs for regulated and sensitive applications. Amazon EKS is compliant with SOC, PCI, ISO, FedRAMP-Moderate, IRAP, C5, K-ISMS, ENS High, OSPAR, HITRUST CSF and is a HIPAA-eligible service.
Load Balancing
Amazon EKS supports the use of Elastic Load Balancing, including Application Load Balancer (ALB), Network Load Balancer (NLB) and Classic Load Balancer.
You can run standard Kubernetes cluster load balancing or any ingress controller supported by Kubernetes with your Amazon EKS cluster.
Serverless
EKS supports AWS Fargate to run Kubernetes applications using serverless computing. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security by isolating applications by design.
Cost monitoring
Amazon EKS simplifies the process of understanding the costs associated with using Kubernetes, both at the cluster and individual application level.
Tagging cost allocations
Amazon EKS automatically adds an AWS cost allocation tag to each EC2 instance that joins the cluster. This frees you from having to enforce a custom tagging policy across your organization to gain visibility into costs at the cluster level. Once you activate the cost allocation tag with the EKS cluster name in the AWS Billing Console, you can use AWS Cost and Usage reports to track EC2 costs associated with EKS clusters.
Kubecost
Amazon EKS supports Kubecost, which allows you to monitor costs by Kubernetes resource, including pods, nodes, namespaces and labels. Kubernetes platform administrators and finance leaders can use Kubecost to visualize the breakdown of their Amazon EKS-related charges, allocate costs and charge organizational units, such as application teams. You can provide your internal teams and business units with transparent and accurate cost data based on their actual AWS bill and get customized recommendations for cost optimization based on their infrastructure environment and usage patterns within their clusters.
Logging
Amazon EKS is integrated with AWS CloudTrail to provide visibility into EKS management operations, including audit history. You can use CloudTrail to view API calls to the Amazon EKS API. Amazon EKS also provides Kubernetes control plane logs to Amazon CloudWatch for analysis, debugging and auditing.
Certified compliance
Amazon EKS runs in upstream Kubernetes and is certified as Kubernetes-compatible, so you can use all existing plugins and tools from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running in any standard Kubernetes environment, whether they run in on-premises data centers or public clouds. This means you can easily migrate any standard Kubernetes application to Amazon EKS without refactoring your code.
Manageable cluster upgrades
Amazon EKS makes it easy to upgrade running clusters to the latest version of Kubernetes without having to manage the upgrade process. Kubernetes version updates are performed in-house, eliminating the need to create new clusters or migrate applications to a new cluster.
As new Kubernetes versions are released and approved for use with Amazon EKS, we will support three stable Kubernetes versions at any given time as part of the upgrade process. You can initiate the installation of a new version and view the update status on the fly using the SDK, CLI or AWS console.
Advanced workload support
Amazon EKS provides an optimized Amazon machine image (AMI) that includes configured NVIDIA drivers for GPU-enabled P2 and P3 Amazon EC2 instances. This facilitates the use of Amazon EKS to run computationally advanced workloads, including machine learning (ML), Kubeflow, deep learning (DL) containers, high-performance computing (HPC), financial analytics and video transcoding.
Open-Source Compatibility
Amazon EKS is fully compatible with Kubernetes community tools and supports popular Kubernetes add-ons. These include CoreDNS, which creates a DNS service for your cluster, and both the Kubernetes Dashboard web UI and kubectl command-line tool, which help you access and manage your cluster on Amazon EKS.
EKS Connector
Amazon EKS allows you to connect any compatible Kubernetes cluster to AWS and visualize it in the Amazon EKS console. You can connect any compatible Kubernetes cluster, including Amazon EKS Anywhere clusters running on-premises, self-managed clusters on Amazon Elastic Compute Cloud (Amazon EC2) and other Kubernetes clusters running outside AWS. Regardless of where your cluster is running, you can use the Amazon EKS console to view all connected clusters and the Kubernetes resources running on them.
See our selected projects with Amazon EKS
Design, implementation, and care of LINK Mobility infrastructure
Migration of a microservices-based development environment to AWS for NeuroSYS