TransitGatewayを使ってVPC間通信環境を作ってみる

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回はVPC間をTGWで通信できるようにしてみたいと思います。
実際の案件でTGWを使うことがあり、その為のお勉強です。

# 環境イメージ
TGWを作成して、それに紐づくTGWアタッチメントを作成。
それらを使ってVPC間の通信を実現していきます。
![growi-ページ32.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/fa9385dd-b495-42ca-bd1d-3cbe88d8f38c.png)

# 構築
VPCやサブネットやらは以下の記事で作成しているものを流用します。

https://qiita.com/ohtsuka-shota/items/4e652bab8cc4cb1f00f8

Transit Gatewayを作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/abdef8d0-8312-4f16-b209-8ac1035865c9.png)

任意の名前と説明、CIDRブロックを記入して作成していきます。
ここで指定しているCIDRブロックはTGWが使用するIPアドレスを記入してあげればいいっぽい。
アタッチメントの数を踏まえて設定をしてあげればいいと思います。今回は2つ使えればいいので/30としてます。
![screencapture-ap-northeast-1-console-aws-amazon-vpcconsole-home-2025-05-04-09_47_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/d1bcb45f-f4b0-49ed-9f80-daf14c2c5dec.png)
作成出来ました。
![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/59eae8f1-4b79-4d37-9aba-cddb9cb4a721.png)

次に、作成したTGWに紐づいているアタッチメントを作成していきます。
![image (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/abd7ea95-f599-4ebc-b08e-acdcfb87a448.png)

kensyo-vpcのパブリックサブネットに配置するアタッチメントを以下のように作成しました。
TGW IDは先ほど作成したTGWのものを。アタッチメントタイプはVPC。
VPC IDはkensyo-vpcのIDを。サブネットは用意しているパブリックサブネットを指定します。
![screencapture-ap-northeast-1-console-aws-amazon-vpcconsole-home-2025-05-04-09_53_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/cd08f008-a7b5-4ce5-80f8-a5755a7d66bf.png)

test-vpcのパブリックサブネットに配置するアタッチメントを以下のように作成しました。
TGW IDは先ほど作成したTGWのものを。アタッチメントタイプはVPC。
VPC IDはtest-vpcのIDを。サブネットは用意しているパブリックサブネットを指定します。
![screencapture-ap-northeast-1-console-aws-amazon-vpcconsole-home-2025-05-04-09_57_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/d646e234-0404-4d0c-bca5-4bc68eccce7e.png)

2つのTGWアタッチメントが作成出来ました。
![image (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/4ef90ffa-2138-4204-aad7-8598f3ae3f4c.png)

次にTGWのRTをみてみます。アタッチメントを作成しているとルートも自動で作成されているようです。
![image (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/7af9ce49-4105-4a61-85ba-4d0a299742a9.png)

VPC内のサブネットに紐づているRTを編集して、TGWに紐づけていきたいと思います。
まずはkensyo-vpcのパブリックサブネット側
![image (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/a4bf53ae-658d-49ee-a4c1-7fcbb542a57b.png)
![image (6).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/261d4236-bd9e-41c8-9bc9-5415c1134dcd.png)
![image (7).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/e28fa2ba-57bd-4607-bbc1-9cd75881669f.png)
次にtest-vpcのパブリックサブネット側
![image (8).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/236b0e6f-1ef7-4e65-937c-570bc972c954.png)
![image (9).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/1588ebe7-1579-4940-9be9-91c68854f577.png)
![image (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/cc3a019e-29b5-40fa-9049-0595b759bc80.png)

# 検証
それぞれのパブリックサブネットにEC2を立ち上げて、通信出来るか確認していきます。
![image (11).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/22330d59-31eb-4bfc-9768-39741896c5ef.png)
![image (12).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/7068e9eb-5725-4cf6-b6e4-b6b35151d8d9.png)
ping疎通出来ました。
検証が終わったら使用していたTGWのものは削除しておきましょう
![image (13).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219385/55b7b35b-9142-495d-aeef-4b8c972efd90.png)