Amazon EC2 ユーザーデータを使用してコンテナインスタンスをブートストラップする - Amazon Elastic Container Service

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

Amazon EC2 ユーザーデータを使用してコンテナインスタンスをブートストラップする

Amazon ECS コンテナインスタンスを起動するとき、インスタンスにユーザーデータを渡すオプションがあります。インスタンスの起動時に、データを使って、一般的な自動設定タスクを実行したり、スクリプトを実行したりできます。Amazon ECS では、ユーザーデータの最も一般的なユースケースは、設定情報を Docker デーモンと Amazon ECS コンテナエージェントに渡すことです。

クラウドブートフック、シェルスクリプト、cloud-init ディレクティブなど、複数タイプのユーザーデータを Amazon EC2 に渡すことができます。これらおよびその他の形式の種類の詳細については、「Cloud-Init のドキュメント」を参照してください。

Amazon EC2 起動ウィザードを使用するときに、このユーザーデータを渡すことができます。詳細については、「Amazon ECS コンテナインスタンスの起動」を参照してください。

Amazon ECS コンテナエージェント

Amazon ECS-optimized AMI の Linux バリアントは、コンテナエージェントの開始時に /etc/ecs/ecs.config ファイルでエージェント設定データを検索します。Amazon EC2 ユーザーデータを使用して、起動時に、この設定データを指定することができます。利用可能な Amazon ECS コンテナエージェントの設定変数の詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。

クラスター名など、単一エージェントの設定変数のみを設定するには、echo を使用して、変数を設定ファイルにコピーします。

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

/etc/ecs/ecs.config に書き込む変数が複数ある場合は、以下の heredoc 形式を使用します。この形式は cat で始まる行と EOF の間のすべてを設定ファイルに書き込みます。

#!/bin/bash cat <<'EOF' >> /etc/ecs/ecs.config ECS_CLUSTER=MyCluster ECS_ENGINE_AUTH_TYPE=docker ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}} ECS_LOGLEVEL=debug EOF

Docker デーモン

Docker デーモンの構成情報は Amazon EC2 ユーザーデータで指定できます。設定オプションの詳細については、「Docker デーモンのドキュメント」を参照してください。

以下の例では、カスタムオプションが Docker デーモン構成ファイル /etc/docker/daemon.json に追加され、インスタンスの起動時にユーザーデータで指定されます。

#!/bin/bash cat <<EOF >/etc/docker/daemon.json {"debug": true} EOF systemctl restart docker --no-block