1

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

その結果、2 つのインスタンスが起動されました。そのうちの1つは意図したとおりに構成されていますが、別のタグには設定するつもりのない次のタグがあります。

  • aws:autoscaling:groupName
  • aws:cloudformation:論理 ID
  • aws:cloudformation:stack-id
  • aws:cloudformation:スタック名

さらに、ECS ダッシュボードでこれら 2 つのインスタンスを見つけることができます。

ここに画像の説明を入力

ただし、クラスター「デフォルト」でのみ表示され、他のクラスターでは表示されません。


私が本当にやりたいことは次のとおりです。

  • ECS コンテナ インスタンスを起動する
  • コンテナー インスタンスをクラスターに登録する

上記の処理がaws-cliでできれば良いのですが、まずはコンテナインスタンスの挙動がおかしいことを理解して手動で行う必要があります。

4

3 に答える 3

4

ECS クラスターに EC2 コンテナー インスタンスを登録するには、いくつかのオプションがあります。

  1. 特別なamazon-ecs-optimizedawscli AMI を使用して、または AWS コンソールでカスタム ユーザー データを使用して EC2 インスタンスを手動で起動します(詳細については、Amazon ECS コンテナ インスタンスの起動を参照してください)。

        #!/ビン/バッシュ    
        echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
    
  2. AWS OpsWorksはAmazon ECS コンテナ インスタンスの管理をサポートしているため、 AWS OpsWorks を使用してECS クラスター レイヤーを作成します。この場合、OpsWoks はレイヤー内の EC2 インスタンスを特定の ECS クラスターと連携させます。

いくつかの制限があります:

  1. 各 OpsWorks スタックは、ECS クラスター レイヤーを 1 つだけ持つことができます
  2. 各 EC2 インスタンスは、1 つの ECS クラスターにのみ割り当てることができます
于 2015-09-29T14:56:06.547 に答える
0

user_dataec2 モジュールのusing フィールドを調べてみてください。

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

ecs.configecs エージェントを起動する前に、以下を用意する必要があります。

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

于 2016-04-14T22:10:19.790 に答える