如何让我的 EC2 实例连接到 ECS 集群?
How do I get my EC2 Instance to connect to ECS Cluster?
我有一个在 AWS 中定义的 ECS 集群和一个用于 add/remove 实例以根据需要处理任务的 Auto Scaling 组。我有 ASG 设置,以便它在适当的时间创建 EC2 实例,但它不会连接到 ECS 集群,除非我手动进入并 disable/enable ECS 服务。
我在 EC2 机器上使用 Amazon Linux 2 ami,一切都在同一个 region/account 等等。
我在下面包含了我的用户数据。
#!/bin/bash
yum update -y
amazon-linux-extras disable docker
amazon-linux-extras install -y ecs
echo "ECS_CLUSTER={CLUSTERNAME}" >> /etc/ecs/ecs.config
systemctl enable --now ecs
如前所述,这会安装 ECS 服务并正确设置配置文件,但启用实际上并未连接机器,但 运行 在机器上执行相同的 disable/enable 命令一次 运行 连接没有问题。我错过了什么?
首先,正确的语法是
#!/usr/bin/env bash
echo "ECS_CLUSTER=CLUSTER_NAMe" >> /etc/ecs/ecs.config
更新配置后更好地重新启动 ECS 代理。
#!/usr/bin/env bash
echo "ECS_CLUSTER=CLUSTER_NAME" >> /etc/ecs/ecs.config
sudo yum update -y ecs-init
#this will update ECS agent, better when using custom AMI
/usr/bin/docker pull amazon/amazon-ecs-agent:latest
#Restart docker and ECS agent
sudo service docker restart
sudo start ecs
我最终用那句老话解决了这个问题,把它关掉再打开。
例如我在用户数据脚本的底部添加了 shutdown -r 0
以在“配置”后重新启动机器并立即连接。
我有一个在 AWS 中定义的 ECS 集群和一个用于 add/remove 实例以根据需要处理任务的 Auto Scaling 组。我有 ASG 设置,以便它在适当的时间创建 EC2 实例,但它不会连接到 ECS 集群,除非我手动进入并 disable/enable ECS 服务。
我在 EC2 机器上使用 Amazon Linux 2 ami,一切都在同一个 region/account 等等。 我在下面包含了我的用户数据。
#!/bin/bash
yum update -y
amazon-linux-extras disable docker
amazon-linux-extras install -y ecs
echo "ECS_CLUSTER={CLUSTERNAME}" >> /etc/ecs/ecs.config
systemctl enable --now ecs
如前所述,这会安装 ECS 服务并正确设置配置文件,但启用实际上并未连接机器,但 运行 在机器上执行相同的 disable/enable 命令一次 运行 连接没有问题。我错过了什么?
首先,正确的语法是
#!/usr/bin/env bash
echo "ECS_CLUSTER=CLUSTER_NAMe" >> /etc/ecs/ecs.config
更新配置后更好地重新启动 ECS 代理。
#!/usr/bin/env bash
echo "ECS_CLUSTER=CLUSTER_NAME" >> /etc/ecs/ecs.config
sudo yum update -y ecs-init
#this will update ECS agent, better when using custom AMI
/usr/bin/docker pull amazon/amazon-ecs-agent:latest
#Restart docker and ECS agent
sudo service docker restart
sudo start ecs
我最终用那句老话解决了这个问题,把它关掉再打开。
例如我在用户数据脚本的底部添加了 shutdown -r 0
以在“配置”后重新启动机器并立即连接。