【问题标题】:AWS ECS container instanceAWS ECS 容器实例
【发布时间】:2016-11-29 20:27:53
【问题描述】:

我尝试使用 Ansible EC2 模块启动 ECS 容器实例。

我的剧本如下。

- name: Launch ECS Container Instance
  ec2:
    key_name: "{{ ec2_keyname }}"
    instance_type: t2.micro
    image: ami-ca01d8ca
    wait: yes
    group: "{{ ec2_security_group }}"
    region: ap-northeast-1
    exact_count: 1
    vpc_subnet_id: "{{ ec2_subnet_id }}"
    count_tag:
      docker-registry: 1
    instance_profile_name: ecsInstanceRole
    instance_tags:
      Name: ECS_docker-registry
      docker-registry: 1
    assign_public_ip: yes

结果,启动了两个实例;其中一个按我的意图配置,但另一个有以下我不打算设置的标签。

  • aws:autoscaling:groupName
  • aws:cloudformation:logical-id
  • aws:cloudformation:stack-id
  • aws:cloudformation:stack-name

另外,我可以在 ECS Dashboard 上找到这两个实例。

但它只对集群“默认”可见,对其他集群不可见。


我真正想做的事是;

  • 启动 ECS 容器实例
  • 将容器实例注册到集群

如果我能用aws-cli完成上面的过程会更好,但首先我应该了解容器实例的奇怪行为并手动执行。

【问题讨论】:

  • 当我从 EC2 仪表板而不是 Ansible 手动启动实例时,也会出现此问题。

标签: amazon-web-services amazon-ec2 amazon-ecs


【解决方案1】:

要在 ECS 集群中注册 EC2 容器实例,您有以下几种选择:

  1. 使用特殊的 amazon-ecs-optimized AMI 通过awscli 或 AWS 控制台手动启动包含自定义用户数据的 EC2 实例(阅读有关Launching an Amazon ECS Container Instance 的更多信息):

    #!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
  2. 使用AWS OpsWorks 并从AWS OpsWorks Supports Managing Amazon ECS Container Instances 创建ECS 集群层。在这种情况下,OpsWoks 将层内的任何 EC2 实例与特定的 ECS 集群一起工作。

有一些限制:

  1. 每个 OpsWorks Stack 只能有一个 ECS 集群层
  2. 每个 EC2 实例只能分配给一个 ECS 集群

【讨论】:

    【解决方案2】:

    您也可以手动将 EC2 实例添加到 ECS 集群:

    1. 使用此行在 /etc/ecs/ecs.config 中创建一个文件:

      ECS_CLUSTER={{ name }}
      

      其中 {{ name }} 是您想要的集群名称。

    2. 安装 ecs 代理(包名为“ecs-init”)并启动它。

    如果集群不存在,实例将创建集群。

    【讨论】:

      【解决方案3】:

      您可以尝试使用 ec2 模块的 user_data 字段。

      https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

      在 ecs 代理启动之前,您需要在 ecs.config 中拥有以下内容。

      #!/bin/bash
      echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config

      【讨论】:

        猜你喜欢
        • 2021-08-10
        • 1970-01-01
        • 2019-05-26
        • 1970-01-01
        • 2022-10-20
        • 2023-03-30
        • 1970-01-01
        • 2018-10-10
        • 2020-12-25
        相关资源
        最近更新 更多