Amazon Web Services ブログ

Amazon ECS ゲートウェイの紹介:ECS サービス向けの完全マネージド型イングレスソリューション

プラットフォームチームが Amazon Elastic Container Service (Amazon ECS) でコンテナ化されたアプリケーションを大規模に管理する場合、各サービスの入力ネットワークを設定することがボトルネックになることがよくあります。新しいサービスごとに、<tag>チームは Application Load Balancers (ALBs)、AWS Certificate Manager (ACM) 証明書、AWS WAF の web ACL、およびセキュリティグループをプロビジョニングして接続し、サービスの拡張、更新、運用に合わせてそれらのリソースを同期させる必要があります。このサービスごとのオーバーヘッドは、導入速度を低下させ、組織全体での構成ドリフトのリスクを高めます。

2026 年 10 月 20 日、Amazon ECS Gateway を発表しました。 Amazon ECS Gateway は、すべてのリソースをお客様のアカウントで直接作成して、お客様に代わって必要なインフラストラクチャを動的にプロビジョニングおよび管理することで、コンテナ化されたワークロードの進入ネットワークを簡素化する新しいアカウントレベルのリソースです。

ECS Gateway は、プラットフォームチームとアプリケーションチーム間の責任を明確に分離します。

  • プラットフォームチームは、サブネット、セキュリティグループ、TLS 証明書、リスナー設定、WAF Web ACL などの組織のネットワーク標準を定義するゲートウェイを1か所で作成および構成します。次に、ゲートウェイを 1 つ以上の ECS クラスターに関連付け、それらのクラスターで実行されているサービスが使用できるようにします。
  • アプリケーションチームは、サービスの作成または更新時にゲートウェイコネクタパラメータを追加することでサービスをオプトインします。ECSは、必要なサービスごとのリソース(ACM 証明書、一意の DNS ホスト名、リスナールール、ターゲットグループ、ALB からのインバウンドトラフィックのみを許可するサービスセキュリティグループ)を自動的にプロビジョニングします。ネットワークの専門知識は必要ありません。

ECS Gateway は、ALB を使用したホストベースのルーティングを提供し、最大25のサービスが1つの ALB を共有できるようにすることで、インフラストラクチャのコストを最適化します。ECS は基盤となるインフラストラクチャのライフサイクル全体を管理し、最初のサービスが接続されたときに最初の ALB をプロビジョニングし、容量に達すると ALB を追加し、不要になったら削除します。各サービスには固有の DNS ホスト名が割り当てられるため、プロビジョニングが完了した瞬間にチームがすぐに使えるエンドポイントを入手できます。

ECS Gateway の概要
ECS コンソールでは、プラットフォームチームがゲートウェイを作成し、その構成を設定できます。インフラストラクチャロールは、アカウントの ALB、セキュリティグループ、証明書などのネットワークリソースをプロビジョニングおよび管理するために ECS が引き受ける IAM ロールです。ゲートウェイを作成するには、ゲートウェイ名を指定し、インフラストラクチャロールを選択します。オプションで、作成中または作成後にゲートウェイを ECS クラスターに関連付けることができます。

パブリックトラフィックルーティングまたは VPC 内部トラフィックルーティングのどちらかの負荷分散スキームを選択します。「その他の設定」では、リスナー、ポート、ゲートウェイがスケーリングできるロードバランサーの最大数を設定したり、ウェブアプリケーションを保護するためのウェブ ACL を設定したりできます。名前、スキーム、VPC、サブネット、IP アドレスタイプ、リスナープロトコル、ポートなどの一部の設定は、ゲートウェイの作成後に変更できません。

AWS コマンドラインインターフェイス (AWS CLI) を使用して、名前 (アカウントごとに一意)、インフラストラクチャロール、および設定オブジェクトを指定して CreateGateway を呼び出します。サービスがゲートウェイコネクタに接続するまで、インフラストラクチャはプロビジョニングされません。

aws ecs create-gateway \
  --name my-team-gateway \
  --infrastructure-role-arn arn:aws:iam::123456789012:role/ECSGatewayRole \
  --configuration  '{
    「HostSharedAlb」: {
      "networkConfiguration": {
        "subnets": [
          「subnet-080779f9bd887757a」,
          「subnet-03d5b2fead6bc6258」,
          「subnet-0861210a397d31252」,
          「subnet-06539e194023cb77a」
        ],
        「ipAddressType」: 「ipv4」
      },
       「scheme」: 「internet-facing」
    }
  }'

ゲートウェイを作成したら、詳細な構成、ゲートウェイルート、ロードバランサー、および関連するクラスターを確認できます。

次に、ゲートウェイを 1 つまたは複数のクラスター (多対多) に関連付けて、それらのクラスターの ECS サービスで使用できるようにします。

AssociateGatewayWithCluster を使用して、ゲートウェイをクラスター上のサービスで使用できるようにします。

aws ecs associate-gateway-with-cluster \ 
--gateway my-team-gateway \ 
--cluster arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster

API の呼び出しやドキュメントの検索など、ECS ゲートウェイをプログラムで作成・管理するには、お好みの AI コーディングツールで AWS MCP サーバーとプラグインを試してください。詳細については、 Amazon ECS ゲートウェイのドキュメントをご覧ください。

ECS ゲートウェイ:舞台裏
ゲートウェイは最大 10,000 個のクラスターに関連付けることができ、1 つのクラスターは最大 5 つのゲートウェイアソシエーションをサポートします。この多対多リレーションシップにより、プラットフォームチームは複数の環境間でゲートウェイを共有したり、単一のクラスターに複数のゲートウェイ (パブリックとプライベートなど) を割り当てたりする柔軟性が得られます。

プラットフォームチームは、どのゲートウェイをどのクラスターに関連付けるかを選択することでアクセスを制御できます。さらに制御するには、IAM ポリシーを使用して、特定のクラスターにサービスをデプロイできるユーザーを制限します。

アプリケーションチームは、 CreateService または UpdateService の各サービス定義にゲートウェイコネクタを追加します。独自のロードバランサーを備えた既存のECSサービスがある場合は、UpdateServiceを呼び出してゲートウェイコネクタを追加することで、ECS Gatewayを段階的に採用できます。どちらの入力パスも引き続き利用できるため、既存のロードバランサー設定を削除する前にゲートウェイ接続を検証できます。

aws ecs create-service \ 
  --cluster my-cluster \ 
  --service my-api-service \ 
  --task-definition my-api-service:1 \ 
  --gateway-connectors 『[{ 「portName」: 「api」, 「filters」: {「accessTypes」: [「PUBLIC」]}, 「healthCheck」: {...} }]』

デプロイ時に、Amazon ECS はクラスターに関連するゲートウェイを評価し、互換性のあるすべてのゲートウェイにサービスを接続します。ゲートウェイは、アクセスタイプがサービスのコネクタフィルターと一致し、サービスと同じ VPC にあり、サービスの設定済みサブネットで使用されるすべてのアベイラビリティーゾーンをカバーしている場合に互換性があります。

接続ごとに、Amazon ECS は利用可能な容量がある ALB にサービスを割り当て、サービスごとのリソースをプロビジョニングします。これらのリソースとは、ACM 証明書、一意の DNS ホスト名、そのホスト名のトラフィックをサービスターゲットグループにルーティングするリスナールール、および ALB セキュリティグループからのインバウンドトラフィックのみを許可するサービスセキュリティグループです。既存の ALB に容量の空きがない場合、ECS は新しい ALB を作成します(クォータ制限に基づき、最大でmaxAlbCountまで作成可能です)。プロビジョニングが完了すると、ゲートウェイルートは ACTIVE になり、サービス URL はトラフィックを受信できるようになります。

ECS Gateway は、一般的な運用シナリオを自動的に処理します。

  • 再デプロイ:デプロイのたびに、ECSはゲートウェイの関連付けを再評価します。前回のデプロイ以降、互換性のある新しいゲートウェイが関連付けられている場合、サービスはそれらに接続します。ゲートウェイの関連付けが解除されると、サービスは切断され、ルートは削除されます。サービスには、デプロイ時に常にクラスターゲートウェイの現在の状態が反映されます。
  • サービスの削除: ECS は、すべてのゲートウェイからサービスを自動的に切断し、すべてのゲートウェイルートを削除し、サービスごとのすべてのリソースをクリーンアップします。サービスが ALB の最後のルートを保持していた場合、その ALB はプロビジョニング解除されます。

知っておくべきこと
覚えておくべき重要な詳細は次のとおりです。

  • ネットワーク: ECS ゲートウェイは、すべての起動タイプ (Amazon ECS EC2、AWS Fargate、ECS マネージドインスタンス) で awsvpc ネットワークモードを使用する ECS サービスで使用できます。サービスアベイラビリティーゾーン (AZ) は、クラスター上の各ゲートウェイの AZ のサブセットである必要があります。ゲートウェイ ALB は、サブネットがある AZ 内のタスクにのみトラフィックをルーティングします。同じ AZ セットを使用して特定のクラスターのゲートウェイとサービスを作成することをお勧めします。
  • キャパシティ:maxAlbCountに達しても、使用可能なキャパシティがあるALBがない場合、デプロイは失敗します。maxAlbCount のデフォルトのクォータ制限は 10 です。maxAlbCount の設定は、接続する予定のサービスの数に合わせて計画してください。
  • オブザーバビリティ:CloudWatch の ALB メトリクスを TargetGroup ディメンションとともに使用してサービスごとのトラフィックをモニタリングし、 LoadBalancer ディメンションを使用して共有 ALB 全体のトラフィックをモニタリングします。describe-target-health を使用して、ターゲットのステータスをリアルタイムで確認します。CloudWatch アラームを、HealthyHostCount、TargetResponseTime、HTTPCode_Target_5XX_Count などのメトリックスに対して設定し、ゲートウェイ ARN ベースのタグ付けを使用することで、モニタリングが maxAlbCount に合わせて自動的にスケーリングするようにします。

今すぐご利用いただけます
Amazon ECS ゲートウェイは、ECS が追加料金なしで利用できるすべての商用 AWS リージョンでご利用いただけるようになりました。サービスがゲートウェイに接続されたときに、該当する ALB 料金、CloudWatch ログとメトリックス、ACM 証明書、データ転送料金など、アカウントにプロビジョニングされた基盤インフラストラクチャの料金のみをお支払いいただきます。詳細については、Amazon ECS の料金ページをご覧ください。

開始するには、今すぐ ECS コンソールで最初のゲートウェイを作成し、フィードバックを AWS re: Post for ECS に送信するか、通常の AWS サポート担当者を通じて送信してください。

– Channy

原文はこちらです。