2019年12月のre:Inventにて、リージョン間のTrasit Gatewayピアリング機能が発表されました。
AWS Transit Gatewayにマルチキャストとインターリージョンピアリング機能を追加
https://aws.amazon.com/jp/blogs/news/aws-transit-gateway-adds-multicast-and-inter-regional-peering/
2つのリージョンを Transit Gateway で接続し、それぞれリージョンのEC2間で簡単な通信のテストをします
参考資料
[AWS Black Belt Online Seminar] AWS Transit Gateway 資料及び QA 公開
https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-transit-gateway-2019/
Transit Gateway Peering Attachments
https://docs.aws.amazon.com/vpc/latest/tgw/tgw-peering.html
Transit Gateway Example: Peering
https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-peering-scenario.html
Transit Gateway Deep Dive アーキテクチャガイド
https://pages.awscloud.com/rs/112-TZM-766/images/B1-05.pdf
構成
Blackbeltの資料を元に、Transit Gateway のアタッチメントENIに専用サブネットを作ります。
いたってシンプルな構成です。
- | - |
---|---|
リージョン | バージニア北部/us-east-1 |
CIDR | 10.1.0.0/16 |
private subnet 1 | 10.1.11.0/24 |
private subnet 2 | 10.1.12.0/24 |
アタッチメントENI専用サブネット | 10.1.255.0/28 |
アタッチメントENI専用サブネット | 10.1.255.16/28 |
- | - |
---|---|
リージョン | オハイオ/us-east-2 |
CIDR | 10.2.0.0/16 |
private subnet 1 | 10.2.11.0/24 |
private subnet 2 | 10.2.11.0/24 |
アタッチメントENI専用サブネット | 10.2.255.0/28 |
アタッチメントENI専用サブネット | 10.2.255.16/28 |
手順
VPCとEC2の作成
これはごく一般的なものだと思うので、割愛します。
各リージョンで Transit Gateway を作成
公式ドキュメントにて、将来的にルート伝搬機能を利用するために、一意のASNを使用することを推奨しているので、重複しないように作ります。
We recommend using unique ASNs for the peered transit gateways to take advantage of future route propagation capabilities.
今回は、以下のようにしました。
リージョン | ASN |
---|---|
バージニア | 64512 |
オハイオ | 64513 |
Transit Gateway のアタッチメントを作成
2種類のアタッチメントを作成します
- VPC アタッチメント
- Peering アタッチメント
VPC アタッチメントの作成
アタッチメントを作成するサブネットは、専用に用意したサブネットを利用します。
Peering アタッチメントを作成
バージニアで、オハイオリージョンの Transit Gateway ID を指定して peering します
State が "initiating request" となるので、オハイオ側で承認の必要があります
Transit Gateway のルートテーブル
アソシエート
各リージョンで VPC,Peering のアタッチメントをアソシエートします
プロパゲート
各リージョンで VPC のアタッチメントをプロパゲートします。
Peering用のアタッチメントはプロパゲートできないので、次の手順で手動で経路設定します。
経路の作成
バージニアで、10.2.0.0/16 の経路を Peering アタッチメントに向けます
オハイオで、10.1.0.0/16 の経路を Peering アタッチメントに向けます
VPCルートテーブル変更
各リージョンのサブネットのルートテーブルに Transit Gateway に向ける経路を書きます
バージニアで、10.2.0.0/16 の経路を Transit Gateway に向けます
オハイオで、10.1.0.0/16 の経路を Transit Gateway に向けます
確認
一通り設定が終わったので確認
バージニアのEC2から、オハイオのEC2へ ping
[ec2-user@ip-10-1-11-100 bin]$ ping 10.2.12.100
PING 10.2.12.100 (10.2.12.100) 56(84) bytes of data.
64 bytes from 10.2.12.100: icmp_seq=1 ttl=253 time=13.6 ms
64 bytes from 10.2.12.100: icmp_seq=2 ttl=253 time=12.6 ms
64 bytes from 10.2.12.100: icmp_seq=3 ttl=253 time=12.7 ms
64 bytes from 10.2.12.100: icmp_seq=4 ttl=253 time=12.6 ms
64 bytes from 10.2.12.100: icmp_seq=5 ttl=253 time=12.6 ms
気づき
- ASN は将来のことを考え分けとく
- https://docs.aws.amazon.com/ja_jp/vpc/latest/tgw/tgw-peering.html
- We recommend using unique ASNs for the peered transit gateways to take advantage of future route propagation capabilities.
- アタッチメント、ルートテーブル、アソシエート、プロパゲート、スタティックルート の5つをしっかり理解していれば、難しくない。VPC同士をつなぐ場合と手順的にさほど変わらない。
- peering 用アタッチメントは片方のリージョンでリクエスト投げて、承認されれば両方にできあがる