

# Amazon ECS マネージドインスタンスの Amazon ECS タスクネットワーキング
<a name="managed-instance-networking"></a>

Amazon ECS マネージドインスタンスが実行する Amazon ECS タスクのネットワーク動作は、タスク定義で指定された*ネットワークモード*に左右されます。タスク定義からネットワークモードを指定してください。タスク定義でネットワークモードを指定しないと、Amazon ECS マネージドインスタンスでタスクを実行することはできません。Amazon ECS マネージドインスタンスは以下のネットワークモードに対応しており、ワークロードを Amazon EC2 上の Fargate または Amazon ECS から移行できる下位互換性を提供します。


| ネットワークモード | 説明 | 
| --- | --- | 
|  `awsvpc`  |  各タスクには、独自の Elastic Network Interface (ENI) とプライベート IPv4 アドレスが割り当てられます。これにより、Amazon EC2 インスタンスと同一のネットワークプロパティを提供し、従来の Fargate タスクとの互換性を実現します。ENI トランキングを使用してタスク密度を高めます。  | 
|  `host`  |  タスクはホストのネットワーク名前空間を直接共有します。コンテナネットワークは、基盤となるホストインスタンスに紐づけられます。  | 

## IPv6-only モードで VPC を使用する
<a name="managed-instances-networking-ipv6-only"></a>

IPv6-only 設定では、Amazon ECS タスクは IPv6 経由でのみ通信します。VPC およびサブネットを IPv6-only モードに設定するには、IPv6 CIDR ブロックを VPC に追加し、IPv6 CIDR ブロックのみを含むサブネットを作成してください。詳しくは「*Amazon VPC ユーザーガイド*」の「[VPC の IPv6 サポートを追加する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html)」および「[サブネットを作成する](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)」を参照してください。また、IPv6 ターゲットでルートテーブルを更新し、IPv6 ルールでセキュリティグループを設定する必要があります。詳しくは「*Amazon VPC ユーザーガイド*」の「[ルートテーブルを設定する](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)」および「[セキュリティグループルールを設定する](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)」を参照してください。

以下の考慮事項に注意してください。
+ Amazon ECS サービスを IPv6-only サブネットを使用する設定に直接更新するか、別の IPv6-only サービスを作成し、Amazon ECS ブルー/グリーンデプロイを用いて新サービスへのトラフィック移行を行うことで、IPv4-only 設定の更新および IPv6-only 設定のデュアルスタックを有効にすることが可能です。Amazon ECS におけるブルー/グリーンデプロイについて、詳しくは「[Amazon ECS ブルー/グリーンデプロイ](deployment-type-blue-green.md)」を参照してください。
+ IPv6-only Amazon ECS サービスは、IPv6 ターゲットグループを保有するデュアルスタックロードバランサーを使用する必要があります。Application Load Balancer または Network Load Balancer の背後で稼働する既存の Amazon ECS サービスを移行する場合は、新しいデュアルスタックロードバランサーを作成して旧ロードバランサーからトラフィックを切り替えるか、既存のロードバランサーの IP アドレスタイプを更新します。

   Network Load Balancer について、詳しくは「*Network Load Balancer ユーザーガイド*」の「[Network Load Balancer を作成する](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html)」および「[Network Load Balancer の IP アドレスタイプを更新する](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-ip-address-type.html)」を参照してください。Application Load Balancer について、詳しくは「*Application Load Balancer ユーザーガイド*」の「[Application Load Balancer を作成する](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)」および「[Application Load Balancer の IP アドレスタイプを更新する](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-ip-address-type.html)」を参照してください。
+ IPv4-only エンドポイントと交信する IPv6-only 設定の Amazon ECS タスクにおいては、IPv6 から IPv4 へのネットワークアドレス変換に DNS64 と NAT64 を設定できます。詳細については、*Amazon VPC ユーザーガイド*の [DNS64 および NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html) を参照してください。
+ IPv6-only 設定の Amazon ECS ワークロードでは、Amazon ECR からイメージを取得する際に Amazon ECR デュアルスタックイメージ URI エンドポイントを使用する必要があります。詳しくは「*Amazon Elastic Container Registry ユーザーガイド*」の「[Getting started with making requests over IPv6](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-requests.html#ipv6-access-getting-started)」を参照してください。
**注記**  
Amazon ECR は、IPv6-only 設定のタスクが使用するデュアルスタックインターフェイス VPC エンドポイントには対応していません。詳しくは「*Amazon Elastic Container Registry ユーザーガイド*」の「[Getting started with making requests over IPv6](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-requests.html#ipv6-access-getting-started)」を参照してください。
+ Amazon ECS Exec は IPv6-only 設定には対応していません。

# Amazon ECS マネージドインスタンスタスクにネットワークインターフェイスを割り当てる
<a name="managed-instances-awsvpc-mode"></a>

 Amazon ECS マネージドインスタンスで `awsvpc` ネットワークモードを利用することで、アプリケーション間の通信および VPC 内のその他サービスとの通信におけるい管理能力が向上し、よりシンプルなコンテナネットワークが実現します。`awsvpc` ネットワークモードによりコンテナのセキュリティも強化されます。これは、セキュリティグループやネットワークモニタリングツールを、タスク内でより詳細なレベルで利用できるためです。

デフォルトでは、インスタンスタイプがトランキングをサポートしている場合、すべての Amazon ECS マネージドインスタンスには、起動時にトランク Elastic Network Interface (ENI) がプライマリ ENI としてアタッチされます。ENI トランキングをサポートするインスタンスタイプについて、詳しくは「[Amazon ECS コンテナネットワークインターフェイスの増加でサポートされるインスタンス](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/eni-trunking-supported-instance-types.html)」を参照してください。

**注記**  
選択したインスタンスタイプがトランク ENI をサポートしていない場合、インスタンスは通常の ENI で起動されます。

インスタンスで実行される各タスクは、プライマリプライベート IP アドレスを持つ、トランク ENI にアタッチされた独自の ENI を受け取ります。VPC がデュアルスタックモード対応に設定されており、かつ IPv6 CIDR ブロックを備えたサブネットを利用する場合は、ENI に対しても IPv6 アドレスが割り当てられます。パブリックサブネットを使用する場合、サブネットの IPv4 パブリックアドレス指定を有効にすることで、オプションでパブリック IP アドレスを Amazon ECS マネージドインスタンスのプライマリ ENI に割り当てることができます。詳しくは「*Amazon VPC ユーザーガイド*」の「[サブネットの IP アドレス指定属性を変更する](https://docs.aws.amazon.com//vpc/latest/userguide/subnet-public-ip.html)」を参照してください。タスクには、一度に 1 つの ENI しか関連付けられません。

 また、同じタスクに属するコンテナでも、`localhost` インターフェイス経由での通信が可能になります。VPC とサブネットについて、詳しくは「*Amazon VPC ユーザーガイド*」の「[Amazon VPC の仕組み](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)」を参照してください。

以下のオペレーションを行うには、インスタンスにアタッチされたプライマリ ENI が必要です。
+ **イメージのダウンロード** – コンテナイメージは、プライマリ ENI を介して Amazon ECR からダウンロードされます。
+ **シークレットの取得** – Secrets Manager のシークレットおよびその他の認証情報は、プライマリ ENI を介して取得されます。
+ **ログのアップロード** – ログはプライマリ ENI を介して CloudWatch にアップロードされます。
+ **環境ファイルのダウンロード** – 環境ファイルはプライマリ ENI を介してダウンロードされます。

アプリケーショントラフィックはタスク ENI を経由します。

各タスクにはそれぞれ独自の ENI が提供されるため、VPC フローログなどのネットワーキング機能を使用して、タスクとの間で送受信されるトラフィックをモニタリングできるようになります。詳細については、「Amazon VPC ユーザーガイド」の「[VPC フローログを使用した IP トラフィックのログ記録](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)」を参照してください。

AWS PrivateLink を活用することもできます。VPC インターフェースエンドポイントを設定することで、プライベート IP アドレスを通じて Amazon ECS の API にアクセスができます。AWS PrivateLink は、VPC と Amazon ECS 間のすべてのネットワークトラフィックを Amazon ネットワークに制限します。インターネットゲートウェイ、NAT デバイス、または仮想プライベートゲートウェイは必要ありません。詳細は「[Amazon ECS インターフェイス VPC エンドポイント (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html)」を参照してください。

`awsvpc` ネットワークモードでは、Amazon VPC トラフィックミラーリングを活用して、トランク ENI がアタッチされていないインスタンスタイプを使用する場合に、ネットワークトラフィックのセキュリティとモニタリングを行うこともできます。詳しくは「*Amazon VPC トラフィックミラーリングガイド*」の「[What is Traffic Mirroring?](https://docs.aws.amazon.com/vpc/latest/mirroring/what-is-traffic-mirroring.html)」を参照してください。

## `awsvpc` モードに関する考慮事項
<a name="managed-instances-awsvpc-considerations"></a>
+ タスクには、Amazon ECS サービスに紐づいた ENI 管理用ロールが必要です。このロールは、クラスターまたはサービスの作成時に自動で生成されます。
+ タスク ENI は Amazon ECS によって管理され、手動で削除または変更することはできません。
+ スタンドアロンタスク (`RunTask`) の実行時、またはサービス (`CreateService`/`UpdateService`) の作成または更新時の、`assignPublicIp` を使用したタスク ENI へのパブリック IP アドレス割り当てはサポート対象外です。
+ タスクレベルで `awsvpc` ネットワークを設定する場合は、Amazon ECS マネージドインスタンスのキャパシティプロバイダーの起動テンプレートの一部として指定したのと同じ VPC を使用する必要があります。起動テンプレートで指定されたサブネットやセキュリティグループとは異なるサブネットやセキュリティグループを使用できます。
+ `awsvpc` ネットワークモードタスクの場合は、ロードバランサーターゲットグループを設定するときに `ip` ターゲットタイプを使用します。Amazon ECS は、サポートされているネットワークモードのターゲットグループ登録を自動的に管理します。

## デュアルスタックモードでの VPC の使用
<a name="managed-instance-networking-vpc-dual-stack"></a>

デュアルスタックモードで VPC を使用する場合、タスクは IPv4 または IPv6、あるいはその両方を経由して通信できます。IPv4 と IPv6 アドレスは、互いに独立しています。そのため、VPC 内で IPv4 と IPv6 のルーティングとセキュリティを別々に設定する必要があります。VPC をデュアルスタックモード用に設定する方法については、「Amazon VPC ユーザーガイド」の「[既存の VPC を IPv4 から IPv6 に移行する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)」を参照してください。

VPC でインターネットゲートウェイまたは送信専用インターネットゲートウェイを設定した場合は、その VPC をデュアルスタックモードで使用できます。この設定により、IPv6 アドレスが割り当てられたタスクは、インターネットゲートウェイまたは送信専用インターネットゲートウェイを介して、インターネットへのアクセスが可能になります。NAT ゲートウェイはオプションです。詳細については、*Amazon VPC ユーザーガイド*の「[インターネットゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)」および「[Egress-only インターネットゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html)」を参照してください。

以下の条件が満たされた場合、Amazon ECS タスクには IPv6 アドレスが割り当てられます。
+ タスクをホストする Amazon ECS マネージドインスタンスのインスタンスは、バージョン `1.45.0` 以降のコンテナエージェントを使用します。インスタンスが使用しているエージェントのバージョンを確認し、必要に応じて更新する方法については、「[Amazon ECS コンテナエージェントをアップデートする](ecs-agent-update.md)」を参照してください。
+ `dualStackIPv6` アカウント設定が有効になります。詳細については、「[アカウント設定による Amazon ECS 機能へのアクセス](ecs-account-settings.md)」を参照してください。
+ タスクは `awsvpc` ネットワークモードを使用しています。
+ VPC とサブネットは、IPv6 に対して有効になっています。この設定には、指定されたサブネットで作成されたネットワークインターフェイスが含まれます。VPC をデュアルスタックモードに設定する方法について、詳しくは「*Amazon VPC ユーザーガイド*」の「[IPv6 へ移行する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)」および「[サブネットの IP アドレス指定属性を変更する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-ipv6)」を参照してください。

# ホストネットワークモード
<a name="managed-instances-host-modes"></a>

`host` モードでは、タスクはホストのネットワーク名前空間を直接共有します。コンテナのネットワーク設定は、Amazon ECS マネージドインスタンスのキャパシティプロバイダーを作成するときに `networkConfiguration` パラメータを使用して指定する、基盤となる Amazon ECS マネージドインスタンスのホストインスタンスに関連付けられます。``

このネットワークモードを使用することには重大な欠点があります。各ホストで 1 つのタスクを複数インスタンス化することはできません。これは、Amazon EC2 インスタンスの必要なポートにバインドできるのは最初のタスクだけだからです。また、`host` ネットワークモードを使用している場合、コンテナポートを再マップする方法はありません。例えば、アプリケーションが特定のポート番号でリッスンする必要がある場合、ポート番号を直接再マップすることはできません。代わりに、アプリケーション構成を変更してポートの競合を管理する必要があります。

`host` ネットワークモードを使用する際には、セキュリティ上の問題もあります。このモードでは、コンテナがホストになりすますことができ、コンテナはホスト上のプライベートループバックネットワークサービスに接続できます。

ホストモードは、ホストネットワークへの直接アクセスが必要な場合、またはホストレベルのネットワークアクセスを必要とするアプリケーションを移行する場合にのみ使用します。