1 00:00:00,300 --> 00:00:01,710 So let's talk about the other way 2 00:00:01,710 --> 00:00:06,060 to run containers onto AWS, and this is using Amazon EKS. 3 00:00:06,060 --> 00:00:10,950 So Amazon EKS stands for Amazon Elastic Kubernetes Service. 4 00:00:10,950 --> 00:00:13,290 So it is a way, as the name indicates, 5 00:00:13,290 --> 00:00:17,550 to launch and manage Kubernetes cluster onto AWS. 6 00:00:17,550 --> 00:00:18,630 So what is Kubernetes? 7 00:00:18,630 --> 00:00:19,530 Well, this is the blue logo 8 00:00:19,530 --> 00:00:21,390 you see in the top right corner of the screen. 9 00:00:21,390 --> 00:00:23,760 Kubernetes is an open-source system 10 00:00:23,760 --> 00:00:26,670 for automatic deployments, scaling and management 11 00:00:26,670 --> 00:00:29,580 of containerized, usually Docker, applications. 12 00:00:29,580 --> 00:00:32,820 So it is an alternative to ECS, which has a similar goal 13 00:00:32,820 --> 00:00:36,657 which is to run your containers, but a very different API. 14 00:00:36,657 --> 00:00:40,110 The idea is that ECS is definitely not open-source. 15 00:00:40,110 --> 00:00:41,820 Whereas Kubernetes is open-source 16 00:00:41,820 --> 00:00:45,060 and used by many different cloud providers 17 00:00:45,060 --> 00:00:47,400 which gives you some sort of standardization. 18 00:00:47,400 --> 00:00:50,400 So EKS supports two launch modes, 19 00:00:50,400 --> 00:00:53,040 again the EC2 launch mode if you want to deploy 20 00:00:53,040 --> 00:00:55,770 worker mode like EC2 instances, 21 00:00:55,770 --> 00:00:57,840 or the Fargate mode if you wanted to deploy 22 00:00:57,840 --> 00:01:00,810 serverless containers in an EKS cluster. 23 00:01:00,810 --> 00:01:03,780 So the use case for using EKS is that your company 24 00:01:03,780 --> 00:01:06,060 is already using Kubernetes on-premises, 25 00:01:06,060 --> 00:01:08,400 or already using Kubernetes in another cloud, 26 00:01:08,400 --> 00:01:10,920 or they just want use the Kubernetes API, 27 00:01:10,920 --> 00:01:13,800 and they want to use AWS to manage the Kubernetes cluster, 28 00:01:13,800 --> 00:01:16,380 then they would use Amazon EKS. 29 00:01:16,380 --> 00:01:19,260 So again, Kubernetes from an exam perspective, 30 00:01:19,260 --> 00:01:21,960 is cloud agnostic, it can be used into any cloud 31 00:01:21,960 --> 00:01:24,420 such as Azure, Google Cloud and so on. 32 00:01:24,420 --> 00:01:26,400 And so that means that if you are trying to migrate 33 00:01:26,400 --> 00:01:28,530 between clouds or your containers, 34 00:01:28,530 --> 00:01:32,250 using Amazon EKS may be a much more simple solution. 35 00:01:32,250 --> 00:01:34,410 So in terms of diagram, this is what it looks like. 36 00:01:34,410 --> 00:01:37,110 So we have a VPC, 3 AZ separated 37 00:01:37,110 --> 00:01:39,150 into public subnets and private subnets. 38 00:01:39,150 --> 00:01:41,850 And so you would create EKS Worker Nodes 39 00:01:41,850 --> 00:01:44,220 they would be EC2 instances for example, 40 00:01:44,220 --> 00:01:47,940 and each of these nodes will be running EKS Pods. 41 00:01:47,940 --> 00:01:50,250 So they're very similar to ECS tasks, 42 00:01:50,250 --> 00:01:52,140 but from a naming perspective, 43 00:01:52,140 --> 00:01:56,820 anytime you see pods, it relates to Amazon Kubernetes, okay? 44 00:01:56,820 --> 00:02:01,050 So we have EKS Pods and they're running onto EKS Nodes, 45 00:02:01,050 --> 00:02:04,050 and so these nodes can be managed by an Auto Scaling group. 46 00:02:04,050 --> 00:02:06,600 Now, very similarly to ECS, 47 00:02:06,600 --> 00:02:10,919 if you wanted to expose EKS Service and Kubernetes Service, 48 00:02:10,919 --> 00:02:13,980 we could set up a private load balancer, 49 00:02:13,980 --> 00:02:17,700 or a public load balancer to talk to the web. 50 00:02:17,700 --> 00:02:19,650 So let's summarize the different node types 51 00:02:19,650 --> 00:02:21,660 that exist for Amazon EKS. 52 00:02:21,660 --> 00:02:23,700 So you have the Manage Node Groups, 53 00:02:23,700 --> 00:02:26,940 and this is AWS that will create and manage Nodes, 54 00:02:26,940 --> 00:02:29,520 so EC2 instances for you. 55 00:02:29,520 --> 00:02:31,860 And these nodes are part of an Auto Scaling group, 56 00:02:31,860 --> 00:02:34,320 managed by the EKS service itself. 57 00:02:34,320 --> 00:02:38,190 And you have support for On-Demand and Spot Instances. 58 00:02:38,190 --> 00:02:39,630 You can also choose if you wanted to, 59 00:02:39,630 --> 00:02:42,180 to self-manage nodes, this is if you want to have 60 00:02:42,180 --> 00:02:44,190 more customizations and more control. 61 00:02:44,190 --> 00:02:46,740 So in that case you need to create the nodes yourself, 62 00:02:46,740 --> 00:02:49,950 and then you need to register them to an EKS cluster, 63 00:02:49,950 --> 00:02:53,010 and then you manage your own nodes as part of an ASG. 64 00:02:53,010 --> 00:02:57,000 You can still use the pre-built Amazon EKS Optimized AMI 65 00:02:57,000 --> 00:02:58,770 for this, which saves you a bit of time, 66 00:02:58,770 --> 00:03:02,130 or you can build your own AMI, which is more complicated. 67 00:03:02,130 --> 00:03:06,270 This supports as well, the On-Demand and the Spot Instances. 68 00:03:06,270 --> 00:03:08,910 And finally, if you don't wanna see any nodes at all, 69 00:03:08,910 --> 00:03:12,630 then Amazon EKS, as I told you, supports the Fargate mode 70 00:03:12,630 --> 00:03:14,700 in which there is no maintenance required, 71 00:03:14,700 --> 00:03:18,330 and no nodes are managed at all you can just run containers 72 00:03:18,330 --> 00:03:20,760 on top of Amazon EKS. 73 00:03:20,760 --> 00:03:24,390 Now you can attach data volumes to your Amazon EKS cluster. 74 00:03:24,390 --> 00:03:27,990 For this, you need to specify a StorageClass manifest 75 00:03:27,990 --> 00:03:30,840 on your EKS cluster, and this leverages something called 76 00:03:30,840 --> 00:03:35,220 the Container Storage Interface, CSI compliant driver. 77 00:03:35,220 --> 00:03:38,070 So keywords to look out for at the exam. 78 00:03:38,070 --> 00:03:40,620 And you have support for Amazon EBS, 79 00:03:40,620 --> 00:03:43,590 you have support for Amazon EFS, and this is the only type 80 00:03:43,590 --> 00:03:47,640 of storage class that works with Fargate. 81 00:03:47,640 --> 00:03:49,710 You have Amazon FSx for Lustre 82 00:03:49,710 --> 00:03:53,070 and Amazon FSx for NetApp ONTAP. 83 00:03:53,070 --> 00:03:55,050 So that's it for Amazon EKS. 84 00:03:55,050 --> 00:03:58,000 I hope you liked it and I will see you in the next lecture.