Amazon announces two new container capabilities at re:Invent 2017 – Amazon Elastic Container Service for Kubernetes (Amazon EKS) & Amazon Fargate. The two new services are an addition to Amazon’s existing popular Elastic Container Service. With Docker supporting Kubernetes as the primary clustering tool for containers, Kubernetes adoption is bound to increase over time. Kubernetes support for Amazon containers simplifies the process of running them on cloud much further.
Running containers on cloud includes:
- Building containers and remote storing (ECS)
- Running containers on servers and load balancing them (ECS & EKS)
- Maintaining and provisioning clusters (Fargate)
Amazon EKS – Run Kubernetes on Amazon like a pro
Amazon Elastic Container Service for Kubernetes (Amazon EKS) is a fully managed service that makes it easy for you to use Kubernetes on AWS. And here’s why you should get excited – You don’t have to be an expert in managing Kubernetes clusters! EKS supports the latest upstream version of Kubernetes, and thus enables developers to leverage the latest features and plugins from Kubernetes. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment. It doesn’t matter if the applications are running in on-premises data centers or public clouds. With such compatibility, you can easily migrate your Kubernetes application to Amazon EKS with zero code changes. Amazon EKS automatically runs K8s with three masters across three AZs to protect against a single point of failure. This multi-AZ architecture delivers resiliency against the loss of an AWS AZ. Along with this, it detects failures automatically and replaces them with healthy ones. What to know how it gets better? EKS also integrates seamlessly with other EC2 features like load balancing and VPC.
Now let’s talk a little about what problems you may be facing without EKS. According to the Cloud Native Computing Foundation, 63% of Kubernetes workloads run on AWS. While AWS is a popular place to run Kubernetes, there’s still a lot of manual configuration that needs to be done, in order to manage Kubernetes clusters. You have to install and operate the Kubernetes master and configure a cluster of Kubernetes workers. That’s not all. In order to achieve high availability in Kubernetes clusters, you also have to run at least three Kubernetes masters across different AZs. Each master needs to be configured to talk to other masters, as well as configured to reliably share information, load balance, and failover to other masters if one experiences a failure. When everything is set up and running, you still have to deal with upgrades and patches of the masters and workers software. This all requires a good deal of operational expertise and effort. EKS solves all these problems by enabling you to run Kubernetes effortlessly.
Benefits of EKS :
- Managing Kubernetes clusters is no longer your job: Amazon EKS eliminates the need to install, manage, and scale your own Kubernetes clusters: Kubernetes is composed of two components: WORKERS and MASTERS. Workers are the servers on which containers run. Masters control the cluster of workers and schedules, and place these containers on specific servers. Amazon EKS makes it easy to run highly available Kubernetes clusters by automatically running and managing three Kubernetes masters distributed across three Availability Zones (AZ) for each cluster. The multi-AZ architecture managed by Amazon EKS delivers resiliency against the loss of an AZ. Amazon EKS also automatically detects and replaces unhealthy masters. It also provides automated version upgrades and patching for masters.
- Plug away: You can use the plugins that are available on Kubernetes to use EKS.
- Security concerns will no longer make you lose your sleep: Amazon EKS integrates IAM with Kubernetes, enabling you to register IAM entities with the native authentication system in Kubernetes. There is no need to manually set up credentials for authenticating Kubernetes masters. This allows you to use IAM to directly authenticate with the master itself, as well as granularly control access to the public endpoint of your Kubernetes masters. You can also use PrivateLink to access Kubernetes masters directly from your own Amazon VPC. With PrivateLink, your Kubernetes masters and the Amazon EKS service endpoint appear as an elastic network interface with private IP addresses in your Amazon VPC. This allows you to access the Kubernetes masters and the Amazon EKS service directly from within your own Amazon VPC, without using public IP addresses, or requiring the traffic to traverse the internet.
Amazon Fargate : Simply run containers.Don’t manage servers of clusters.
AWS Fargate allows you to run containers on Amazon ECS and EKS (in preview), without having to manage servers or clusters. With Fargate, you don’t have to provision, configure or scale out clusters of virtual machines to run containers. It lets you easily build and deploy containers by removing the overhead of managing them. You no longer need to choose server types, decide when to scale clusters, and optimize cluster packing.
AWS Fargate supports two modes,
- Standalone Fargate launch : Manages the containers running standalone, such as Elastic beanstalk for EC2.
- EC2 Launch type : Manages the containers running on EC2 and EKS. This provides the flexibility of machine metrics, places the containers in machines, and tracks CPU & memory. It also provides better control of the standalone fargate launch.
Benefits of Fargate:
- Days of managing container clusters are over: Fargate eliminates the overhead of managing the container clusters. You only need to build a container, choose an orchestrator and launch it.
- Moving EC2 containers has never been easier: With Kubernetes service EKS, you can easily move your on-premise or containers running on EC2, in order to take out the overhead of managing them.
- Scale your clusters whenever you want: Easily scale out applications as the provision overhead is taken out after defining the application requirements. Fargate manages all the scaling and infrastructure needs to run containers in a highly-available manner. You no longer have to decide when to scale your clusters or pack them for optimal utilization.
All in all, EKS and Fargate together make it a lot more easier than before to deploy, manage, and scale container workloads on AWS. There might be more additions to these features.