Amazon ECS コンテナエージェントの設定
Amazon ECSコンテナエージェントでは、多数の設定オプションがサポートされており、そのほとんどは環境変数を通じて設定する必要があります。次の環境変数を使用できます。すべてオプションです。
コンテナインスタンスが Amazon ECS に最適化されたAMIの Linux バリアントを使用して起動された場合は、これらの環境変数を /etc/ecs/ecs.config
ファイルに設定してからエージェントを再び開始できます。起動時に Amazon EC2 ユーザーデータを使用して、コンテナインスタンスにこれらの設定変数を作成することもできます。詳細については、「Amazon EC2 ユーザーデータを使用してコンテナインスタンスをブートストラップする」を参照してください。
コンテナインスタンスが Amazon ECS に最適化された AMI の Windows バリアントを使用して起動された場合は、PowerShell SetEnvironmentVariable コマンドを使用して、これらの環境変数を設定してからエージェントを再び開始できます。詳細については、「Windows インスタンス用 Amazon EC2 ユーザーガイド」の「起動時に Linux インスタンスでコマンドを実行する」と「Amazon EC2 ユーザーデータを使用して Windows コンテナインスタンスをブートストラップする」を参照してください。
Amazon ECS コンテナエージェントを手動で開始する場合 (Amazon ECSに最適化されていない AMI の場合)、これらの環境変数は、エージェントの起動に使用する docker run コマンドで使用できます。これらの変数は構文 --env=
で使用します。プライベートリポジトリの認証情報など、機密性の高い情報の場合は、エージェントの環境変数をファイルに保存し、VARIABLE_NAME
=VARIABLE_VALUE
--env-file
オプションを使用して、それらすべてを一度に渡す必要があります。path_to_env_file
使用できるパラメータ
使用可能な Amazon ECS コンテナエージェントの設定パラメータについては、GitHub の「Amazon ECS コンテナエージェント
Amazon S3 にコンテナインスタンスの設定を保存する
Amazon ECS コンテナエージェントの設定は、前のセクションで説明した環境変数で制御されます。Amazon ECS に最適化されたAMIの Linux バリアントは、コンテナエージェントの起動時に /etc/ecs/ecs.config
でこれらの変数を検索し、見つかった変数に応じてエージェントを設定します。ECS_CLUSTER
など、問題のない特定の環境変数は、Amazon EC2 ユーザーデータを経由して起動時にコンテナインスタンスに渡され、そのままこのファイルに書き込まれます。ただし、AWS 認証情報や ECS_ENGINE_AUTH_DATA
変数など機密性の高い情報は、ユーザーデータでインスタンスに渡したり、.bash_history
ファイルに表示される可能性のある方法で /etc/ecs/ecs.config
に書き込んだりしないでください。
設定情報を Amazon S3 のプライベートバケットに保存し、コンテナインスタンスの IAM ロールに読み取り専用アクセス権限を付与するのが、コンテナインスタンスの起動時に設定を許可する安全で便利な方法です。ecs.config
ファイルのコピーはプライベートバケットに保存できます。その後、AWS CLI Amazon EC2 ユーザーデータを使用してをインストールし、インスタンスの起動時に設定情報を /etc/ecs/ecs.config
にコピーできます。
Amazon S3 の読み取り専用アクセス権限をコンテナインスタンスのロールに許可するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
ナビゲーションペインで [ロール] を選択し、コンテナインスタンスに使用する IAM ロール を選択します。このロールのタイトルは多くの場合、
ecsInstanceRole
です。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。 -
[Managed Policies] の下で、[Attach Policy] を選択します。
-
ポリシーの結果を絞り込むには、[ポリシーのアタッチ] ページの [フィルター] フィールドに
S3
と入力します。 -
[AmazonS3ReadOnlyAccess] ポリシーの左にあるチェックボックスをオンにし、[Attach Policy] を選択します。
ecs.config
Amazon S3 のファイルを保存するには
-
次の形式を使用して、有効な Amazon ECS エージェントの設定変数を含む
ecs.config
ファイルを作成します。この例では、プライベートレジストリ認証を設定しています。詳細については、「タスクのプライベートレジストリの認証」を参照してください。ECS_ENGINE_AUTH_TYPE=dockercfg ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"
zq212MzEXAMPLE7o6T25Dk0i
","email":"email@example.com
"}}注記
利用可能な Amazon ECS エージェントの設定変数の完全なリストについては、GitHub の「Amazon ECS コンテナエージェント
」を参照してください。 -
設定ファイルを保存するには、Amazon S3 内にプライベートバケットを作成します。詳細については、Amazon Simple Storage Service ユーザーガイドの「バケットの作成」を参照してください。
-
ecs.config
ファイルを S3 バケットにアップロードします。詳細については、Amazon Simple Storage Service ユーザーガイドのバケットへのオブジェクトの追加を参照してください。
起動時に ecs.config
ファイルを Amazon S3 からロードするには
-
このセクションの上記の手順を完了して、読み取り専用 Amazon S3 アクセス権限をコンテナインスタンスに許可し、
ecs.config
ファイルをプライベート S3 バケットに保存します。 -
「Amazon ECS Linux コンテナインスタンスの起動」のステップに従って、新しいコンテナインスタンスを起動します。「ステップ 7」の手順に従って、AWS CLI をインストールする以下のスクリプト例を使用し、設定ファイルを
/etc/ecs/ecs.config
にコピーします。#!/bin/bash yum install -y aws-cli aws s3 cp s3://
your_bucket_name
/ecs.config /etc/ecs/ecs.config