AWS Fargate の Amazon Elastic Container Service (Amazon ECS) タスクに静的 IP アドレスまたは Elastic IP アドレスを使用したいと考えています。
簡単な説明
静的 IP アドレスまたは Elastic IP アドレスを Fargate タスクに直接追加することはできません。Fargate タスクで静的 IP アドレスまたは Elastic IP アドレスを使用するには、まず Network Load Balancer で Fargate サービスを作成する必要があります。次に、ロードバランサーの静的 IP アドレスをタスクの固定エントリポイントとして使用します。
解決策
アウトバウンドトラフィック用の Fargate タスクの静的 IP アドレスを作成するには、NAT ゲートウェイを作成します。ダウンストリームのコンシューマーには静的 IP アドレスを使用し、Fargate タスクはプライベートサブネットに配置する必要があります。次に、NAT ゲートウェイの IP アドレスを使用して IP アドレスの許可リストを作成します。
インバウンドトラフィック用の固定 IP アドレスを作成するには、次の手順を実行します。
ターゲットグループを作成する
ターゲットグループを作成した後、[ターゲットタイプの選択] で [IP アドレス] を選択し、[プロトコル] で [TCP] を選択します。
注: Fargate では、ターゲットタイプに [インスタンス] は使用できません。
Network Load Balancer がターゲットグループを使用するように設定する
注: ロードバランサーのセキュリティグループルールでは、アウトバウンドトラフィックがトラフィック用ポートとヘルスチェック用ポートで登録済みターゲットと通信することを許可する必要があります。かかるルールでは、クライアントからのインバウンドトラフィックをリスナー用ポートで許可する必要もあります。
ターゲットグループを同じ仮想プライベートクラウド (VPC) 内の Network Load Balancer にアタッチします。ロードバランサーは、ターゲットグループ内のターゲット間でトラフィックを分散します。ターゲットグループが Amazon ECS サービスに関連付けられている場合、Amazon ECS はターゲットグループにコンテナを自動的に登録、登録解除します。Amazon ECS がターゲットの登録を処理するので、ターゲットグループにターゲットを手動で追加する必要はありません。
Amazon ECS サービスを作成する
Fargate を起動タイプとする Amazon ECS サービスを作成します。サービスを作成するときは、サービス定義で作成したターゲットグループを指定する必要があります。さらに、サービスに関連付けられたセキュリティグループは、ロードバランサーからのインバウンドトラフィックをトラフィック用ポートとヘルスチェック用ポートで許可する必要があります。
サービスの各タスクが開始するときに、Amazon ECS はサービス定義のコンテナインスタンスとポートの組み合わせをターゲットグループに登録します。次に、ロードバランサーはトラフィックをそのコンテナインスタンスにルーティングします。
関連情報
負荷分散により、Amazon ECS サービスのトラフィックを分散する