View All Chapters
CHAPTER
5
|
Deploying to Cloud Providers

Amazon Elastic Container Service (Amazon EKS)

Introduction to Kubernetes
Chapter
5
|
Deploying to Cloud Providers
Download the eBook

Amazon Elastic Container Service (Amazon EKS)

Although Amazon EKS was the latest service to become GA on the market, according to a CNCF Survey in 2017, 63 percent of companies utilizing Kubernetes were already self-hosting Kubernetes on AWS. This high figure means that the barrier to adoption should be low for those existing Kubernetes users. Amazon EKS also accelerates the adoption process for those who were not running self-hosted Kubernetes.  

The main advantage and potential disadvantage of Amazon EKS (and AWS more generally) is the sheer volume of AWS products. If you or your company is already using other AWS services—e.g. RedShift, Shield, Cloud Watch, or IoT products like Greengrass—integrating with Amazon EKS is a huge plus.

Amazon EKS also provides high-availability (HA) modes as well as the highest number of Availability Zones. However, because AWS had previously focused on its non-Kubernetes version of container orchestration service, Amazon Elastic Container Service (ECS) and Fargate, the community support and involvement is neither as large nor as focused as it is with the other cloud offerings. If you were already using ECS, the incentive to switch to Amazon EKS may be small, unless you are exploring hybrid cloud solutions.

Image Credit: CNCF Survey

Amazon Elastic Container Service for Kubernetes (Amazon EKS) is not as intuitive as Azure Kubernetes Service (AKS) or Google Kubernetes Engine (GKE) for beginners. Instead of using a click-and-deploy model, Amazon EKS requires a more custom setup. Namely, IAM role setup must be done outside the Amazon EKS initial setup, as well as needing kubectl or CloudFormation setup to add worker nodes to the master node instead of specifying this by default. All of this may be fine for experienced Kubernetes or AWS users, but for a beginner looking to deploy a managed Kubernetes solution, the setup time is significantly higher than AKS or GKE.

Lastly, AWS charges for master node usage. It charges $0.20/hr for the master node plus usage for worker nodes for the cluster. Pricing is always tricky to compare across cloud providers since billing is counted slightly differently (not to mention heavily discounted enterprise deals), but at face-value, Amazon EKS is significantly more expensive than AKS or GKE since master node usage is not covered by the service.

Summary:

  • Pros: Integration with other AWS tools, high number of Availability Zones, and easy to migrate or integrate if you’re already using AWS container options
  • Cons: Expensive, steep learning curve and long setup time, and relatively new so lacking certain Kubernetes-specific features