在ECS的所有教程中,您需要创建一个群集,然后创建一个自动缩放组,它将生成实例。不知何故,在所有这些教程中,实例神奇地出现在集群中,但没有人提示连接自动缩放组和集群是什么。
我的自动缩放组会按预期生成实例,但它们不会出现在我的ecs集群上,后者持有我的docker定义。
我错过的连接在哪里?
答案 0 :(得分:23)
我一直在努力解决这个问题。获取与ECS群集关联的自动缩放组中的实例的关键在于用户数据。当您进入步骤3"配置详细信息"点击高级选项卡,然后为您的用户数据输入一个简单的bash脚本,如下所示。
#!/usr/bin/env bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
可在此处http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
找到代理配置的所有可用参数答案 1 :(得分:12)
自动缩放组与群集没有严格关联。但是,可以配置自动调节组,以便启动的每个实例都将自身注册到特定的集群中。
将实例注册到群集是实例上运行的ECS Agent的责任。如果您正在使用Amazon ECS-optimized AMI,则ECS代理将在实例启动时启动并将其自身注册到configured cluster。但是,您也可以通过the installation instructions。
在其他Linux AMI上使用ECS代理答案 2 :(得分:6)
好吧,我发现了。 它全部关于ecs-agent及其配置文件/etc/ecs/ecs.config (创建EC2实例时,即使从自动扩展配置,也会通过Userdata字段创建此文件。) 在此处阅读其配置选项:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html
但你甚至可以复制存储在Amazon S3上的ecs.config,就这样做(以下几行进入Userdata
字段):
#!/bin/bash
yum install -y aws-cli
aws configure set default.s3.signature_version s3v4
aws configure set default.s3.addressing_style path
aws configure set default.region eu-central-1
aws s3 cp s3://<bucketname>/ecs.config /etc/ecs/ecs.config
注意:Signature_version v4特定于某些地区,例如eu-central-1。 如果您的实例的IAM角色(在我的情况下是ecsInstanceRole)具有正确的AmazonS3ReadOnlyAccess
,则此ofc仅适用AWS GUI控制台的方式是: 使用https://console.aws.amazon.com/ecs/home#/firstRun处的群集向导。 它将为您的群集创建一个自动缩放群,它前面有一个负载均衡器,并且可以很好地连接它。