VMware Cloud on AWSのConnected VPCでカスタムルートテーブルを使いたい

「AWS管理対象プレフィックスリストモード」を有効化するとVMware Cloud on AWSによって管理されるマネージドプレフィックスリストが作成されます。このマネージドプレフィックスリストを用いてカスタムルートテーブルのルートを設定しましょう。
2023.11.21

大家好,AWS事業本部の西野です。

SDDCの設定がデフォルト状態である場合、Connected VPC内でSDDCと通信するサブネットはすべてメインルートテーブルに関連付けられている必要があります。NSXにてセグメントが追加されたタイミングで当該セグメントへのルートがメインルートテーブルへ動的に追加されるためです。

それでもカスタムルートテーブルを使いたい

とはいえ、カスタムルートテーブルを使いたいケースがあります。
たとえば、サブネットを役割ごとにパブリックサブネット / プライベートサブネットとして分割したり、SDDCと通信するサブネットとそうでないサブネットを分割したりするケースです。

これを実現するためにはAWS管理対象プレフィックスリストモード(AWS Managed Prefix List Mode)を有効化する必要があります。
このAWS管理対象プレフィックスリストモードについて、VMware Docsには以下のように記載されています。

AWS 管理対象プリフィックス リスト モードを使用すると、マルチエッジ SDDC でルート テーブルの管理を簡素化し、任意の SDDC でカスタムのルート テーブルとルート集約のサポートを使用できるようになります。

VMware Cloud on AWS で接続中の VPC の AWS 管理対象プリフィックス リストを有効にすると、デフォルトのコンピューティング ゲートウェイ プリフィックスとユーザー自身が作成した他のプリフィックス リストが集約されて、ポピュレートされた AWS プリフィックス リストが作成されます。このリストは、[接続中の Amazon VPC] 画面に表示される [AWS アカウント ID] と共有されます。この AWS リソース共有を受け入れると、接続中の VPC ルート テーブルにプリフィックス リストを追加できるようになります。

接続中の Amazon VPC の AWS 管理対象プリフィックス リスト モードの有効化

こちらを読むだけではいまいち理解できなかったので実際に有効化を試し各種リソースをのぞいてみました。

前提条件

  • SDDCに関連するリソースをすべてアジア・パシフィック(大阪)リージョン / ap-northeast-3に作成しています。
  • SDDC のバージョンは 1.24 です。
  • メインルートテーブルのルートは以下のとおりです。
    • 10.3.0.0/16: Connected VPC
    • 10.4.0.0/16: SDDC管理サブネット
    • 192.168.1.0/24: SDDCに作成済みのセグメント

AWS管理対象プレフィックスリストモードの有効化

NSXコンソールの操作

NSXコンソール → ネットワーク→ 接続済み Amazon VPCの画面においてプレフィックスリストモードのトグルボタンをクリックします。

有効化をクリックします。

すると、トグルボタンがあった場所に「アクションを保留中」と表示されます。少しだけ待ってからここをクリックすると、managed-prefix-list-resource-share-vpcから始まる名称のリソース共有を受け入れるよう促されます。
ここからは先はConnected VPCが存在するAWSアカウントのマネジメントコンソールにサインインして操作します。

AWSマネジメントコンソールの操作

AWS Resource Access Managerコンソール →リソースの共有の画面において、NSXコンソールに表示されていたリソース名をクリックします。
このリソースはVMwareが管理しているAWSアカウントから共有されているものです。

「リソース共有を承認」をクリックします。

続いて「承認」をクリックします。

AWS管理対象プレフィックスリストモードの有効化はこれにて完了です。

各種のリソースをながめてみる

マネージドプレフィックスリスト

AWS Resource Access Managerコンソール → 共有リソースの画面にて、承認した共有リソースのIDをクリックしてみましょう。

SDDC側に存在した2つのセグメントのCIDRがエントリーに含まれていることがわかります。
ここで、NSXコンソールから新しいセグメント(172.16.0.0/16)を作成してみました。そして少しだけ待って画面を更新すると……。

エントリーにこのセグメントのCIDRが追加されました。
AWS管理対象プレフィックスリストモードの有効化以後はこのマネージドプレフィックスリストを用いてルートテーブルのルートやセキュリティグループのルールを設定できます。

なお、本ブログの趣旨とはそれますが、マネージドプレフィックスリストを用いる際はAWS側のクォータにご注意ください。

リソース内でプレフィックスリストを参照する場合、プレフィックスリストのエントリの最大数は、リソースのエントリの数のクォータに対してカウントされます。例えば、エントリ数が 20 個のプレフィックスリストを作成し、セキュリティグループルール内でそのプレフィックスリストを参照する場合、セキュリティグループの 20 個のルールとしてカウントされます。

マネージドプレフィックスリストを使用して CIDR ブロックをグループ化する - Amazon Virtual Private Cloud

本ブログ執筆時点(2023年11月)におけるデフォルトのクォータはそれぞれ以下のとおりです。

セキュリティグループあたりのルール数(Inbound or outbound rules per security group): 60
ルートテーブルあたりのルート数(Routes per route table): 50

メインルートテーブル

メインルートテーブルに個別に設定されていたSDDC側のルートは削除され、マネージドプレフィックスリストにまとめられています。

NSXコンソール(接続済み Amazon VPC)

有効化時に利用した画面に戻ると、トラフィックグループの欄にマネージドプレフィックスリストに関する情報が追加されています。

NSXエッジ(ホスト)の障害発生時にはこれらの情報を利用してマネージドプレフィックスリストが使用されているルートの宛先ENIを変更するようです。

In addition, the route table entries for that prefix list are updated to point to the correct ENI whenever the active Edge instance's host changes.

Enable AWS Managed Prefix List Mode for the Connected Amazon VPC

参考

Software-Defined Data Center (SDDC) の展開と管理
接続中の Amazon VPC の AWS 管理対象プリフィックス リスト モードの有効化
Understanding Managed Prefix List Mode for Connected VPC in VMC on AWS | VMware
マネージドプレフィックスリストを使用して CIDR ブロックをグループ化する - Amazon Virtual Private Cloud

終わりに

このブログがほんの少しでも世界を良くできれば嬉しいです。 AWS事業本部の西野 (@xiyegen) がお送りしました。