ECS集群

ECS cluster介绍

ECS集群可以跑在EC2或Fargate。

如果ECS集群跑在EC2上,那么ECS集群可以理解为EC2的集群 ,每个EC2上都跑着ECS Agent(其实就是个docker容器),ECS Agent将实例注册到ECS服务 ,ECS从而可以管理和调度这些EC2:

image-20191007180020867

ECS的EC2使用特定的AMI镜像。

创建集群实践

进行ECS服务,点击Create cluster

image-20220430203026734

为集群命名为ecs1, 选择默认的vpc:

image-20220430203131115

选择部署EC2,EC2实例类型选择c5.large, 最小数量设置为2台,(提前创建好webserver.pem文件,以后面登录到EC2上):

image-20220430203301760

点击创建。

检测ECS集群

进入到上一步创建的ecs页面,我们看到ECS会自动创建ASG,里面的EC2由ASG来管理:

image-20220430203927364

进入到其中一台EC2的页面,ECS为我们的机器自动创建并绑定好了IAM Role:

image-20220430204513946

进入到这个Role,发现绑定了AmazonEC2ContainerServiceforEC2Role这条policy,里面声明了访问ecr、创建log stream、注册ecs实例等权限:

image-20220430204554490


登录到EC2,欢迎界面上输出ECS,说明使用的是ECS定制版的AMI:

image-20220430204835349

访问user-data,发现实例在启动时,将ECS集群信息写到相关的配置文件中:

curl -w '\n' 169.254.169.254/latest/user-data

image-20220430204952938

ECS Agent以docker容器的形式运行,以将EC2注册到ECS中心:

image-20220430205017307

image-20220430205756320

检查CloudFormation

进入CloudFormation页面,发现新建了一个Stack,这个Stack里管理着我们所有的ECS集群资源。当我们创建一个ECS集群时,其实是启动了一个CloudFormation Stack;当我们删除集群时,本质上也是把对应的Stack删除:

image-20220430205419155

目前ECS支持两种UI,旧版本的UI功能更多,比如自定义ECS机器的安全组。本实验使用的是新版本UI