Amazon ECS Windows コンテナインスタンスに HTTP プロキシを使用する - Amazon Elastic Container Service

Amazon ECS Windows コンテナインスタンスに HTTP プロキシを使用する

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_PROXY169.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>