Amazon ECS コンテナエージェントの設定
適用対象: EC2 インスタンス
Amazon ECS コンテナエージェントでは、多数の設定オプションがサポートされており、そのほとんどは環境変数を介して設定します。
コンテナインスタンスが Amazon ECS に最適化されたAMIの Linux バリアントを使用して起動された場合は、これらの環境変数を /etc/ecs/ecs.config
ファイルに設定してからエージェントを再び開始できます。起動時に Amazon EC2 ユーザーデータを使用して、コンテナインスタンスにこれらの設定変数を作成することもできます。詳細については、「Amazon ECS Linux コンテナインスタンスをブートストラップしてデータを渡す」を参照してください。
コンテナインスタンスが Amazon ECS に最適化された AMI の Windows バリアントを使用して起動された場合は、PowerShell SetEnvironmentVariable コマンドを使用して、これらの環境変数を設定してからエージェントを再び開始できます。詳細については、「Amazon EC2 ユーザーガイド」の「ユーザーデータ入力を使用して EC2 インスタンスを起動するときにコマンドを実行する」および「Amazon ECS Windows コンテナインスタンスをブートストラップしてデータを渡す」を参照してください。
Amazon ECS コンテナエージェントを手動で開始する場合 ( Amazon ECSに最適化されていない AMI い場合)、これらの環境変数は、エージェントの起動に使用する docker run コマンドで使用できます。これらの変数は構文 --env=
で使用します。プライベートリポジトリの認証情報など、機密性の高い情報の場合は、エージェントの環境変数をファイルに保存し、VARIABLE_NAME
=VARIABLE_VALUE
--env-file
オプションを使用して、それらすべてを一度に渡す必要があります。以下のコマンドを使用して変数を追加できます。path_to_env_file
sudo systemctl stop ecs sudo vi /etc/ecs/ecs.config # And add the environment variables with VARIABLE_NAME=VARIABLE_VALUE format. sudo systemctl start ecs
ホスト PID 名前空間を使用した Amazon ECS エージェントの実行
デフォルトで、Amazon ECS エージェントは独自の PID 名前空間で実行されます。以下の設定で、ホスト PID 名前空間で実行するように Amazon ECS エージェントを設定できます。
-
SELinux 強制モードが有効になっています。
-
Docker の SELinux セキュリティポリシーが true に設定されています。
この動作を設定するには、/etc/ecs/ecs.config
ファイルで ECS_AGENT_PID_NAMESPACE_HOST
環境変数を true
に設定します。この変数を有効にすると、ecs-init
はホストの PID 名前空間 (--pid=host
) で Amazon ECS エージェントコンテナを起動します。これにより、エージェントは SELinux 強制環境で適切に自身をブートストラップできます。この機能は、Amazon ECS エージェントバージョン 1.94.0
以降で使用できます。
この機能を有効にするには、/etc/ecs/ecs.config
ファイルに次の行を追加します。
ECS_AGENT_PID_NAMESPACE_HOST=true
この変更を行った後に、Amazon ECS エージェントを再起動して変更を有効にします。
sudo systemctl restart ecs
以下の機能は、SELinux 強制モードが有効で、Docker セキュリティポリシーが true に設定されている場合でも、ECS_AGENT_PID_NAMESPACE_HOST=true
が設定されていても動作しません。
Amazon ECS Exec
Amazon EBS タスクアタッチ
Service Connect
Amazon ECS の FireLens
使用できるパラメータ
使用可能な Amazon ECS コンテナエージェントの設定パラメータについては、GitHub の「Amazon ECS コンテナエージェント