やさしい Transit Gateway の構築手順
はじめに
- 今回は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 間のみを通信許可とする場合は無効とします。
- Amazon 側の自律システム番号 (ASN)
- クロスアカウント共有オプションの設定は、無効にします。(チェックを付けません)
- アタッチメントを自動承諾させる(中央の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 応答がありました。