東京リージョン上のVPCと大阪リージョン上のVPCに対してVPCピアリングを設定する

今回は、東京リージョン・大阪リージョンにそれぞれ構築しているVPCに対してVPCピアリングを設定し、疎通確認を行ってみます。

### 構成の確認
#### 東京リージョンの構成
現在、東京リージョン上には下記図のような構成のリソースを配置しています。
10.0.0.0/21のCIDRを持つVPCの上に、パブリックサブネット・プライベートサブネットを作成しました。
プライベートサブネット上には、EC2を一台ずつ配置しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/4bc94dc4-7eb5-079d-a376-1d816a6de0bc.png)
※今回はVPCの構築手順については省略しています。
VPC・EC2の構築手順を確認したい場合は、[こちら（複数記事）](https://qiita.com/tonkatsu_oishi/items/cded18d47108fb04961d#vpc%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E8%B8%8F%E3%81%BF%E5%8F%B0%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E4%BD%9C%E6%88%90)をご参照ください。
また、東京リージョン側のWEBサーバーに設定している内容については[こちら](https://qiita.com/tonkatsu_oishi/items/31aa7d2c17cac4b6ca84#apache%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)をご参照ください。



#### 大阪リージョンの構成
大阪リージョン上には下記図のような構成のリソースを配置しています。
172.31.0.0/21のCIDR範囲を持つVPC上に、パブリックサブネット・プライベートサブネットを作成しました。
プライベートサブネット上には、テストページを配置したWEBサーバーを一台ずつ配置しています。
※大阪リージョン側のVPCはawscliにて作成しました。VPC・EC2の手順は[こちら(複数記事)]()にまとめたので確認したい場合はご参照ください。
また、大阪リージョン側のWEBサーバーも、東京リージョンと同様にApacheの設定の設定を行い、テストページを配置しています。
大阪リージョンに配置したテストページの内容については[こちら]()をご参照ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/05142a71-2cbf-c121-4a6f-5a9cd0bf1f74.png)

#### 全体構成の確認
今回は、東京リージョン・大阪リージョンのVPCに対してVPCピアリングを設定します。
VPC間を通信できるよう、各リージョン上のルートテーブルにはVPCピアリングのルート設定を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/1199fbe7-4c81-3856-7efd-fc5a3cfda96c.png)


東京リージョン側・大阪リージョン側の双方から接続確認が行えるよう、WEBサーバーに設定したセキュリティグループの設定を変更しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/109d99bf-c60b-4857-6f24-413ef01752d7.png)

全ての設定が完了したら、東京リージョン上の踏み台サーバーから、VPCピアリング経由で大阪リージョン上のWEB1/2に対して接続し、テストページの表示が行えることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/99fa59d1-f5bd-3e3e-38aa-a5e42b851ace.png)

### 構築
#### VPCピアリングの設定
##### 大阪側VPCIDの確認
あらかじめ大阪リージョン側のVPCIDを確認しておきます。
AWSのマネジメントコンソール上にログインし、VPCのサービストップ画面へ移動します。
左メニュー「お使いのVPC」を押下し、VPC一覧を表示します。
VPCピアリングを設定したいVPCのチェックボックスにチェックを入れ、VPCIDを控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/af40af40-6649-64c8-46dd-d5986e1260c7.png)

##### 東京リージョンからVPCピアリングをリクエスト
リージョンを東京リージョンに変更します。
左メニューから「ピアリング接続」を押下し、「ピアリング接続を作成」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/eca16ee0-b088-fabc-09f4-bdb46db10dc4.png)

ピアリング接続作成画面が表示されます。
名前を入力します。「VPCID」のプルダウンメニューから、対象のVPCを選択します。
画像では、10.0.0.0/21のVPCを選択しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/7cada1fa-5734-b308-e25e-19095a633691.png)

ピアリング接続先のVPCを設定します。
「アカウント」には「自分のアカウント」を、「リージョン」には「別のリージョン」を選択します。
プルダウンメニューから「アジアパシフィック（大阪）」を選択し、
先程控えておいた大阪リージョンのVPCIDを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/a90ab80a-6149-f25c-153a-d752bd475a28.png)

タグを設定する場合は、「新しいタグを追加」を押下し、タグの設定を行います。
全ての設定が完了したら、「ピアリング接続を作成」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/74ffb50a-0b6e-267e-ecec-09dedd14571d.png)

VPCピアリングのメニュー画面に戻ります。
画面上部に「VPCピアリングがリクエストされました」と表示されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/6428cabb-1aff-1774-f9d7-351e8c6583d9.png)

##### 大阪リージョン側でVPCピアリングを承認
リージョンを大阪リージョンに変更します。
左メニューから「ピアリング接続」を押下します。
ピアリング接続IDのリンクを押下し、詳細画面を表示します。
「アクション」ボタンを押下し、「リクエストを承諾」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/82b775c3-5ad1-9433-c181-a994b23bc2a7.png)

「VPCピアリング接続リクエストを承諾」の画面が表示されます。
リクエスタVPC・アクセプタVPCに間違いがない事を確認します。
リクエスタ所有者ID・アクセプタ所有者IDが両方とも自分のAWSアカウントのIDとなっていることを確認し、「リクエストを承諾」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c650830c-f213-0179-3384-ca458401ddb9.png)

「VPCピアリング接続が確立されました」と表示されることを確認します。
これで、VPCピアリングの作成は完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/5e01b926-1da4-c440-26e0-8a9182639dcb.png)

#### ルートテーブルの設定
##### 東京リージョン側のルートテーブルに大阪リージョンVPCへのルートを追加する
VPCピアリングの作成が完了したため、ルートテーブルに大阪リージョンVPC（172.31.0.0/21）へのルートを追加しておきます。
リージョンを東京リージョンに変更します。
左メニューから「ルートテーブル」を選択し、ルートテーブルの一覧を表示します。
まずはパブリックサブネット用のルートテーブルにルートを追加するため、「HTTPS_DEMO_RTB_PUB」のチェックボックスにチェックを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/d2811b2d-b146-d7e9-f691-050d501543c7.png)

画面下部に、ルートテーブルの詳細画面が表示されます。
「ルート」タブを押下し、「ルートを編集」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/e52fbac7-a3c5-db7b-e671-8c6eced5d204.png)
送信先に「172.31.0.0/21」を入力し、「ターゲット」に「ピアリング接続」を選択します。
プルダウンメニューから、先ほど作成したピアリング接続を選択し、「変更を保存」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/d85d479f-f976-e16a-da10-d77aa73776be.png)

プライベート用のルートテーブルにもルートを追加しておきます。
一覧から「HTTPS_DEMO_RTB_PRV」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/b85726cd-6c36-7ec5-97be-d0f07e41d00d.png)

「ルート」タブを表示し、「ルートを編集」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/16b82111-27fa-35a1-0ab2-43d637ffc510.png)
送信先に「172.31.0.0/21」を入力し、「ターゲット」に「ピアリング接続」を選択します。
プルダウンメニューから、先ほど作成したピアリング接続を選択し、「変更を保存」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/6587c791-3433-1c03-91e0-89581df39386.png)

##### 大阪リージョン側のルートテーブルに東京リージョンVPCへのルートを追加する
同じ要領で、大阪リージョン側のルートテーブルにも東京へのルート情報を追加しておきます。
東京リージョン側のVPCは「10.0.0.0/21」のため、「送信先」は「10.0.0.0/21」を入力し、「ターゲット」には先ほど作成したVPCピアリングを設定します。
下記画像は大阪リージョン側の「HTTPS_DEMO_RTB_PUB」の設定状況です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/8f6a89c3-fa96-6c5a-f9ce-b077bd7c08f7.png)
下記画像は大阪リージョン側の「HTTPS_DEMO_RTB_PRV」の設定状況です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/29679727-8e47-4bb8-0499-067f86756459.png)

#### セキュリティグループの設定
東京リージョン側・大阪リージョン側の双方から接続確認が行えるよう、WEBサーバーに設定したセキュリティグループの設定を変更しておきます。
##### 東京リージョンのセキュリティグループ設定
リージョンを東京リージョンに切り替えます。
EC2のサービス画面に移動し、左メニューから「セキュリティグループ」を押下します。
セキュリティグループの一覧が表示されたら、WEBサーバーのSG（HTTPS_DEMO_WEB_SG）のチェックボックスにチェックを入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/13b58472-7901-a754-0f98-edb74a0cee6b.png)

画面下部にセキュリティグループの詳細画面が表示されます。
「インバウンドルール」のタブに移動し、「インバウンドのルールを編集」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/abffa271-456f-c2e8-8459-57bb5744a6f5.png)

インバウンドルールの編集画面が表示されます。
「ルールを追加」を押下し、下記内容で二つルールを追加します。
| 番号 | タイプ | プロトコル | ポート範囲 |ソース |ソースIP |
|:-:|:-:|:-:|:-:|:-:|:-:|
|  ルール1 | HTTP  |TCP  |80  |カスタム   |172.31.0.0/21   |
|  ルール2 |HTTPS   |TCP   |443   |カスタム   |172.31.0.0/21   |

ルールを設定したら、「ルールを保存」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/e559b6ed-c94d-0561-5d9d-ab79f806c7b9.png)

##### 大阪リージョンのセキュリティグループ設定
大阪リージョンも、同様の要領でセキュリティグループにインバウンドルールを追加しておきます。
大阪リージョン側には下記内容でルールを追加します。
| 番号 | タイプ | プロトコル | ポート範囲 |ソース |ソースIP |
|:-:|:-:|:-:|:-:|:-:|:-:|
|  ルール1 | HTTP  |TCP  |80  |カスタム   |10.0.0.0/21   |
|  ルール2 |HTTPS   |TCP   |443   |カスタム   |10.0.0.0/21   |

大阪リージョン側の「HTTPS_DEMO_WEB_SG」にルールを追加した状態です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/c2dc3187-4653-1fea-1594-2203ec20131d.png)

#### 接続確認
東京リージョンの踏み台サーバーからブラウザを立ち上げ、各WEBサーバーのIPアドレスを入力してみます。
東京リージョン・大阪リージョンのテストページが表示出来たら成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2237429/7ac690d1-3162-b4bd-5277-cd855c8d9bd8.png)

これで、今回ご紹介する手順は以上となります。
ここまでお読みいただきありがとうございました。