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

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

Amazon ECS コンテナエージェントと Docker デーモンの両方に HTTP プロキシを使用するように Amazon ECS コンテナインスタンスを設定できます。これは、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合に便利です。

HTTP プロキシを使用するように Amazon ECS Linux コンテナインスタンスを設定するには、起動時に該当するファイルで以下の変数に Amazon EC2 ユーザーデータを設定します。手動で設定ファイルを編集してから、エージェントを再起動することもできます。

/etc/ecs/ecs.config (Amazon Linux 2 および Amazon Linux AMI)
HTTP_PROXY=10.0.0.131:3128

この値を、Amazon ECS エージェントがインターネットへの接続に使用する HTTP プロキシのホスト名 (または IP アドレス) とポート番号に設定します。例えば、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合です。

NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock

この値を 169.254.169.254,169.254.170.2,/var/run/docker.sock に設定して、EC2 インスタンスのメタデータ、タスク用の IAM; ロール、および Docker デーモンのトラフィックをプロキシからフィルタリングします。

/etc/systemd/system/ecs.service.d/http-proxy.conf (Amazon Linux 2 のみ)
Environment="HTTP_PROXY=10.0.0.131:3128/"

この値を、ecs-init がインターネットへの接続に使用する HTTP プロキシのホスト名 (または IP アドレス) とポート番号に設定します。例えば、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合です。

Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"

この値を 169.254.169.254,169.254.170.2,/var/run/docker.sock に設定して、EC2 インスタンスのメタデータ、タスク用の IAM; ロール、および Docker デーモンのトラフィックをプロキシからフィルタリングします。

/etc/init/ecs.override (Amazon Linux AMI のみ)
env HTTP_PROXY=10.0.0.131:3128

この値を、ecs-init がインターネットへの接続に使用する HTTP プロキシのホスト名 (または IP アドレス) とポート番号に設定します。例えば、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合です。

env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock

この値を 169.254.169.254,169.254.170.2,/var/run/docker.sock に設定して、EC2 インスタンスのメタデータ、タスク用の IAM; ロール、および Docker デーモンのトラフィックをプロキシからフィルタリングします。

/etc/systemd/system/docker.service.d/http-proxy.conf (Amazon Linux 2 のみ)
Environment="HTTP_PROXY=http://10.0.0.131:3128"

この値を、Docker デーモンがインターネットへの接続に使用する HTTP プロキシのホスト名 (または IP アドレス) とポート番号に設定します。例えば、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合です。

Environment="NO_PROXY=169.254.169.254"

この値を 169.254.169.254 に設定して、EC2 インスタンスのメタデータをプロキシからフィルタリングします。

/etc/sysconfig/docker (Amazon Linux AMI および Amazon Linux 2 のみ)
export HTTP_PROXY=http://10.0.0.131:3128

この値を、Docker デーモンがインターネットへの接続に使用する HTTP プロキシのホスト名 (または IP アドレス) とポート番号に設定します。例えば、コンテナインスタンスに、Amazon VPC インターネットゲートウェイ、NAT ゲートウェイ、またはインスタンスを介した外部ネットワークアクセスがない場合です。

export NO_PROXY=169.254.169.254,169.254.170.2

この値を 169.254.169.254 に設定して、EC2 インスタンスのメタデータをプロキシからフィルタリングします。

これらの環境変数を上記のファイルで設定すると、Amazon ECS コンテナエージェント、ecs-init、および Docker デーモンのみに影響があります。プロキシを使用する他のサービス (yum など) を設定することはありません。

プロキシを保護する方法については、「How do I set up an HTTP proxy for Docker and the Amazon ECS container agent in Amazon Linux 2 or AL2023」を参照してください。