AWS Fargate の Amazon Elastic Container Service (Amazon ECS) タスクに静的 IP アドレスまたは Elastic IP アドレスを使用したいと考えています。
解決策
静的 IP アドレスまたは Elastic IP アドレスを Fargate タスクに割り当てることはできません。Fargate タスクで静的 IP アドレスを使用するには、Network Load Balancer で Fargate サービスを作成し、ロードバランサーに Elastic IP アドレスをアタッチします。
トラフィック要件に応じて、次のオプションのいずれかを選択してください。
- アウトバウンドトラフィックの場合は、Fargate タスクが存在するプライベートサブネットに NAT ゲートウェイを作成します。NAT ゲートウェイの固定 IP アドレスは IP 許可リストに使用できます。詳細については、「Amazon ECS アプリケーションをインターネットに接続する」を参照してください。
- インバウンドトラフィックの場合は、Elastic IP アドレスを持つ Network Load Balancer を作成し、トラフィックを Fargate タスクにルーティングするように設定します。次のセクションの手順を実行します。
ターゲットグループを使用して Network Load Balancer を作成する
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- ナビゲーションペインの [ロードバランシング] で、[ロードバランサー] を選択します。
- [ロードバランサーの作成] を選択します。
- [ロードバランサータイプの比較と選択] で、[Network Load Balancer] に対して [作成] を選択します。
- [ロードバランサー名] に実際のロードバランサー名を入力します。
- [スキーム] で、[インターネット向け] または [内部] を選択します。
- [IP アドレスタイプ] で [IPv4] を選択します。
- [ネットワークマッピング] セクションの [VPC] で、Fargate タスク用の Amazon Virtual Private Cloud (Amazon VPC) を選択します。
- [アベイラビリティーゾーンとサブネット] では、アベイラビリティーゾーンごとに少なくとも 1 つのアベイラビリティーゾーンと 1 つのサブネットを選択します。
注: 複数のアベイラビリティーゾーンを有効にすると、アプリケーションの耐障害性が向上します。インターネット向けロードバランサーの場合は、アベイラビリティーゾーンごとに Elastic IP アドレスを選択して、ロードバランサーに静的 IP アドレスを提供します。内部ロードバランサーの場合は、各サブネットの IPv4 範囲からプライベート IP アドレスを割り当てるか、AWS に割り当てさせます。
- [リスナーとルーティング] では、デフォルトのリスナーをそのまま使用するか、別のリスナーを追加します。
注: デフォルトのリスナーは、ポート 80 で TCP トラフィックを受け入れます。デフォルトのリスナー設定をそのまま使用するか、リスナーのプロトコルまたはポートを変更するか、[リスナーの追加] を選択して別のリスナーを追加できます。
- [プロトコル] で、使用するプロトコルを選択します。
- [ポート] で、使用するポートを選択します。
- [ターゲットグループへ転送] で [ターゲットグループの作成] を選択します。
注: ターゲットグループは、リクエストをターゲットグループに転送する Network Load Balancer リスナールールによって使用されます。
- [ターゲットタイプ] で [IP アドレス] を選択します。
注: ターゲットタイプの [インスタンス] は Fargate ではサポートされていません。
- [ターゲットグループ名] で、ターゲットグループの名前を入力します。
- [ヘルスチェック] はデフォルト設定のままにします。
- [次へ] を選択します。
注: ロードバランサーは、ターゲットグループ内のターゲット間でトラフィックを分散します。ターゲットグループが Amazon ECS サービスに関連付けられている場合、Amazon ECS はターゲットグループからタスクを自動的に登録および登録解除します。Amazon ECS がターゲットの登録を処理するので、ターゲットグループにターゲットを手動で追加する必要はありません。
- [ターゲットグループの作成] を選択します。
- [Network Load Balancer を作成] ページに移動します。
- [リスナーとルーティング] の [ターゲットグループ] で、作成したターゲットグループを選択します。
注: 新しいターゲットグループを作成した後に表示するには、ターゲットグループの再読み込みボタンを選択する必要があります。
- [ロードバランサーの作成] を選択します。
Network Load Balancer で Amazon ECS サービスを作成する
Amazon ECS サービスを作成し、サービス定義でターゲットグループを指定します。サービスの各タスクが開始されると、Amazon ECS はサービス定義で指定されたコンテナとポートの組み合わせをターゲットグループに登録します。その後、ロードバランサーはトラフィックをそのコンテナにルーティングします。
関連情報
ロードバランサーを使用して Amazon ECS サービストラフィックを分散する
Amazon ECS 用の Network Load Balancer を使用する
Fargate における Amazon ECS タスクのネットワークオプション
Create a Network Load Balancer (Network Load Balancer の作成)
Amazon ECS アプリケーションをインターネットに接続する