

# Amazon ECS Linux コンテナインスタンスに HTTP プロキシを使用する
<a name="http_proxy_config"></a>

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.170.2"`  
この値を `169.254.169.254,169.254.170.2` に設定して、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,169.254.170.2` に設定して、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](https://repost.aws/knowledge-center/ecs-http-proxy-docker-linux2)」を参照してください。