VPC Latticeを使ってEC2インスタンス間のサービスネットワークを作成してみた。

VPC Latticeを使ってEC2インスタンス間のサービスネットワークを作成してみた。

Clock Icon2023.08.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

概要

VPC Lattice は、複数のアカウントおよび VPC 間でサービス (EC2 インスタンス、コンテナ、Lambda 関数) を接続するために使用できる Amazon VPC の機能です。VPC Lattice は、VPC とアカウント間のネットワーク接続を自動的に処理します。VPC Lattice は、IPv4、IPv6、および重複する IP アドレス間のネットワーク アドレス変換も処理します。

この記事では、2 つの異なる VPC にある 2 つの EC2 インスタンス間にネットワークを作成してみました。

 

やってみた

前提条件

  • 2 つの異なる VPC に 2 つのインスタンスを作成しておきます。
    • 例: (VPC1の Test Instance 1と VPC2の Test Instance 2)
  • HTTP リクエストに対して「Hello from Instance 1」と応答するインスタンス 1 と「Hello from Instance 2」と応答するインスタンス 2 に Web アプリを作成しておきます。
  • VPC Lattice AWS-managed プレフィックスリストからの HTTP トラフィックを許可する受信ルールをセキュリティ グループに追加しておきます。
  • CloudWatch ログ グループ [vpc-lattice-logs] を作成しておきます。

 

VPC Lattice のターゲットグループの作成

  • VPC コンソールの [VPC Lattice] セクションから [Target groups] を選択し、[Create target group] をクリックしておきます。

 

  • ターゲット タイプとして [Instances] を選択しておきます。

 

  • ターゲット グループの名前を入力し、プロトコルとして HTTP を選択し、ポートとして 80 を入力しておきます。インスタンス 1 は VPC1 にあるため、VPC1 を選択し、プロトコル バージョンとして HTTP1 を選択しておきます。

 

  • ヘルスチェックはデフォルトのままにして [Next] をクリックしておきます。[Test Instance1] をターゲットとして登録しておきます。

 

  • 同様に、VPC2 にある [Test Instance 2] のターゲット グループを作成しておきます。

 

サービスネットワークの作成

  • VPC コンソールの [VPC Lattice] セクションから [Service networks] を選択し、[Create service network] をクリックしておきます。

 

  • サービス ネットワークの名前を入力しておきます。

 

  • 両方の VPC をサービス ネットワークに関連付けます。他の設定はデフォルトのままにして、サービス ネットワークを作成しておきます。

 

VPC Lattice サービスの作成

  • VPC コンソールの [VPC Lattice] セクションから [Services] を選択し、[Create service] をクリックしておきます。

 

  • サービス名を入力し、必要に応じて説明を入力しておきます。

 

  • [AWS IAM]を 認証タイプとして選択し、 [Apply policy template] を選択しておきます。アクセス ログを有効にし、ログの宛先として CloudWatch を選択し、以前に作成したログ グループを選択しておきます。

 

  • 以下の設定でリスナーを追加しておきます。
    • Protocol : HTTPS, Port: 443
    • Default Action :
      • test-instance-1-target, weight : 30 (75%)
      • test-instance-2-target, weight : 10 (25%)

 

  • 前の手順で作成したサービス ネットワークをサービスに関連付けます。他のすべての設定はデフォルトのままにして、VPC Lattice サービスを作成しておきます。

 

 

確認する

  • VPC の 1 つに EC2 インスタンスを作成して、ネットワークをテストします。インスタンスに接続し、サービス ドメイン名を指定してcurlコマンドを実行しておきます。以下に示すように、インスタンス 1 からの応答の 4 分の 3 とインスタンス 2 からの応答の 4 分の 1 を取得します。

 

  • サービスの詳細については、ログ グループを確認でsきます。

 

まとめ

VPC Lattice を使用すると、サービス ネットワークの作成と管理、サービス ネットワークの監視と共有が容易になります。VPC Lattice では、サービスがプロビジョニングされる時間、各サービスを通じて転送されるデータ量、リクエストの数に対して料金を支払います。

Reference:

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.