Amazon EKS: A Kubernetes Service in AWS
Amazon Elastic Container Service for Kubernetes (Amazon EKS) was announced during re:Invent 2017 and is now available for production use. Amazon Elastic Container Service for Kubernetes (Amazon EKS) is service designed to ease the deployment, management and measurement of containerized applications using Kubernetes on AWS.
Now the question arises what is Kubernetes and AWS, let’s first understand AWS. AWS stands for Amazon Web Services which is a provider & platform of protected cloud services that offers various facilities such as computing, storage, databases, analytics, networking, mobile, developer tools, management tools, IoT, security, enterprise applications and numerous other functions that help businesses to scale up and grow. AWS is helping its customers to leverage cloud solutions and products in order to build various sophisticated applications and provide scalability, reliability and flexibility to adapt to new version and patch updates.
After understanding the functions of AWS, let’s move on to Kubernetes, which is simply an open-source organizational software designed to deploy and manage cloud workloads through various containerized (a standard way to package an application’s code, configurations, and dependencies into a single object) applications at scale. Anyone using Kubernetes on the AWS Cloud platform will gain flexibility and enhanced security of the entire AWS infrastructure. Not only this, but it also offers powerful container deployment, management and scaling functions of Kubernetes.
Kuberntes groups containers into logical grouping for discoverability and management, once this has been performed, it launches them into clusters. In short, it’s a container management platform which is a hosted form of Kubernetes on Amazon Web Service allowing the user to run containerized applications such as batch processing workers, microservices and platforms as a service (PaaS).
Amazon Elastic Container Service for Kubernetes (Amazon EKS) is a facility that allows the entire Kubernetes management infrastructure to be run across many AWS availability zones (multiple locations) in order to eradicate all points of failure and ensure high levels of availability, without the need of maintaining individual Kubernetes control panels. In addition to this, Amazon EKS is a certified Kubernetes compatible platform that allows the usage of current plugins and tools of Kubernetes partners & community and in turn can be easily migrated Amazon EKS. AWS also works actively with the Kubernetes partners and community, making contributions to the Kubernetes code base quite easy, allowing Amazon EKS consumers to take advantage of numerous facilities and features of Amazon Web Services.
Currently, Amazon EKS is available for all of the customers already using AWS. In addition, it automatically finds unhealthy and harmful zones and replaces them; along with version updates and patching. It is integrated with numerous AWS infrastructure and services that offer secure and scalable functions on applications such as Elastic Load Balancing for distributing the load, Amazon VPC (Virtual Private Cloud) for isolation and IAM (Identity and Access Management) for authentication, authorization, and accounting.
The Amazon EKS has a four step process starting with the provisioning of a EKS cluster where EKS automatically installs and arranges the Kubernetes masters. In the first step, one must build an Amazon EKS cluster in the AWS Management Console. Then it moves to the launcher phase, where the Amazon EKS Cluster registers and adds worker nodes. The Amazon EKS provides an AWS CloudFormation template that is capable of automatically configuring the worker nodes. As soon as the cluster is ready, the configuration of a favorite Kubernetes tools such as kubectl is done, which helps in communication with the cluster. Finally, it runs the Kubernetes applications by deploying the Kubernetes apps to the EKS cluster. In this step, the management and deployment of applications began in the same way as the Amazon EKS cluster would work on any Kubernetes environment.
In short, Amazon Elastic Container Service for Kubernetes (Amazon EKS) is simply a managed infrastructure that creates easiness while running the Kubernetes on AWS infrastructure without any need of installing or even operating Kubernetes clusters. Additionally making the Kubernetes infrastructure an easy and best option for managing, deploying and scaling of containerized applications. It definitely scales the Kubernetes control plane including the API servers & backend persistence layer to detect fault tolerance and errors, also to enhance availability. Amazon EKS is combined with numerous AWS functions in order to deliver scalability and security of applications. Numerous companies have started to adopt the Amazon EKS because of its greater benefits including GoDaddy, Snapchat, Logicworks, Zendesk, Pearson, Honeywell, Ticketmaster and various others.
Following are some use cases of Amazon EKS.
Micro-services: Amazon EKS can easily run micro-services with the integration AWS services with full Kubernetes functionality.
Hybrid Container Deployments: Amazon EKS can maintain full compatible deployments with AWS environment while offering secure and reliable Kubernetes cluster which can run anywhere across multiple zones.
Batch Processing: Kubernetes jobs APIs allows to run either parallel or sequential workloads on Amazon EKS cluster, and these workloads can either be run on Amazon EC2 On-Demand Instances, Spot Instances, or Reserved Instances.
Application Migration: Kubernetes app can be migrated to Amazon EKS without any modification in the code.
Want to get started with Amazon EKS – To learn and getting step by step process of Amazon EKS, please follow this link.
Amazon will charge $0.20 per hour for using for each Amazon EKS cluster that will be created. Single Amazon EKS cluster can be used to run multiple apps by taking advantage of IAM role-based policies and Kubernetes namespaces.
Note: AWS will charge you for using AWS resources (EC2 instances, EBS volumes) that you will create to run your Kubernetes worker nodes. There are no upfront commitments and no minimum fee for EKS, you will have to pay for what you use.