CloudWAN⑥TGWとCloudWANを紐づける

## 前回までのおさらい・今回の設定内容

前回は、CloudWANに作成した2つのセグメントに対してセグメントアクションを設定し、異なるセグメント同士が通信できる状態にしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/265b1f13-c265-5c32-8747-7d750ce3bb02.png)


今回はCloudWANの「COMMON」セグメントにTransitGatewayを紐づけ、「COMMON」セグメント内のVPC同士が通信できるように設定していこうと思います。具体的な構成図は下記のようなイメージとなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/413107ec-95cb-4b7d-9c88-56c4a1e6f3e8.png)


## 設定手順の流れ・注意事項

今回は下記のような流れで設定を行っています。

①CloudWANにTGWを登録する
②TGWピアリングを作成
③TGWルートテーブルアタッチメント作成（ポリシーテーブルの関連付け）

※TransitGatewayの構築については割愛します。
また、CloudWANと紐づけるTransitGatewayについては、ASNがCloudWANと重複しないようにする必要があります。TransitGatewayのASNは作成後に変更ができないので注意してください。

## TransitGatewayをCloudWANに登録する

まずは既存のTransitGatewayをCloudWANに登録します。
NetworkManagerの画面からグローバルネットワークを選択し、左メニュー「TransitGatewayネットワーク」配下の「TransitGateway」を選択します。
表示されたメニューから、「TransitGatewayを登録」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/dd057388-1ade-12f9-69bf-9901e8adb047.png)


TransitGatewayの登録画面が表示されます。
表示されているTransitGatewayの一覧からCloudWANに登録したいTransitGatewayにチェックを入れます。
「TransitGatewayを登録」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/02b5b789-d776-32f5-1470-b23480606830.png)

TransitGatewayが登録され、状態が「Available」となるまで待機します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/42ef0b66-06af-71aa-2af1-b08788363f8c.png)

## TGWピアリングの作成

CloudWANに登録したTransitGatewayに対してピアリングを設定します。
左メニューから「ピアリング」を選択します。
ピアリングのメニューが表示されたら、右上の「ピアリングを作成」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/01c76684-38e6-f3b0-7ae8-d1f29cae4eb8.png)

ピアリングの設定画面が表示されます。
ピアリングの名前を入力します。
今回は東京リージョンのTGWを利用しているため、「エッジロケーション」は「東京」を選択します。
「TransitGateway」には先ほど登録したTransitGatewayを選択します。
「ポリシーテーブルを関連付ける」の「新規」をチェックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/5c0690ef-b0b0-6f05-bff6-4d7a4f4d5ba4.png)

タグの設定を行います。
CloudWANでは、「アタッチメントポリシー」という方法でアタッチメントをどのセグメントに所属させるかの判別を行っています。
今回の環境では、アタッチメントポリシーとして「EnvironmentタグがCOMMONのアタッチメントはCOMMONセグメントに所属させる」という内容を設定しています。

画像では「Environment」タグを設定し忘れ、「Name」タグのみしか設定していません。
実際に設定を行う際は、アタッチメントポリシーの内容に応じたタグ設定を忘れないようにしてください。

タグの設定まで完了したら、「ピアリングを作成」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/43529b1a-18b8-5b3b-a9b4-92b5001cb4a0.png)

これで、ピアリングの作成が完了となります。

## TGWルートテーブルアタッチメントの作成

TGWの登録・ピアリングの作成が完了したら、TGWルートテーブルアタッチメントを作成します。
左メニューから「アタッチメント」を選択し、「アタッチメントを作成」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/112d21e8-1040-0883-6f30-5a62494c74b3.png)

アタッチメントの作成画面が表示されます。
「名前」を入力します。
今回は東京リージョンにTGWが存在するため、「エッジロケーション」は「東京」を選択します。
「アタッチメントタイプ」には「TransitGatewayのルートテーブル」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/9216d5e1-8e31-8951-8faf-4674a19ef129.png)

「TransitGatewayのルートテーブルアタッチメント」セクションへ移動します。
「TransitGatewayピアリング」には先ほど作成したピアリングを指定します。
「TransitGatewayのルートテーブル」には既存のTransitGatewayルートテーブルを指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/b5c560bd-7f9e-a602-c806-2406d06b726f.png)

今回の環境では、アタッチメントポリシーとして「EnvironmentタグがCOMMONのアタッチメントはCOMMONセグメントに所属させる」という内容を設定しています。
登録したTransigGatewayをCOMMONセグメントに所属させるため、「キー」に「Environment」、「値」に「COMMON」と入力します。

全ての値を設定し終えたら、「アタッチメントの作成」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/efbfb7c4-b85a-d214-1bf4-9850894521de.png)

## ポリシーテーブルの関連付け
ピアリングを作成した直後にTGWルートテーブルアタッチメントを作成すると、下記画像のようなエラーが出ることがあります。

このエラーが出た場合は、「ポリシーテーブルを関連付ける」のリンクを押下し、ポリシーテーブルの関連付けを行い、再度アタッチメントの作成を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/26717e1b-9e49-67cf-9c17-96b785783d4e.png)

ポリシーテーブルの関連付け画面です。
「ポリシーテーブルを関連付ける」の「新規」をチェックし、「ポリシーテーブルを関連付ける」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/dd2992ef-952d-4708-0225-fac1b4661d32.png)

ポリシーテーブルの関連付けが完了するまで待機します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/877cd3d9-2a5e-fac4-c98e-d790da819f92.png)

ポリシーテーブルの関連付けが完了後、再度TGWルートテーブルアタッチメントを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/d9ec0857-2084-5f9c-8fc0-cc592281bf04.png)

※TGWピアリングにポリシーテーブルを関連付けし、その直後にTGWルートテーブルアタッチメントを作成したところ、ピアリングの状態が「available」にも関わらずアタッチメントの作成が失敗する事象が起きました。ポリシーテーブル作成後10分程度経過してからアタッチメントを作成すると、今度は失敗なくアタッチメント作成が完了しました。
TGWルートテーブルアタッチメントを作成する場合は、TGWピアリングの作成・ポリシーテーブルの紐づけ設定後10分程度置いてから作業すると良いかもしれません。

## 設定後の状況確認

CloudWANへのTGW登録・TGWルートテーブルアタッチメントの作成が完了るすと、コアネットワークに紐づいたピアリングが自動で作成されます。
後はVPCのローカルルートテーブルにルート情報を書くことで、セグメント同士が自動でルーティングされるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/7e446daf-caca-b9df-0124-ac54402523ec.png)

これはTransitGateway側のTGWルートテーブルの状況です。
設定が完了すると、TGWからコアネットワークへのルートが自動で追加されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/25cac4d9-c459-bb73-9f0c-76133b2fa1ff.png)

## 設定内容確認・疎通確認

今回はCloudWANの「COMMON」セグメントにTransitGatewayを登録しました。
疎通確認のため、「COMMON」セグメント上のVPC（10.0.0.0/16）上のEC2(10.0.1.104）からTGW配下のVPC（10.4.0.0/16）上のEC2（10.4.1.190）へ向けてpingを打ってみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/5de36405-ae84-e0d1-3d00-f7d9f3562eb6.png)

実際にpingを試みた画面は下記となります。
10.0.1.104のEC2にログインし、10.4.1.190のEC2あてにpingを行っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/40344085-4be0-a361-03a7-4b0df753d7e4.png)

ルートテーブルの設定は下記のような形になっています。
各ローカルルートテーブルの設定は手動で登録する必要があります。
TransitGatewayルートテーブルについては、CloudWANにTGWを登録する作業を行うと自動でルート情報が追加されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/13172472-3bf7-70c3-f394-68166dcb601f.png)

ここまでお読みいただきありがとうございました。
CloudWANは設定箇所が多く、コンソールにも少し癖がありますが、使いこなすとマルチリージョン間の大規模なルーティングに活用できそうです。