So let's talk about the other way
to run containers onto AWS, and this is using Amazon EKS.
So Amazon EKS stands for Amazon Elastic Kubernetes Service.
So it is a way, as the name indicates,
to launch and manage Kubernetes cluster onto AWS.
So what is Kubernetes?
Well, this is the blue logo
you see in the top right corner of the screen.
Kubernetes is an open-source system
for automatic deployments, scaling and management
of containerized, usually Docker, applications.
So it is an alternative to ECS, which has a similar goal
which is to run your containers, but a very different API.
The idea is that ECS is definitely not open-source.
Whereas Kubernetes is open-source
and used by many different cloud providers
which gives you some sort of standardization.
So EKS supports two launch modes,
again the EC2 launch mode if you want to deploy
worker mode like EC2 instances,
or the Fargate mode if you wanted to deploy
serverless containers in an EKS cluster.
So the use case for using EKS is that your company
is already using Kubernetes on-premises,
or already using Kubernetes in another cloud,
or they just want use the Kubernetes API,
and they want to use AWS to manage the Kubernetes cluster,
then they would use Amazon EKS.
So again, Kubernetes from an exam perspective,
is cloud agnostic, it can be used into any cloud
such as Azure, Google Cloud and so on.
And so that means that if you are trying to migrate
between clouds or your containers,
using Amazon EKS may be a much more simple solution.
So in terms of diagram, this is what it looks like.
So we have a VPC, 3 AZ separated
into public subnets and private subnets.
And so you would create EKS Worker Nodes
they would be EC2 instances for example,
and each of these nodes will be running EKS Pods.
So they're very similar to ECS tasks,
but from a naming perspective,
anytime you see pods, it relates to Amazon Kubernetes, okay?
So we have EKS Pods and they're running onto EKS Nodes,
and so these nodes can be managed by an Auto Scaling group.
Now, very similarly to ECS,
if you wanted to expose EKS Service and Kubernetes Service,
we could set up a private load balancer,
or a public load balancer to talk to the web.
So let's summarize the different node types
that exist for Amazon EKS.
So you have the Manage Node Groups,
and this is AWS that will create and manage Nodes,
so EC2 instances for you.
And these nodes are part of an Auto Scaling group,
managed by the EKS service itself.
And you have support for On-Demand and Spot Instances.
You can also choose if you wanted to,
to self-manage nodes, this is if you want to have
more customizations and more control.
So in that case you need to create the nodes yourself,
and then you need to register them to an EKS cluster,
and then you manage your own nodes as part of an ASG.
You can still use the pre-built Amazon EKS Optimized AMI
for this, which saves you a bit of time,
or you can build your own AMI, which is more complicated.
This supports as well, the On-Demand and the Spot Instances.
And finally, if you don't wanna see any nodes at all,
then Amazon EKS, as I told you, supports the Fargate mode
in which there is no maintenance required,
and no nodes are managed at all you can just run containers
on top of Amazon EKS.
Now you can attach data volumes to your Amazon EKS cluster.
For this, you need to specify a StorageClass manifest
on your EKS cluster, and this leverages something called
the Container Storage Interface, CSI compliant driver.
So keywords to look out for at the exam.
And you have support for Amazon EBS,
you have support for Amazon EFS, and this is the only type
of storage class that works with Fargate.
You have Amazon FSx for Lustre
and Amazon FSx for NetApp ONTAP.
So that's it for Amazon EKS.
I hope you liked it and I will see you in the next lecture.