LoginSignup
2
0

VPC Latticeってどんなサービス?

Last updated at Posted at 2023-05-30

はじめに

今回はVPC Latticeについて調べた内容をまとめます。

VPC Latticeとは

VPC Latticeは、サービス間の通信を一貫して接続、監視、保護するアプリケーションレイヤーサービスです。

公式ドキュメントには以下のように記載されているように、アプリケーション間の通信をターゲットにしたサービスとなります。

最新のアプリケーションは、マイクロサービスと呼ばれることが多い、複数の小規模でモジュール化されたサービスで構成されます。近代化には利点がありますが、レガシーサービスに関連するネットワーキングが複雑になり、課題が生じる可能性もあります。これは多くの場合、これらのアプリケーションを構築する開発者がさまざまなコンピューティングニーズを持つさまざまなチームに分散しているためです。その結果、複数のアカウント、VPC、あるいはその両方にまたがってマイクロサービスを構築してデプロイします。
Amazon VPC Lattice は、マイクロサービスとレガシーサービスを論理的な境界内で相互接続するのに役立ち、より効率的に検出して管理できます

サポートされているプロトコルは現在(2023年5月30日)以下の3つとなります。

  • HTTP
  • HTTPS
  • gRPC

VPC Latticeは、異なるVPC、異なるAWSアカウントをまたがって設定可能です。
そのため、異なるVPC及びAWSアカウントにまたがるサービス間のネットワーク接続と、アプリケーションレイヤーのルーティングを自動的に管理することができます。

コンポーネント

VPC Latticeのコンポーネントについて紹介します。

image.png

サービスネットワーク

  • サービスとVPCを関連付けるためのコンポーネント
  • サービスネットワークに関連付けられたVPCは、そのサービスネットワークに関連付けられているサービスにリクエストを送信することができます。

サービス

  • クライアントアプリケーションからのリクエストを認証・承認し、ターゲットにルーティングします。
  • ほとんどALBのようなもので、以下の項目を設定できます。
    • リスナー:1つまたは複数のリスナーを任意のポート番号とプロトコルで構成
    • ルール:複数のターゲットグループに対して、パスベースルーティングやウェイトルーティングを構成
    • ドメイン:クライアントアプリケーションが送信先に指定するドメイン。カスタムドメインの設定も可能
    • サービスアクセス:クライアントアプリケーションをIAMおよび認証ポリシーで認証する。(※省略可能)

ターゲットグループ

  • サービスのルーティングで設定された、宛先となるアプリケーションインスタンスや、その前段のALB等
  • 指定可能なものは以下となります。
    • EC2インスタンス
    • IPアドレス
    • Lambda関数
    • Kubernetes Pod(Gateway Controller for Kubernetes経由で指定可能)

公式ドキュメントでは、各コンポーネントについて、以下のように図示されています。

image.png

構成

全体構成としては、このようになります。
image.png

ポイント

  • VPCをサービスネットワークに関連付けると、ルートテーブルに、サービスネットワーク向けのルートが自動で設定されます
  • ターゲットグループがあるVPCはサービスネットワークとは関連付けしません
  • サービスネットワーク、ターゲットグループどちらのセキュリティグループでも許可をしないと、関連付けられたVPCから接続できません
  • クライアントのリクエスト送信先は、サービスのドメインとなります
  • サービスにて設定したリスナールールに従い、ターゲットグループにリクエストをルーティングします
    image.png

VPC Latticeの注意点

  • Private Linkとの違い

    • Private Link:サブネット内に Elastic Network Interface を配置することで機能し、クライアントはネットワークトラフィックを宛先サービスにトンネリングするためにヒットさせます
    • VPC Lattice:サービスネットワーク内のエンドポイントをリンクローカルアドレスとして公開することで機能します
      → 送信元VPCと宛先VPCのCIDRが重複していても通信が可能
  • 管理/運用通信をターゲットにしたサービスではない

    • VPC Latticeはアプリケーション間の通信をサポートするサービスのため、踏み台サーバから各サーバへのSSH/RDPログインや、監視サーバからの監視通信などを目的に利用するサービスではありません。

VPC Latticeのユースケース

公式ドキュメントでは以下のユースケースが示されています。

・サービスを大規模に接続する
ネットワーク構成はシンプルなままに、VPCやアカウント全体で数千のサービスが接続可能です。

インフラをあまり気にせずにVPCやアカウントを接続できるのは便利ですね。

・きめ細かいアクセス許可を適用する
サービス間のセキュリティを強化し、一元化されたアクセスコントロール、認証、およびコンテキスト固有の承認により、ゼロトラストアーキテクチャをサポートします。

サービスネットワークとサービスにそれぞれ、IAMまたは認証ポリシーによる認証を行うことができます。

・高度なトラフィックコントロールを実装する
リクエストレベルのルーティングや、ブルー/グリーンおよび canary デプロイ向けの重み付けされたターゲットなど、きめ細かなトラフィックコントロールを適用します。

サービスの設定における、ルールにて細かいトラフィックコントロールを実現できます。

・サービス間のインタラクションを観察する
リクエストタイプ、トラフィック量、エラー、応答時間などについて、サービス間の通信をモニタリングおよびトラブルシューティングします。

モニタリング設定において、VPC Lattice Service に対するすべてのリクエストと、レスポンスのアクセスログを取得できます。

おわりに

今回は、以下の記事を参考に調査しました。

2
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
2
0