AWS learning

♦️Amazon Elastic Container Service

♦️Amazon Elastic Kubernetes Service

♦️AWS Fargate – A Compute Engine For ECS

🌟Amazon Elastic Container Service

AMAZON EC2 CONTAINER SERVICE (ECS)

• Amazon EC2 Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster of Amazon EC2 instances.

• Amazon ECS uses Docker images in task definitions to launch containers on EC2 instances in our clusters.

• Docker is a technology that allows us to build, run, test, and deploy distributed applications that are based on Linux containers.

ECS is basically a set of APIs that turn EC2 instances into compute cluster for container management:

  1. EC2 instances must call Register Container Instance API to signal that they are ready to run containers.

  2. Need to call Register Task Definition API to define the tasks (setting an image, command and memory for docker run etc.)

  3. We use Run Task API to start a new task.

  4. Lastly, we make a Create Service API call to run a long-running container.

• We can start using Amazon EC2 Container Service (Amazon ECS) by creating a task definition, scheduling tasks, and configuring a cluster in the Amazon ECS console. Note that we do not need any orchestration tools such as Mesos, Kubernetes or Docker Swarm.

🌟Amazon Elastic Kubernetes Service

AWS : EKS (ELASTIC CONTAINER SERVICE FOR KUBERNETES)

• Amazon Elastic Container Service for Kubernetes (Amazon EKS) is a fully managed service that makes it easy for you to use Kubernetes on AWS without having to be an expert in managing Kubernetes clusters.

• There are few things that we think developers will really like about this service.

• First, Amazon EKS runs the upstream version of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community.

• Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data Centre's or public clouds. This means that you can easily migrate your Kubernetes application to Amazon EKS with zero code changes. Second, 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 Availability Zone.

• Third, Amazon EKS also automatically detects and replaces unhealthy masters, and it provides automated version upgrades and patching for the masters.

• Last, Amazon EKS is integrated with a number of key AWS features such as Elastic Load Balancing for load distribution, IAM for authentication, Amazon VPC for isolation, AWS Private Link for private network access, and AWS CloudTrail for logging.

🌟AWS Fargate – A Compute Engine For ECS

• AWS Fargate is a compute engine for Amazon Elastic Container Service(ECS) that allows you to run containers without having to provision, configure & scale clusters of VMs that host container applications.

• AWS Fargate eliminates the need for users to manage the EC2 instances on their own.

• In fact, users don’t need to use EC2 instances at all.

• Fargate itself will act as compute engine.

• It lets you focus on elements like designing and constructing your application instead of managing the infrastructure that runs them.

• With Fargate launch type, all you need to do is package your application in containers, specify the memory and CPU requirements, define IAM policies & launch your application.

• AWS Fargate also makes it easy to scale your applications.

• Once you define all your application requirements, AWS Fargate manages all the scaling and infrastructure needed to run your containers in a highly-available manner. • It seamlessly integrates with Amazon ECS & EKS, launches and manages your containers for you.