

# Amazon ECS コンテナエージェントの設定
<a name="ecs-agent-config"></a>

**適用対象**: EC2 インスタンス

Amazon ECS コンテナエージェントでは、多数の設定オプションがサポートされており、そのほとんどは環境変数を介して設定します。

コンテナインスタンスが Amazon ECS に最適化されたAMIの Linux バリアントを使用して起動された場合は、これらの環境変数を `/etc/ecs/ecs.config` ファイルに設定してからエージェントを再び開始できます。起動時に Amazon EC2 ユーザーデータを使用して、コンテナインスタンスにこれらの設定変数を作成することもできます。詳細については、「[Amazon ECS Linux コンテナインスタンスをブートストラップしてデータを渡す](bootstrap_container_instance.md)」を参照してください。

コンテナインスタンスが Amazon ECS に最適化された AMI の Windows バリアントを使用して起動された場合は、PowerShell SetEnvironmentVariable コマンドを使用して、これらの環境変数を設定してからエージェントを再び開始できます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[ユーザーデータ入力を使用して EC2 インスタンスを起動するときにコマンドを実行する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html)」および「[Amazon ECS Windows コンテナインスタンスをブートストラップしてデータを渡す](bootstrap_windows_container_instance.md)」を参照してください。

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 エージェントの実行
<a name="ecs-agent-pid-namespace"></a>

デフォルトで、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

## 使用できるパラメータ
<a name="ecs-agent-availparam"></a>

使用可能な Amazon ECS コンテナエージェントの設定パラメータについては、GitHub の「[Amazon ECS コンテナエージェント](https://github.com/aws/amazon-ecs-agent/blob/master/README.md)」を参照してください。