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

2023.08.29

概要

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: