TransitGatewayとは
AWSを触ってたとはいえ、小さなWebシステムを細々と構築していた身なので、TransitGatewayは触ったことなかった。ただブラックベルト資料を見て思ったのは「これ、オンプレミスでいうコアスイッチじゃね?」ということ。
ネットワークの階層設計:3階層ネットワーク(ネットワークエンジニアとして)
そういう捉え方をすればすんなり理解できる。上図でいう1F、2F・・・の部分がAWSだとVPCに相当するイメージ。それを集約するコアスイッチ的な役割がTransitGatewayとなる。VPCピアリングで1対1もできるが、メッシュになるので、それよりもスイッチングはTransitに任せて集約しましょう、という話。
完成後のイメージ
Transit Gatewayを作る
大本の本体(という表現が適切かは微妙だが)のTransitGatewayを作る。BGPルーティングをしているということで、CIDRブロック、ASNを決めて入力する。
Transit Gateway アタッチメントを作る
VPCとTransitGatewayを接続する接点として、TransitGatewayアタッチメントを作る。これはインスタンスでなく、エンドポイントに近いものであり、このアタッチメントに対してセキュリティグループは用意する必要がない。アタッチメントを作成、設定する際は、TransitGateway本体のID、接続するVPCのID、そのVPCの中でアタッチメントを配置するサブネット。これを指定する。事前にこの情報を整理、準備しておく。
このアタッチメントをVPC数分、繰り返し作成する。この図だと3個アタッチメントを作る。
Transit Gateway ルートテーブル
TransitGatewayはコアスイッチみたいなものなので、やはりルートテーブルもある。細かく静的にルートを切ることも可能。ただ、今までエンタープライズ向けの構成を見ていて、あんまりコアスイッチに静的ルート入れてるのは見たことなく、動的ルーティングにしている環境が多かった(半径五メートルレベルの感想)。というわけで、TransitGatewayも動的ルーティングにして、特段ルートを切らない構成も可能。個人的に後者が楽で好き。詳細な手順はいろいろなサイトに記載があるため、ここでは割愛。
むちゃくちゃわかりやすい素晴らしい手順(Transit Gatewayを利用してVPC間で通信してみた)
サブネット ルートテーブル
サブネットのルートテーブル。TransitGatewayアタッチメントを配置したサブネットのルートテーブルで、ルートを設定する。
例えば、VPC1のあるサブネットでは、VPC2とVPC3にTGWを経由して通信させたい場合、サブネットのルートテーブル送信先にVPC2-3のIP帯を記載し、ターゲットをTransitGatewayアタッチメントを指定する。
ポイント
・TransitGatewayを使って複数VPCをまとめる場合、VPCのCIDRIP体系をしっかり作る。
・・・各VPCで重複がないIP体系にする。
・TransitGatewayは静的ルート、動的ルートのどちらも切れる。
・・・ただしTGWに静的ルートにすると、VPC追加時などにTGWのルートテーブルに追加、VPCのサブネットに追加と作業量と通信要件を考えることが倍増。
余談
タモリ俱楽部が本年3月末に終わってしまうという衝撃ニュースが駆け巡った。空耳アワーは毎度のように見ており、一回真面目に投稿しようかと思ったことがあった(インド人という身もふたもない空耳、ハンカチぐらいはもらえたのでは?)。思っただけで終わってしまったことは非常に残念。このように人生の残り時間はあっという間。気になることがあったらすぐやるべき、という教訓も得た。
好きな空耳は多すぎるが、個人的に好きなものを張っておく。空耳アワーだけは半年に一回ぐらい深夜帯でやってほしい。
洗うな!うそ!お茶の間へ
バニラあんた舐めろ
じゃ せーので