VGW を利用したサイト間 VPN を Transit Gateway に切り替えてみた
こんにちは。米須です。
今回は Transit Gateway の検証のため、VGW を利用していたサイト間 VPN を Transit Gateway に切り替えてみました。
変更前・変更後の構成
左が変更前の構成で、AWS とオンプレの間を VGW を使用したサイト間 VPN で接続しています。
右が変更後の構成で、VGW の代わりに Transit Gateway を配置しています。
Transit Gateway に切り替えてみる
① Transit Gateway を作成する
まず最初に Transit Gateway を作成します。
今回は Transit Gateway に対し1つの VPC しか紐づけていませんが、複数の VPC を紐づけるようになった時に VPC 間のルーティングをコントロールできるようにしたかったので、「デフォルトルートテーブルの関連付け」と「デフォルトルートテーブルの伝播」のチェックを外しました。
必要な項目を設定したら「Transit Gateway を作成」ボタンを押して Transit Gateway を作成します。
(2022/3/11 補足)
画像では「VPN ECMP サポート」にチェックが付いていますが、このオプションが使えるのは動的ルーティングの場合のみのようです。
トランジットゲートウェイを作成する
8. [VPN ECMP サポート]
https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html

② VGW から Transit Gateway に切り替える
Transit Gateway で VPN のアタッチメントを作成することで新しい VPN を作成することも可能ですが、今回は既にサイト間 VPN があるので、サイト間 VPN に紐づいている VGW を Transit Gateway に変更します。
VPN 変更の前に、静的ルートが設定されている場合は先に削除してください。

では、VPN 接続を変更していきます。
サイト間 VPN の画面で既存のリソースを選択し、アクションにある「VPN接続を変更する」を選択します。

ターゲットタイプとして「Transit Gateway」を選択し、ターゲット Transit Gateway には ① で作成した Transit Gateway を選択します。
「変更を保存」ボタンを押すとサイト間 VPN の変更が発生します。

サイト間 VPN の画面を見ると、状態が「Modifying」となっており、「Available」に変わるまでに5分ちょっとかかります。先ほどと違い、詳細に表示されている仮想プライベートゲートウェイが「-」となり、Transit Gateway に Transit Gateway ID が表示されています。

また、このタイミングで VPN のトンネルがダウンするのでアップさせ、VPN 接続画面のステータスも「Up」になるのを確認します。

このとき、リソースタイプが「VPN」の Transit Gateway アタッチメントが自動的に作成されます。
(Name タグは作成後に設定しました)

③ Transit Gateway と VPC を紐づける
ここで Transit Gateway と紐づける VPC 内に Transit Gateway 用のプライベートサブネットを作成しておきます。(変更後構成図の「Transit Gateway 用サブネット」)
サブネットが作成できたら、アタッチメントタイプを「VPC」としてアタッチメントを作成し、「Transit Gateway 用サブネット」を指定して VPC を紐づけます。

これにより、Transit Gateway に VPN と VPC が紐づきました。

④ ルートテーブルの作成
次にルートテーブルを作成します。
今回は VPN 用、VPC 用の各アタッチメントに対し、1つずつルートテーブルを紐づけます。まずは VPN 用アタッチメントに関連づけるルートテーブルから作成していきます。

作成したルートテーブルを VPN 用アタッチメントに関連付けます。

VPN の通信先となる VPC の CIDR と VPC 用アタッチメントを静的ルートとして設定します。


同様に VPC 用アタッチメントと関連づけるルートテーブルを作成します。静的ルートには、オンプレの CIDR と VPN 用アタッチメントを設定します。

⑤ 業務用サブネットのルートテーブルを Transit Gateway に変更
これまで業務用サブネットに紐づくルートテーブルでは、オンプレ向けのルートとして VGW が設定されていたので、これを Transit Gateway に変更します。
これで変更作業は完了なので、疎通確認をしてみましょう。
さいごに
今回 VPC用、VPN 用アタッチメントに異なるルートテーブルを設定したように、Transit Gateway では複数のルートテーブルが設定できるのでより柔軟なルーティングが可能になります。VPC 間のトラフィックをインライン監査するようなルーティングも可能になるようなので、色々な構成を試してみたいです。