Amazon Elastic Container Service for Kubernetes (EKS) is a cloud-based container management service that natively integrates with Kubernetes to deploy applications.
The EKS service automatically manages and scales clusters of infrastructure resources on AWS with Kubernetes, an open source tool for container orchestration that can be difficult for an enterprise to administer on its own. With Amazon EKS, an enterprise can use Kubernetes without having install, operate or manage the container orchestration software.
Amazon EKS features
A developer or administrator that uses EKS will provision the worker nodes and link them to Amazon EKS endpoints. AWS then handles all management tasks for the Kubernetes control plane, including upgrades, patches and security configurations. AWS also scales API servers and backend persistent layers through EKS. The service integrates with multiple native Amazon services, such as Elastic Load Balancing, AWS Identity and Access Management (IAM), Amazon Virtual Private Cloud (VPC), AWS PrivateLink and AWS CloudTrail.
A user must create an IAM role, VPC and security group for its clusters. A single cluster can run multiple applications, but different VPCs should be used for each cluster for improved network isolation.
Kubernetes uses pods, or groups of containers, to orchestrate and scale servers. Amazon EKS automatically replicates master schedulers across three availability zones in a given AWS region for higher availability. It also scans for unhealthy nodes and automatically replaces them.
Amazon EKS relies on many open source tools, including Kubernetes and Docker, which means that a user can move pods to non-AWS environments without application code changes.
EKS vs. ECS and others
Amazon EKS is an offshoot of Amazon EC2 Container Service (ECS), which was one of the first managed container services. Amazon ECS has a proprietary orchestration layer, which, compared to EKS, makes it easier to integrate with other AWS offerings, but more difficult to move containerized applications off Amazon's cloud.
Amazon EKS is slated to add Fargate support and completely offload the management of the underlying EC2 instances to AWS. As a result, a developer will only have to tend to the containers themselves, and won't need to provision, scale or patch any servers.
Amazon EKS joined several other Kubernetes-based container services already on the market, including Microsoft Azure Kubernetes Service and Google Kubernetes Engine. Plug-ins, scripts and cluster configurations can be moved across these platforms because they all rely on the same orchestration layer.
EKS works with GPU-backed P2 and P3 instances, so it can be used for compute-heavy workloads, too.
AWS charges $0.20 per hour for each Amazon EKS cluster. An enterprise is also responsible for any charges for resources used by the cluster, including compute and storage.