Amazon ECS コンテナエージェントと Docker デーモンの両方に HTTP プロキシを使用するように Amazon ECS コンテナインスタンスを設定できます。これは、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合に便利です。
Amazon ECS Windows コンテナインスタンスが HTTP プロキシを使用するように設定するには、起動時に (Amazon EC2ユーザーデータを使用して) 以下の変数を設定します。
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://
proxy.mydomain:port
", "Machine")-
HTTP_PROXY
を、Amazon ECS エージェントがインターネットへの接続に使用する HTTP プロキシのホスト名 (または IP アドレス) とポート番号に設定します。例えば、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合です。 [Environment]::SetEnvironmentVariable("NO_PROXY", "169.254.169.254,169.254.170.2,\\.\pipe\docker_engine", "Machine")
-
NO_PROXY
を169.254.169.254,169.254.170.2,\\.\pipe\docker_engine
に設定して、EC2 インスタンスのメタデータ、タスク用の IAM ロール、および Docker デーモンのトラフィックをプロキシからフィルタリングします。
例 Windows HTTP プロキシのユーザーデータスクリプト
以下のユーザーデータ PowerShell スクリプトの例では、 Amazon ECS コンテナエージェント、および Docker デーモンが指定された HTTP プロキシを使用するように設定します。コンテナインスタンス自体が登録されているクラスターを指定することもできます。
コンテナインスタンスの起動時にこのスクリプトを使用するには、「Amazon ECS Windows コンテナインスタンスの起動」のステップに従います。以下の PowerShell スクリプトをコピーして [ユーザーデータ] フィールドに貼り付けます (必ず、赤いサンプル値を実際のプロキシおよびクラスターの情報に置き換えてください)。
注記
この -EnableTaskIAMRole
オプションは、タスクの IAM ロールを有効にするために必要です。詳細については、「 Amazon EC2 Windows インスタンスの追加設定」を参照してください。
<powershell>
Import-Module ECSTools
$proxy = "http://proxy.mydomain:port
"
[Environment]::SetEnvironmentVariable("HTTP_PROXY", $proxy, "Machine")
[Environment]::SetEnvironmentVariable("NO_PROXY", "169.254.169.254,169.254.170.2,\\.\pipe\docker_engine", "Machine")
Restart-Service Docker
Initialize-ECSAgent -Cluster MyCluster
-EnableTaskIAMRole
</powershell>