Amazon EKS Is Out! Is It Right for You?

In this article, I’ll explore what EKS and If it is right for you as an organisation and explore a few options that may be a good fit.

Before I dive into what EKS is, let’s take a step back and understand what Kubernetes is.

Kubernetes is an open-source system for managing containerized applications at scale. It is inspired by Google’s container orchestration system Borg, which is used to host almost all of the Google applications that you use on a daily basis. Like Borg, Kubernetes is designed for massive scalability with large companies using over 2,000 Kubernetes nodes to manage tens of thousands of containers per day! With that out of the way, lets dig into EKS.

Amazon’s Elastic Kubernetes Service (EKS) is a managed Containers-as-a-Service offering that significantly simplifies the deployment of Kubernetes on AWS. With EKS, you simply create your own Kubernetes workers through the EKS Wizard. Creating the Kubernetes master cluster and configuring networking, service discovery and other Kubernetes primitives is done for you.

EKS is meant to be a turnkey drop in for custom Kubernetes clusters. Most existing tooling works with EKS with little to no modifications. What’s more, HashiCorp just released a Terraform resource to make creating and managing EKS clusters even simpler.

We’re already running our own Kubernetes cluster, should we ditch it?

If your organisation has invested a lot of time and DevOps resources in developing your own on-premise or cloud hosted Kubernetes cluster which gives you the advantage of configuring your own Kubernetes masters as you wish in addition to deploying the latest version of Kubernetes (EKS supports Kubernetes 1.10.3 and above) then it makes little sense to move to EKS.

We’re just getting started with Kubernetes, should we rely solely on EKS?

Organisations just getting started with Kubernetes will likely see faster uplift by using EKS to manage their first Kubernetes clusters, pushing its limits to see how adaptable the service is for their use cases and provisioning their own clusters when those limits are reached.

EKS still requires creating and managing additional EC2 instances, but this may be worth it when you consider the vast library of Kubernetes-specific tooling, automation and support communities it inherits.

EKS costs $0.20/hour to run, and does not include the cost of the worker nodes themselves which Kubernetes best practice recommends using an EC2 instance size of t2.large or greater.

We just want to run container workloads, what else is out there?

Organisations that are not at all interested in maintaining their own container infrastructure can gain great agility by using another of AWS’s turn key self-service container orchestration solution; ECS Fargate.

ECS Fargate is completely standalone and requires no additional infrastructure to be provisioned by you. Developers simply create their task definitions, specify that they want to use Fargate, create the Fargate clusters with Terraform or other similar tools and deploy container workloads with no underlying infrastructure to build, manage or even think about.

ECS Fargate costs a flat rate of $0.0506/hour/vCPU and $0.0127/hour/memory consumed.

Conclusion

EKS is a thrilling new service offering by AWS that aims to make running containerised workloads in Kubernetes easy, quick and relatively cost-conscious. While you still bring some of your own infrastructure to make it work, the hardest parts of managing a Kubernetes cluster on AWS are managed for you without sacrificing its power and flexibility.

At AltoStack, our mission is to help organisations accelerate their time to value from the cloud by designing, building, and optimising their infrastructures in the public cloud.

We are a team of DevOps fanatics and a core part of our work is helping organisations leverage the cloud to increase the speed and success of cultural transformation.