やさしい Transit Gateway の構築手順

AWS,TransitGateway,VPC

はじめに

  • 今回はTransit Gateway を使用する案件が予定されているため、Transit Gateway の概要(基本だけ)と、シンプルな構築手順をまとめます。
  • 何事も実際に手を動かしてみないと理解できません。先ず使ってみて、理解を深めていきましょう。

 

Transit Gateway とは

  • 最初に、Black Belt の資料を引用させて頂き、製品概要を理解します。
  • Transit Gateway は、仮想プライベートクラウド (VPC) とオンプレミスネットワークを相互接続する際に使用可能なネットワークの中継ハブです。従来は、VPC とオンプレミスネットワークを接続するために多大な時間と複雑な構成を必要としました。Transit Gateway を使用することで、クラウドネットワークを簡素化することが出来ます。

(出典: [AWS Black Belt Online Seminar] AWS Transit Gateway)

(出典: [AWS Black Belt Online Seminar] AWS Transit Gateway)

 

  • Transit Gateway は、VPC だけでなく、VPN やDirect Connect を接続することが可能です。Direct Connect を使う場合は、DXGW (Direct Connect ゲートウェイ) を一緒に使う必要があります。構成はこちらを参照して下さい。
  • Transit Gateway はアタッチメントごとにルーティングを管理し、規模の大きいネットワークを構成することが出来ます。デフォルトは、すべてのVPC間で通信可能。
  • 以下は、インターネットVPC にOutbound を集約した例になります。下図のDev, Test, Prod のVPC は、デフォルトルートにインターネットVPC (下図のOutbound Services)を指定します。インターネットVPC には、Internet Gateway, NAT Gatewayを配置します。

(出典: [AWS Black Belt Online Seminar] AWS Transit Gateway)

 

  • Transit Gateway はVPC間の接続やVPN接続、Direct Connect との接続を集約できる便利なサービスですが、接続数が少なければコストが高くなります。ルーティングの制御もTransit Gateway 以外で実現が出来ますので、集約前後のコストを比較した上でTransit Gateway を選択するか検討ください。

 

Transit Gateway の構築手順

今回検証したシステムの構成図

  • 検証のため、同一AWS アカウント内に、2つのVPC を作成。各VPC/Subnet に、EC2(Linux) を配置しています。
    • ※実案件であればVPC Peering を使用するケースですが、今回は手順確認が目的のため、VPC間の接続に Transit Gatewayを使用しています。

 

Transit Gateway を使用してVPC間を接続する手順

Transit Gateway の作成

  • AWSコンソールからVPC サービスを選択します。ナビゲーションペインからTransit Gateway を選択します。
  • 「Transit Gateway を作成」を選択します。

 

  • Nameタグを指定します。
  • Transit Gateway の設定にデフォルトで以下が選択されています。
    • Amazon 側の自律システム番号 (ASN)
      • デフォルトの ASN を使用するか、または Transit Gateway のプライベート ASN を入力する。
      • ASN は重複できません。他のTransit Gateway と接続する場合やDirect Connect を使用する環境でDXGWの ASN、DXGWと接続するオンプレミス環境のルーターの ASNと重複しない様に割り当てます。
    • DNS サポート
      • Transit Gateway にアタッチされた VPC の名前解決を有効にする。
    • VPN ECMP サポート
      • VPN を使用する環境でECMP (等コストマルチパスルーティング) を有効にする際に使用。
    • デフォルトルートテーブルの関連付け
      • Transit Gateway のデフォルトルートテーブルに Transit Gateway アタッチメントを自動的に関連付ける。
      • Transit Gateway配下の全てのVPC 間を通信許可とする場合は、有効で問題ありません。単一のVPC 間のみを通信許可とする場合は無効とし、デフォルトルートテーブルとは別にルートテーブルを作成します。後から別のルートテーブルに付け替え可能。
    • デフォルトルートテーブル伝播
      • Transit Gateway のデフォルトルートテーブルを使用して、Transit Gateway アタッチメントを自動的に伝播する。
      • Transit Gateway配下の全てのVPC 間を通信許可とする場合は、有効で問題ありません。単一のVPC 間のみを通信許可とする場合は無効とします。

 

  • クロスアカウント共有オプションの設定は、無効にします。(チェックを付けません)
    • アタッチメントを自動承諾させる(中央のAWS アカウントで承認不要)場合は、有効とします。
  • Transit Gateway CIDR ブロックは指定不要。(Transit Gateway Connect アタッチメントを使用する場合に必要)

 

  • Transit Gateway が作成されました。状態が Available になったことを確認します。

 

Transit Gateway ルートテーブルの作成

  • ナビゲーションペインから「Transit Gateway ルートテーブル」を選択します。
  • 今回はデフォルト設定を使用したため、Transit Gateway ルートテーブルは自動で作成されました。確認のみ行います。

 

Transit Gateway アタッチメントの作成

  • ナビゲーションペインから「Transit Gateway アタッチメント」を選択します。
  • 「Transit Gateway アタッチメントを作成」を選択します。

 

  • Nameタグを指定します。
  • Transit Gateway ID に先ほど作成したTransit Gateway を選択します。
  • アタッチメントタイプ に「VPC」を選択します。
  • 続いて、VPC アタッチメントを設定します。
  • VPC ID, Subnet ID を選択します。

 

  • Transit Gateway アタッチメントが作成されました。状態が Available になったことを確認します。
  • 検証に使用する2つ目のVPCに対するアタッチメントを同様に作成します。

 

Transit Gateway ルートテーブルにアタッチメントを関連付け

  • ナビゲーションペインから「Transit Gateway ルートテーブル」を選択します。
  • 今回はデフォルト設定を使用したため、Transit Gateway ルートテーブルにアタッチメントは自動で関連付けされました。関連付けタブを選択し、確認のみ行います。

 

Transit Gateway ルートテーブルに伝搬を設定

  • 今回はデフォルト設定を使用したため、Transit Gateway ルートテーブルの伝搬は自動で設定されました。伝搬タブを選択し、確認のみ行います。
  • この設定により、Transit Gateway をアタッチしたVPC → Transit Gateway ルートテーブルへルートが伝搬されます。
  • 次にルートタブを選択し、ルートが伝達されたことを確認しておきます。

VPC のルートテーブルにTGWルート追加

  • EC2 リソースが配置されているSubnet のルートテーブルに、Transit Gateway のルートを追加します。
  • 検証に使用する2つ目のVPC/Subnet のルートテーブルに対して、ルートを作成します。これで、VPC側のスタティックルートが設定できました。

 

VPC のセキュリティグループにインバウンドルール追加

  • EC2 リソースに設定されているセキュリティグループにインバウンドルールを追加します。送信元には、対向VPC の CIDR を指定しています。
  • 検証に使用する対向EC2 のセキュリティグループにもインバウンドルールを追加します。

 

Transit Gateway経由でVPC間の疎通確認

  • 各EC2 からping を行い、疎通確認を行います。無事に、ping 応答がありました。