Direct Connect(PrivateVIF)とTransitGatewayを使ってオンプレからVGWがあるVPCを通って別VPCへの通信はできるのか

プロキシを用意すれば要件によってはできるが、TransitVIFや別VPCにもVGWを用意するのがベター
2022.12.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

  • 前提: Direct Connect(PrivateVIF)を使って、オンプレとAWS環境を接続している
  • オンプレ -> VGW -> VPC A(VGWがあるVPC) -> TransitGateway -> VPC B(VGWなし)の経路で疎通できる?

DXGW(Direct Connectゲートウェイ)あたりのVGW(仮想プライベートゲートウェイ)の数は、クォーターが10という制限があります。

上記が実現できれば、DXGWに関連づけるVGWの数を節約できるのではと思いました。

AWS Direct Connect のクォータ - AWS Direct Connect

しかし、結論としてはVGWでVPC Bの通信が破棄されるので疎通できません。

一応、プロキシをアカウントA側に用意すれば疎通はできますが、通信要件によっては複雑化してしまうと思います。 そのため、TransitVIFの利用またはアカウントB VPCにもVGWを用意した方がシンプルな構成にできると思います。

疎通NGパターン

オンプレ拠点とアカウントAはDirect Connectで接続されています。 オンプレ拠点からアカウントAのDirectConnectとTransitGatewayを通って、アカウントBのEC2に疎通するといったものです。

しかし、この構成は実現できません。

VGWでアカウントBの通信が破棄

オンプレからは、アカウントBのCIDR範囲に対して通信をしようとします。 しかし、VGWではVGWにアタッチされているVPC(アカウントA)のCIDR以外は破棄されます。

そのため、アカウントBのCIDR範囲に関する通信はVGWで破棄されてアカウントBまでは到達できません。

許可されたプレフィックスのインタラクション - AWS Direct Connect

疎通OKパターン

以下の方法であれば、疎通が可能です。 オンプレ環境からアカウントBのVPCにも疎通したい場合は、以下のような方法で実現可能です。

  • アカウントB VPCにもVGWを用意してDXGWを関連付ける
  • TransitVIFを使ってDXGWにTransit Gatewayを関連づける

アカウントB VPCにもVGWを用意してDXGWを関連づける

一番最初に思いつくシンプルなパターンだと思います。

関連づけるVPCの数が少なく、DXGWの関連付けれるVGWの数に空きがある場合は、こちらの方法を採用するのが早そうです。

(AWS側の制限である「1つのDXGWに関連付けられるVGWの数:10」が、関連づけるVPCの数が多いか少ないかの基準になるかと思います。)

逆に関連づけるVPCの数が多い場合は、次に紹介する「Transit VIFを使ってDXGWにTransit Gatewayを関連づける」がおすすめです。

Transit VIFを使ってDXGWにTransit Gatewayを関連づける

Transit VIFを使うことで、DXGWにTransit Gatewayを関連づけることができます。

具体的な設定内容やPrivate VIFからの移行手順は、以下のブログが参考になります。

AWS Direct Connect + AWS Transit Gateway - Amazon Virtual Private Cloud の接続オプション

その他 アカウントA側にプロキシを用意する

オンプレ -> VGW -> VPC A(VGWがあるVPC) -> TransitGateway -> VPC B(VGWなし)パターンをどうしても使いたい場合は、アカウントA側にプロキシを用意することで実現できます。

ここでは、NLBをプロキシ的に利用するパターンを紹介します。

以下の記事の「2. DX用のVPCにNLBを配置。VPC間はTGW」の構成となります。

オンプレとの通信が必要なサーバのフロントにNLBを設置するといった方法です。

サーバの数だけ、NLBが必要になるためNLBの費用がかさむことに注意が必要です。

“共有型”AWS DirectConnectでも使えるAWS Transit Gateway | Amazon Web Services ブログ

通信要件によっては、用意するプロキシの維持コストが高くなる可能性もあります。 そのため、個人的には先に紹介した2つの方法を採用可能かを先に検討するのが良いかと思います。

おわりに

複数VPCをDXを使ってオンプレと繋げたい場合に、疎通できないパターンと疎通できるパターンの構成をそれぞれ紹介しました。

以下の記事では、他にもNLBとインターフェイスエンドポイント組み合わせる方法やそれぞれの方法の詳細な比較が記載されています。 方式に迷った場合は、一読することをおすすめします。

“共有型”AWS DirectConnectでも使えるAWS Transit Gateway | Amazon Web Services ブログ

以上、AWS事業本部の佐藤(@chari7311)でした。