4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Japan AWS Jr. ChampionsAdvent Calendar 2024

Day 16

Amazon VPC Latticeを簡易アーキテクチャで解像度を上げてみる

Last updated at Posted at 2024-12-17

はじめに

こんにちは。
Amazon VPCサービスはアップデートが盛んに行われており、最新のre:Inventのセッションでは、たくさんのコンポーネントがあるアーキテクチャが展開されました。

re:Invent 2024セッション "Amazon VPC: Advanced design and what’s new (NET301)"
image.png

Private Link・Trangit Gateway・Cloud WANなどなどたくさんありますね笑
今回はその中でも、2023年3月31日にGAされたVPC Latticeに注目します。

VPC Latticeとは?

Amazon VPC Latticeは、アプリケーションのサービスの接続・保護、モニタリングに使用する、フルマネージド型アプリケーションネットワーキングサービスです。VPC Latticeは、単一の仮想プライベート (VPC)、または1つ以上のアカウントの複数のVPCで使用できます。

AWS公式サイトより引用。

各VPCをマイクロサービスと置き換えて、レガシーサービスからの接続課題を解決ソリューションであることが読み取れます。

構築するアーキテクチャ

今回の内容では、下記のアーキテクチャを構築しました。

image.png

特にお伝えしたい構成の特徴4選

  • Client VPC, Target VPC-A/VPC-BのCIDR重複を許容 (アカウント跨ぎ可)
  • EC2のほかにEKS/ECS・Lambdaを許容
  • CloudWatch/S3へのログ出力可
  • 各ターゲットレベルでセキュリティ設定可 (IAMの一次認証コードも可)

主要なコンポーネント

※実際に作成する場合は、Target Group⇒Service⇒ListenerRule⇒Service NetWorkで作成される順番がWorkShopでは提示されていました。

  • Service Network
    • 論理的なアプリケーション層ネットワークの境界
    • VPCやアカウントを跨いでクライアントとサービスを接続
  • Service
    • 単一のアプリケーションユニット (今回の場合はvirtual-server-group/lambda-groupの2つで作成しました)
  • Listener Rule (Sericeの中で作成)
    • メソッドコンディション・パスコンディション・ヘッダーコンディションを選択可 (今回の場合はvirtual-target-groupのServiceで複数のTarget Groupがあるので、メソッド属性で区切りました)
    • 各ターゲットグループへの重みづけも可能
  • Target Group
    • Instance, IP addresses, Lambda function, Application Load Balancerが選択できる (EC2のターゲットグループと同じ)、今回の場合はTarget-VPC-A/Target-VPC-B/Lambdaで3つ作成

最終的にVPC Latticeのリソースページは下記の内容で構築されます。

image.png

  1. Serivce Association: Serviceの接続を設定する箇所
  2. VPC associations: Client VPCを設定する箇所
  3. Domain name: (VPC Latticeの大きな特徴)各Serviceにドメインが割り振られる。Target側はアップデートをしても、Client側では設定を変える必要はない
    ※Service Networkでバージョンによる、重みなどは設定する必要はあるかも

いざ、接続!

  • 事前準備
    • Client VPCのEC2にSSM Session Managerで接続
    • TargetのService
      • Lambda Gruopは、初期設定の{statusCode: 200, body: "Hello from Lambda!}"を返却想定
      • Virtual Server Groupは、Apacheを起動させており、HTMLを返却想定

HTTP/S・リンクローカルアドレス169.254.0.0/16をService NetworkのClient VPC設定時に関連付けるセキュリティグループないしEC2やALBは、許容しておく必要があります。
もしくはマネージドプレフィックスとして、com.amazonaws.region.[ipv6].vpc-latticeを選択する。セキュリティグループでプルダウンで出てきます。

image.png

  • Lambda編
    • VPC Latticeで出力されたドメインからcurlを実施すると返却
      curl -vを付け足すことでIPv4の169.254.171.161のリンクローカルアドレスに変換されている様子が確認できました

image.png

  • Virtual Server編
    • Lambdaと同様に、VPC Latticeで出力されたドメインからcurlを実施すると返却
    • 同じServiceでリスナールールをメソッド属性でターゲットグループを分けたため、同じURLでもEC2単独とALB配下に振り分けることを確認

image.png

image.png

最後に

今回はVPC Latticeについて、簡易的なアーキテクチャを用いてサービスの解像度上げを試みました。これまでにもそれぞれのVPCを接続するソリューションは提供されていましたが、VPC Latticeは各VPCをマイクロサービスとして利用するためにCIDRの重複を気にしなくてよい点・ドメインで接続できる点などから、各VPCをマイクロサービス化して共有する取っ掛かりにできると思いました。

こちらの内容が理解の一助になれれば幸いです!最後まで読んでいただき、ありがとうございました!

参考URL

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?