Amazon Elastic Kubernetes Service (EKS) is a cloud-based container orchestration service. It integrates natively with Kubernetes to manage workloads in the AWS cloud.
EKS automatically handles and scales clusters of infrastructure resources via AWS using Kubernetes. Kubernetes is an open-source tool used for container orchestration, which can be challenging for an organization to operate alone. With Amazon EKS, you may leverage the capabilities of Kubernetes on AWS without having to install, manage or operate the container orchestration software.
In this article:
Here are some of the primary features of the Amazon EKS managed Kubernetes service:
When you select the deployment option that is right for your Kubernetes cluster, take the following into consideration.
The standard Amazon EKS managed service supports serverless infrastructure like Fargate and EC2.
Keep in mind:
Learn more about the standard deployment option in our guide to AWS EKS architecture
AWS Outposts supports native AWS infrastructure, services, and operating models in on-site facilities.
This deployment is similar to EKS in Amazon cloud, except that:
This deployment option for Amazon EKS lets you simply operate and create Kubernetes clusters on-site. Both Amazon EKS Anywhere and Amazon EKS are established on the Amazon EKS Distro.
Keep in mind:
Learn more in EKS Anywhere & ECS Anywhere: The New AWS Hybrid and Multicloud Challengers
This is a distribution of the same Kubernetes open-source software and dependencies carried out by Amazon EKS via the cloud. Amazon EKS Distro and Amazon EKS both use the same Kubernetes version release cycle. Amazon EKS Distro is offered as an open-source project.
Keep in mind:
Amazon EKS offers you flexibility to run, scale, and start Kubernetes applications on-site or in the cloud. It offers highly secure and available clusters and automates central tasks, including node provisioning, updates, and patching.
You are charged $0.10 per hour for every Amazon EKS cluster that you develop. You can employ one EKS cluster to launch multiple applications by making use of Kubernetes IAM and namespaces security strategies. To run EKS on AWS, you can use AWS Fargate or Amazon EC2, or run it on-site via AWS Outposts.
If you use Amazon EC2, you will be charged for AWS resources (including EBS volumes or EC2 instances) you use to launch and maintain your Kubernetes worker nodes. You will only be charged for what you use. There are no upfront costs or minimum charges.
If you use AWS Fargate, cost is determined according to the memory resources and vCPU utilized from the moment you begin to download your container image up until the point the Amazon EKS pod ceases, calculated to the closest second. There is a minimum cost of one minute.
Amazon EKS via AWS Outposts has a straightforward pricing model—the Amazon EKS cluster is created via the cloud (and not via Outposts), and you are charged $0.10 per hour. The Kubernetes worker nodes are launched and continue on the capacity offered by Outposts EC2, with no additional costs.
Amazon Elastic Container Service (Amazon ECS) offers fully managed container orchestration. Unlike EKS, ECS is not Kubernetes-specific and provides capabilities that simplify container management.
ECS does not charge extra fees for Amazon Elastic Cloud Compute (EC2) launch types. You pay for the AWS resources you create to run and store your applications - billing is per usage.
EKS also offers a pay per use pricing model. However, the service charges additional fees for certain operations. Each EKS cluster costs $0.20/hour. You can optimize these costs by using one cluster to run several applications.
Integration with IAM
ECS is deeply integrated with AWS identity and access management (IAM), which enables you to control access and permissions. You can assign granular access permissions to each container and use IAM to restrict access to each service. You can also delegate the resources each container is allowed to access.
EKS does not offer deep integration with IAM. However, it does allow you to create IAM roles for service accounts. By associating an IAM role with a certain Kubernetes service account, you allow all containers in any pod that uses that service account to use these permissions. To make API requests to authorized services, applications can use the command-line interface (CLI) or an AWS software development kit (SDK).
Integration with AWS Secrets Manager
ECS integrates with AWS Secrets Manager as well as AWS Systems Manager (SSM) Parameter Store. You can use it to reference parameters in container definitions to access secrets stored in those services.
It is possible to connect EKS and Secrets Manager. However, to effectively manage secrets you must also use third-party solutions like kubernetes-external-secrets or the EKS controller solution.
In the past, ECS ran only on AWS. In May 2021, AWS introduced ECS Anywhere, which enables customers to deploy ECS tasks on their own infrastructure or in third-party environments.
AWS also offers EKS Anywhere, which enables compatibility with third-party infrastructure. Additionally, as a Kubernetes-as-a-Service (KaaS) offering, EKS can be ported to run on any Kubernetes infrastructure. You can also set it up as part of a large, federated cluster architecture.
Both EKS and ECS work with AWS Fargate - a serverless compute engine service that lets you pay only for those resources running your containers. There is no need to choose instances and scale cluster capacity, because the service handles these aspects.
Learn more in our detailed guide to AWS ECS vs EKS
Here is a comparison of the pros and cons of the Kubernetes services offered by the three main cloud providers.
EKS is the most commonly used managed Kubernetes service. However, EKS offers the least amount of pre-configured solutions, and requires more manual configuration than other services. This provides more control over clusters but also requires more time spent on operations.
GKE is ideal for organizations that have a multi-cloud setup or do not have an on-premises facility. GKE provides the most out-of-the-box features and the most automated capabilities.
Learn more in our detailed guide to EKS vs GKE
AKS is offered by Microsoft Azure. The service integrates with other Microsoft Azure services, including Azure Active Directory (AD), and does not charge for use of the Control Plane.
Learn more in our detailed guide to EKS vs AKS
NetApp Cloud Volumes ONTAP, the leading enterprise-grade storage management solution, delivers secure, proven storage management services on AWS, Azure and Google Cloud. Cloud Volumes ONTAP capacity can scale into the petabytes, and it supports various use cases such as file services, databases, DevOps or any other enterprise workload, with a strong set of features including high availability, data protection, storage efficiencies, Kubernetes integration, and more.
In particular, Cloud Volumes ONTAP supports Kubernetes Persistent Volume provisioning and management requirements of containerized workloads.
Learn more about how Cloud Volumes ONTAP helps to address the challenges of containerized applications in these Kubernetes Workloads with Cloud Volumes ONTAP Case Studies.