クラウドインテグレーション部(CI部)技術2課の反町です。
【Transit Gateway】VPCピアリングとTransit Gatewayを構築して比較してみたの第2弾です!
詳細は前回のブログをご確認ください。
【Transit Gateway】VPCピアリングとTransit Gatewayを構築して比較してみた①
今回のブログではTransit Gatewayの構築をして、VPCピアリング接続との違いは何かなどの比較をしたいと思います。
Transit Gatewayとは
まずは前回同様、Transit Gateway とは何か調べてみました。
トランジットゲートウェイは、仮想プライベートクラウド (VPC) とオンプレミスネットワークを相互接続するために使用できるネットワークの中継ハブです。
なるほど!VPCとオンプレミスのネットワークを相互接続するためのハブなんですね。これはハンズオンにはなかった情報です。
今回はVPC同士の接続検証になりますがTransit Gatewayとはどんなものか、ピアリング接続とはどんな違いがあるのか実際に作って確認したいと思います。
構成図
目標の構成図は以下です。
ハンズオンの内容と同様に1つのAWSアカウントでリージョンを2つ利用して、Transit Gatewayを構築し計3つのVPCにて接続の確認を行います。
Transit Gatewayの構築
1. 前回作成したピアリング接続を削除する
まず、Transit Gatewayを作成する前に前回作成したピアリング接続を削除して次の構成にします。
VPCコンソールのピアリング接続のアクションから削除することができます。 この時、関連するルートテーブルエントリの削除に☑を入れてください。
VPCピアリング接続を削除すると、ちゃんと通信できなくなりました。
vpc-Ohio←→vpc-california-1間とvpc-Ohio←→vpc-california-2間の接続をオハイオリージョンから確認しました。
2. Transit Gatewayの作成
VPCコンソールから「Transit Gateway」を選択してTransit Gatewayの作成をします。
キャプチャではオハイオリージョンにて作成しています。北カリフォルニアにも同様の手順で作成します。 名前だけ指定して後はデフォルトでTransit Gatewayを作成します。
3. Transit Gateway Attachment(VPCへのアタッチ)の作成
この作業は、以下構成図のようにそれぞれのVPCに対してTransit Gateway Attachmentを作成して通信させるときに利用します。 VPCコンソールから「Transit Gateway 接続」を選択してTransit Gateway Attachmentの作成をします。 北カリフォルニアにも同様の手順で作成します。
Transit Gateway ID:作成したTransit Gateway
Attachment Type:VPC
Attachment name tags:任意の名前
VPC ID:Transit Gateway Attachmentを作成するVPC
Subnet IDs:Transit Gateway Attachmentを作成するSubnet
そのほかの値はデフォルトでTransit Gateway Attachmentを作成をします。
4. Transit Gateway Attachment(Peering)の作成
この作業は、以下構成図のようにそれぞれのリージョンで作成したTransit Gateway同士をピアリングして接続できるようにするために実施します。 Transit Gateway Attachment(VPC)の作成と同様にTransit Gateway Attachmentの作成から作ります。北カリフォルニアリージョンにて作成しています。
Transit Gateway ID:作成したTransit Gateway
Attachment Type:Peering Connection
Attachment name tags:任意の名前
Resion:peering先のリージョン(オハイオ)
Transit gateway (accepter):Peering先のTransit Gatewayを指定(オハイオのTGW)
5. peering接続の承諾
Transit Gateway Attachment(Peering)を作成するとpeering先のTransit Gateway Attachmentに承諾待ちのAttachmentが見えるようになっているので、アクションから「Accept」します。 「Accept」します。
6. VPCルートテーブルを編集する
接続するそれぞれのVPCのルートテーブルに接続相手のルートを追加します。
その際に作成したTransit gateway IDを指定します。 北カリフォルニアは2つのVPCのルートテーブルを編集しました。(キャプチャはうち1つです)
7. Transit Gateway Route Tableを編集する
VPCコンソールから「Transit Gateway ルートテーブル」を選択してTransit Gateway のルートテーブルを編集をします。 接続先のVPCを指定して、 同じリージョンのVPCにはVPCタイプで作成したTransit gateway Attachment、違うリージョンのVPCにはpeeringタイプで作成したTransit gateway Attachmentに通信が向くように設定します。
オハイオリージョンでも同様にTransit Gateway Route Tableを編集しました。
8. 接続の確認
ここまでくれば、次のような構成になっていて通信ができるはずです。
目標としていた構成図とは少し違いますが、各VPCにTransit Gateway Attachmentというものを作ってそこを利用して通信するということを発見できました。
通信確認します。
vpc-california-1←→vpc-california-2 と vpc-california1←→vpc-ohio
vpc-california2←→vpc-ohio
接続できました!!!
Transit GatewayとVPCピアリングの比較
構築面では、手順の多さからもわかるようにTransit Gatewayのほうが設定内容が多いと感じました。
今回のハンズオンのように接続させたいVPCが少なく今後増える可能性も低い場合はVPCピアリング接続を利用すると比較的簡単にVPC同士の接続が実現できると思います。
では、Transit Gatewayを利用する利点は何かというと、「1つのリージョンに1つのTransit Gatewayと各VPCにTransit Gateway Attachmentを作成することで、VPCが増えた場合でもTransit Gateway Attachmentの作成とTransit Gatewayルートテーブルを変更、各VPCルートテーブルの変更をするのみで相互通信を可能にすることができる」ところかなと思います。
VPCピアリング接続で実現しようとすると、VPCピアリング接続の作成からすべての手順を実施しなければならないうえにルーティングの管理が煩雑になります。
VPCの数も多くなくシンプルな構成の場合はVPCピアリング接続を、VPCの数が多く今後も増加する予定がある/ルーティングが複雑になりそうなどの場合はTransit Gatewayを利用するのが良いのかなと感じました!!
まとめ
VPC同士を接続するという結果は同じでも利用するサービスによってその後の運用管理の煩雑さが変わってくることを知り、設計する際は後の運用のことについても考えながら設計をすることが大事になるんだな~と思いました。