Amazon Web Services ブログ

Amazon VPC Lattice に組み込まれた Amazon ECS サポートを使用して、コンテナアプリケーションネットワーキングを合理化

Amazon VPC Lattice は、リリース以来、複雑なネットワーキングタスクを効率化してきました。その結果、最新のマルチサービスアプリケーションの構築および接続方法に関する私の見方が変わりました。同僚の Danilo は、VPC Lattice の一般提供の開始を発表した記事で次のように書いています。

「VPC Lattice を使用して、インスタンス、コンテナ、サーバーレスコンピューティングを一貫してサポートすることで、アプリケーションロジックに集中し、生産性とデプロイの柔軟性を向上させることができます」

11 月 18 日、Amazon VPC Lattice の Amazon Elastic Container Service (Amazon ECS) 向けの組み込みサポートを発表しました。この新しい組み込み統合により、中間ロードバランサーを必要とせずに、Amazon ECS サービスを VPC Lattice ターゲットグループに直接関連付けることができるようになりました。

Amazon ECS サービスの作成中に Amazon VPC Lattice 統合を見つける方法を簡単に説明します。

Amazon VPC Lattice と Amazon ECS の統合は、サービス内の ECS タスクの IP アドレスを、VPC Lattice ターゲットグループのターゲットとして登録および登録解除することによって機能します。サービスのために ECS タスクが起動されると、Amazon ECS はそれらのタスクを VPC Lattice ターゲットグループに自動的に登録します。

さらに、ECS タスクが VPC Lattice ヘルスチェックに失敗した場合、Amazon ECS はタスクを自動的に置き換えます。また、タスクが終了またはスケールダウンした場合、そのタスクはターゲットグループから削除されます。

Amazon VPC Lattice 統合の使用
この新しい統合の使用方法を説明します。次のデモでは、ECS サービスとして実行されるシンプルなアプリケーションサーバーをデプロイし、VPC Lattice との統合を設定します。その後、Amazon ECS で追加のロードバランサーを設定することなく、VPC Lattice ドメイン名に接続することによってアプリケーションサーバーをテストします。

この統合を開始する前に、ターゲットを VPC Lattice に登録および登録解除するために必要な許可が Amazon ECS に付与されていることを確認する必要があります。詳細については、「Amazon ECS インフラストラクチャ IAM ロール」ドキュメントページにあくせすしてください。

VPC Lattice との統合を使用するには、少なくとも 1 つのコンテナと 1 つのポートマッピングを含むタスク定義を定義する必要があります。これは私のタスク定義の例です。

{
    "containerDefinitions": [
        {
            "name": "webserver",
            "image": "public.ecr.aws/ecs-sample-image/amazon-ecs-sample:latest",
            "cpu": 0,
            "portMappings": [
                {
                    "name": "web-80-tcp",
                    "containerPort": 80,
                    "hostPort": 80,
                    "protocol": "tcp",
                    "appProtocol": "http"
                }
            ],
            ...
            *redacted for brevity*
}

その後、ECS クラスターに移動して、[作成] を選択します。

次に、タスク定義を選択し、サービス名を割り当てる必要があります。

VPC Lattice 統合セクションで、[VPC Lattice をオンにする] を選択して、VPC Lattice のターゲットグループの設定を開始します。VPC Lattice を使用するため、ロードバランサーを指定する必要はありません。デフォルトでは、VPC Lattice はラウンドロビンルーティングアルゴリズムを使用して、正常なターゲットにリクエストをルーティングします。

これで、VPC Lattice で ECS サービスの統合の定義を開始できます。まず、Amazon ECS のインフラストラクチャロールを選択します。それから、サービスを実行する仮想プライベートクラウド (VPC) を選択する必要があります。その後、トラフィックを受信する [ターゲットグループ] を定義する必要があります。VPC Lattice 統合を使用してサービスの設定が完了したら、このサービスを作成します。

数分後、ECS サービスの準備が整います。サービスに移動し、[設定とネットワーキング] を選択します。[VPC Lattice] セクションまで下方向にスクロールすると、作成された VPC Lattice ターゲットグループが表示されます。

このターゲットグループの詳細を取得するために、ターゲットグループ名を選択すると、VPC Lattice ターゲットグループページにリダイレクトされます。ここで、Amazon ECS が実行中のタスクの IP アドレスを正常に登録したことを確認できます。

ここで、VPC Lattice サービスとサービスネットワークを作成する必要があります。個人的な好みとして、VPC Lattice サービスを作成し、後で VPC Lattice サービスネットワークに関連付ける方法を常に採用しています。そのため、今回はその方法で進めましょう。

[VPC Lattice] セクションで [サービス] を選択し、[サービスを作成] を選択します。

VPC Lattice サービスを作成するために必要なすべての詳細を入力し、[次へ] を選択します。

その後、リスナーを追加し、[リスナーのデフォルトアクション][ターゲットグループに転送] で、新しく作成したターゲットグループを選択します。

次のページでは、後で VPC Lattice サービスネットワークを作成するため、このステップをスキップして [次へ] を選択し、設定を確認してサービスを作成します。

VPC Lattice サービスが作成されたので、次は VPC Lattice サービスネットワークを作成します。[VPC Lattice] セクションの [サービスネットワーク] に移動して、[サービスネットワークを作成] を選択します。

まず、VPC Lattice サービスネットワーク名を入力します。

その後、[サービスの関連付け] ページで、作成したサービスを選択します。

このサービスネットワークを VPC とセキュリティグループに関連付けます。

このデモをシンプルにするために、[認証タイプ][なし] を設定しました。ただし、IAM を使用して VPC Lattice へのアクセスを管理する方法についてお読みいただくことを強くお勧めします。その後、[サービスネットワークを作成] を選択します。

この段階で、この統合のセットアップはすべて完了しています。これで、VPC Lattice サービスネットワークが、VPC Lattice サービスと VPC に関連付けられました。

すべてのセットアップが完了したら、VPC Lattice サービスページから [ドメイン名] をコピーします。

その後、サービスにアクセスするには、同じ VPC 内のインスタンスにログインし、VPC Lattice のドメイン名を使用してサービスを呼び出します。

[ec2-user@ ~]$ curl http://service-a-XYZ.XYZ.vpc-lattice-svcs.XYZ.on.aws

"Hello there! I'm Amazon ECS."

なお、Amazon ECS ワークロードへのトラフィックを受信していない場合は、「Control traffic in VPC Lattice using security groups」ドキュメントページの説明に従ってセキュリティグループを確認してください。

私は個人的に、この統合に期待を寄せています。なぜなら、この統合は、アプリケーションアーキテクチャを合理化し、システム全体の信頼性を高めながら、さまざまな可能性を解き放つものだからです。現在、すべての AWS コンピューティングタイプが VPC Lattice で本質的にサポートされているため、すべての ECS クラスター、AWS アカウント、および VPC でサービスを統合できます。

知っておくべきこと
ここで、重要な点をいくつかご紹介します。

  • 利用可能なリージョンAmazon VPC Lattice と Amazon ECS の統合は、Amazon VPC Lattice と Amazon ECS が利用可能な AWS リージョンでご利用いただけるようになりました。
  • 互換性 – この統合は、Amazon Elastic Compute Cloud (Amazon EC2)AWS Fargate を含む、すべての ECS 起動タイプをサポートしています。
  • 料金 – 標準の VPC Lattice および Amazon ECS の料金が適用されます。この統合の使用には追加料金はかかりません。
  • Amazon VPC Lattice のモニタリング – Amazon VPC Lattice サービスネットワーク、サービス、ターゲットグループ、および VPC の接続をモニタリングする方法については、「VPC Lattice ユーザーガイド」の「Monitoring Amazon VPC Lattice」をご覧ください。

今すぐ Amazon VPC Lattice のこの新しい機能を試して、Amazon ECS で実行されているコンテナアプリケーション通信を合理化できるかどうかをご確認ください。

構築がうまくいきますように。

Donnie Prakoso

原文はこちらです。