【发布时间】:2022-05-02 23:23:57
【问题描述】:
我创建了一个自定义 AMI,其中预装了某些软件和脚本。
- 我可以将此 AMI 用于 ECS 集群吗?
- 我没有看到任何选项 在创建集群时添加 AMI
【问题讨论】:
-
此外,如何通过 aws-cli 和/或 ecs-cli 使用您的自定义 AMI 创建此集群和/或 EC2 实例?
标签: amazon amazon-ami aws-ecs
我创建了一个自定义 AMI,其中预装了某些软件和脚本。
【问题讨论】:
标签: amazon amazon-ami aws-ecs
是的,你可以。您需要确保 EC2 实例正在运行 ECS 代理。
要将 EC2 实例(使用任何 AMI)附加到 ECS 集群,我们只需将相应的集群名称传递给 ECS_CLUSTER 变量。
参考:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html
【讨论】:
要使您的实例在集群上可用,您必须创建默认集群。
如果您有自定义的 ecs 集群,您可以使用 userdata 部分设置集群名称。
ecs 代理需要 /etc/ecs/ecs.config 中可用的 ecs.config 文件中的集群名称。
您可以在实例启动时使用 userdata 脚本进行设置
#!/bin/bash
echo ECS_CLUSTER={cluster_name} >> /etc/ecs/ecs.config
该实例应具有 IAM 角色 ecsinstance
【讨论】:
是的,你可以。你需要做的是:
创建一个空集群(会有一个复选框供您选择)
使用您选择的 AMI 创建 Ec2,但您需要确保: 一个。您在 Ec2 上有可用的 ecs-agent 湾。在 ecs.config 文件中添加键值对,即 ECS_CLUSTER=
一旦完成,容器实例 (ec2) 将在 ECS 集群上显示为“容器实例”
【讨论】:
对于有这些困难的任何人,create the role and the profile 并将其附加到您的汽车组的启动模板中的实例作为先前的答案评论。
但是,对于 ECS_CLUSTER 部分,我使用的不是为 ECS 准备的 AMI,即深度学习 AMI。这个 AMI 既没有 YUM,所以我用 get-apt 安装了东西。在启动模板中,将这些行添加到用户数据框:
#!/bin/bash
cd ~
curl -O https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.amd64.deb
sudo dpkg -i amazon-ecs-init-latest.amd64.deb
sudo mkdir /etc/ecs/
sudo echo ECS_CLUSTER=YOURCLUSTER >> /etc/ecs/ecs.config
sudo systemctl start ecs
将 YOURCLUSTER 更改为您的集群名称,对于 curl,选择您区域中的那个(检查 Installing the Amazon ECS container agent on a non-Amazon Linux EC2 instance)
【讨论】: