如何使EC2实例连接到ECS群集?

发布时间:2020-07-06 20:11

我有一个在AWS中定义的ECS集群和一个Auto Scaling组,用于添加/删除实例以根据需要处理任务。我具有ASG设置,因此可以在适当的时间创建EC2实例,但是除非手动进入并禁用/启用ECS服务,否则它将无法连接到ECS群集。

我在EC2机器上使用Amazon Linux 2 ami,并且所有内容都在同一地区/帐户中,等等。 我已在下面添加了我的用户数据。

#!/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服务并正确设置配置文件,但是启用实际上并没有连接计算机,但是一旦运行连接,在计算机上运行相同的禁用/启用命令就不会出现问题。我想念什么?

回答1

第一件事,正确的语法是

#!/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
回答2

我最终用古老的格言解决了这个问题,关掉它再打开。

例如我在用户数据脚本的底部添加了 shutdown -r 0 以在“配置”并立即连接后重新启动机器。