What Is Amazon EKS | Rafay

What is Amazon EKS?

September 26, 2021

Kubernetes has proved an invaluable containerization tool since its inception. It increases application portability, enhances multi-cloud capability, and boosts developer productivity. The best part is that it is open-source. However, selecting the best public cloud to deploy Kubernetes is a head-scratching moment for many developers. To make an ultimate selection, developers must also factor network, storage, user, logging features and Kubernetes ecosystem integrations for their specific use cases -- oh, and don’t forget that cost matters too. The majority (nearly two-thirds) of cloud app developers today work on the Amazon Web Service (AWS) cloud. For this reason, Amazon has launched a managed Kubernetes service to help its dedicated user community build better apps more seamlessly.

What’s Amazon Elastic Kubernetes Service?

The Amazon Elastic Kubernetes Service (EKS) is a managed service designed to make running Kubernetes on Amazon Web Service (AWS) easier. It’s a managed container-as-a-service (CaaS) tool that drastically simplifies Kubernetes deployment on AWS. Unlike in the past when you needed to install a Kubernetes control plane or work nodes, EKS allows developers to run Kubernetes on the AWS platform without further integrations. If you’re new to it, Kubernetes is currently the most popular containerization management solution. It provides an abstraction layer on top of a group of hosts, allowing developers to manage multiple functions, including load balancing, monitoring, and resource utilization. The Amazon Elastic Kubernetes Service makes it possible to enjoy all the benefits of Kubernetes without the need to install it.

Key Amazon EKS Features

Amazon EKS allows developers to combine the best features of Kubernetes to help manage application operations with the reliability, availability, and performance of AWS to develop better applications all around. This powerful combination provides developers and organizations with:

#1 - A managed control plane

Amazon EKS brings developers a flexible and highly scalable control plane operated on AWS AZs. It automatically manages the availability and scalability of Kubernetes API services, providing developers with high reliability that involves automatically identifying and replacing unhealthy masters.

#2 - Managed worker nodes

Developers can also look forward to a platform that allows them to create, update, and terminate worker nodes in a single command. EKS nodes are operated in node groups through Amazon Machine Images (AMIs) in AWS. Moreover, EKS nodes can be drained by terminations and updates.

Network and Security features

The Amazon Elastic Kubernetes Service also includes multiple network and security features to make your work easier. These include:

#3 - Service discovery

AWS has a unique discovery service known as Cloud Map, with which organizations and developers can define names for app resources. The resource also maintains updated locations for dynamic resources. As such, Cloud Map significantly increases the organization’s ability to discover updated resource locations. Besides the Cloud Map, EKS also comes with an open-source connector to automatically propagate internal service registry locations. Meanwhile, Kubernetes services continue to launch and remove such locations upon termination.

#4 - VPC support

Kubernetes clusters run within Amazon VPC. Consequently, you can utilize VPC security groups and network ACLs – without sharing computing resources with other orgs. For organizations that depend on isolation to deliver reliable and secure apps, this feature alone would be an important reason to switch to EKS.

#5 - Service mesh

Amazon EKS, through the AWS App Mesh, standardizes the way each in-app microservice communicates, thus making it easy to build and run complex applications. The mesh specifically simplifies the configuration of selected sections of applications, ensuring high availability.

How to Get Started with EKS

If you’re excited about the new capabilities, you should consider setting up EKS for your development team. Fortunately, the setup process is pretty straightforward if you already have AWS. You may even have some of the necessary components set up.

#1 - Check the prerequisites

Before you can install EKS on your AWS, you need to ensure that you have installed three critical components:

As we mentioned earlier, you may have one of these tools running if you already use Amazon Web Services.

#2 - Create the IAM role

This is a straightforward process:

We recommend creating a unique and descriptive name for your role. Otherwise, the arising confusion from similar role names may complicate your work.

#3 - Create a virtual private cloud

This time head to AWS CloudFormation console and, once there, proceed as follows:

Wait for the process to complete, then click on the Outputs tab to review your Subnetlds, VPcld, and SecurityGroups.

#4 - Create your EKS Cluster

To create your Amazon EKS cluster, you need to start at the EKS console. Open the console and proceed as follows:

After the said duration, the cluster’s status will change to active, meaning you now have a cluster!

#5 - Update your Cluster’s Kubeconfig

It’s very important to update Kubeconfig for the EKS cluster before expiry for continued cluster access. Use the AWS ACL’s updating update-kubeconfig command for this process and ensure to change both the cluster name and region.

The test should return your cluster details, including name, type, cluster IP, external IP, ports(s), and age.

#6 - Launch your Node Group

The final step before you can begin using your EKS is to launch your node group. In the Amazon EKS console:

That’s it. You’ve set up Amazon EKS. From this point, you just need to add Kubernetes addons and deploy your applications.

Amazon EKS Pricing

Amazon charges $0.10 per hour for each Amazon EKS cluster created. Keep in mind that you can run Amazon EKS on multiple applications or with EC2 or Fargate.

Summary

That’s all the basics you need to know about Amazon’s Elastic Kubernetes Service. If you run into any issues, check out this great troubleshooting guide from AWS.