如何将EC2实例注册到ECS集群?

时间:2016-04-06 21:25:26

标签: amazon-web-services docker

我已经在EC2上启动了2个ECS优化实例,但是如何将它们注册为ECS容器实例?

无法想出办法。

4 个答案:

答案 0 :(得分:35)

启动ECS优化映像时,默认情况下会启动实例上的ECS代理。 ecs代理使用默认的ecs集群注册实例。

要使您的实例在群集上可用,您必须创建默认群集。

如果您有自定义ecs群集,则可以使用userdata部分设置群集名称。

ecs代理需要在/etc/ecs/ecs.config中提供ecs.config文件中的群集名称。

您可以使用userdata脚本

在实例启动时进行设置
#!/bin/bash
echo ECS_CLUSTER={cluster_name} >> /etc/ecs/ecs.config

有关详细信息,请参阅以下ecs文档 http://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html

答案 1 :(得分:18)

创建EC2实例时,必须指定链接到ECS容器的IAM角色(如果使用SDK / ...,则必须在参数中指定此角色的"实例配置文件ARN" ),如果您在aws网站上第一次使用ECS时使用交互式ECS群集,则应该已经有一个指向默认群集的ecsInstanceRole链接。

然后,在启动后,您的EC2实例将自动在此群集中注册为ECS容器。

答案 2 :(得分:0)

请记住,除了用户数据脚本回显非默认集群的名称之外,容器实例还需要外部网络访问权限才能与Amazon ECS服务进行通信。因此,如果您的容器实例没有公共IP地址,则它们必须使用网络地址转换(NAT)网关来提供此访问权限。

来源:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html

答案 3 :(得分:0)

您可以在集群中注册实例的另一件事是

  1. 创建服务并为其分配任务;
  2. 创建服务时-选择负载均衡器以及应启动的相应任务数;
  3. 然后,为负载均衡器创建一个目标组(如果尚不存在);
  4. 您现在有2个选项-手动创建所需的实例或编辑集群的启动模板(基于该模板,实例将自动创建);
  5. 如果您通过启动模板创建实例-它们将自动链接到目标组(因为在创建服务时选择了各自的负载均衡器);
  6. 否则,请手动添加它们-通过运行状况检查并在服务目标组中的任何实例都将自动添加到群集中,除非该群集已达到最大值。实例数量。