【AWS】VPC同士を接続してみた（VPC ピアリング接続 編）

## 概要
2つのVPC同士をピアリング接続し、それぞれに起動したEC2からICMP、sshで疎通できることを確認した際の備忘録です。
TransitGatewayを試してみる前段として比較のために作成したため、本記事は2部構成の第1部となります。

VPC ピアリング ってなんぞ？という方はまず以下をどうぞ。

■VPC ピアリング接続
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-peering.html


## スタートとゴール
スタート：VPCを2つ作成するところから（今回は同一リージョン内に作成）
ゴール：各VPCに起動したEC2間でICMP、sshの疎通を確認するところまで


:::note info Tips
デフォルトの1リージョンに作成できるVPCの数は5つまでです。
既にVPCが存在するアカウント・リージョンで検証する場合は以下を参考に制限緩和のリクエストをしておくとよいでしょう。

■AWS サービスクォータ
https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html
:::

#### 完成予想図
ざっくり以下のような構成を想定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/3143b437-fe86-e132-9ffa-9b7989b8d0a9.png)


## やってみた

### 事前準備
まず、お好きなリージョンに以下のように2つのVPCを作成します。

| VPC Name | IPv4 CIDR |
|:-:|:-:|
| my-vpc-01  | 172.16.0.0/16  |
| my-vpc-02  | 172.17.0.0/16  |

このタイミングで各VPCにサブネットも作成しておきましょう。
※各VPCに最低1つずつあれば十分です。

**my-vpc-01**

| Subnet Name | IPv4 CIDR |
|:-:|:-:|
| my-vpc-01-public  | 172.16.10.0/24  |
| my-vpc-01-private  | 172.16.20.0/24  |

**my-vpc-02**

| Subnet Name | IPv4 CIDR |
|:-:|:-:|
| my-vpc-02-public  | 172.17.10.0/24  |
| my-vpc-02-private  | 172.17.20.0/24  |


### ピアリング接続の作成

VPCメニューから「**ピアリング接続**」を選択し、「**ピアリング接続を作成**」をクリック。
![Top.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/c41b95a4-51b2-2482-cc45-8ce80a344315.png)


必要項目を入力後、「**ピアリング接続を作成**」をクリック。
![Create1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/c4c5ac98-1ffa-44cc-f620-45d164910120.png)

![Create2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/bd6fdc84-479d-4755-be33-c4eba1dd0a99.png)


作成後画面に遷移するので、アクションから「**リクエストを承諾**」をクリック。
![Create3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/77ae04b8-1667-8b10-9b4a-5e8b470c771c.png)

確認画面で、内容確認の上「**リクエストを承諾**」をクリック。
![accept.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/a3757ba8-3ed9-5773-edf4-6f94f913c45b.png)

これでピアリング接続は完了。
引き続き各VPCでルートテーブルの設定およびセキュリティグループの作成をしていきます。

### ルートテーブルの設定
それぞれのVPCのルートテーブルへ設定を追加します。
送信先は相手のVPCのCIDR、ターゲットは先程作成したピアリング接続を指定します。
![RouteTable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/7974a176-3b22-7670-ff47-8637bcf1af96.png)

### セキュリティグループの作成
my-vpc-01 からのICMP及びsshを許可するよう、my-vpc-02 用のセキュリティグループを作成します。
![SecurityGroup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519209/b6f82305-6a55-82d8-0211-361b3b5407b1.png)

## 完成！
それぞれのVPCにEC2インスタンスを起動し、疎通を確認してみましょう。
my-vpc-01 側のインスタンスにssh接続し、そこから my-vpc-02 側のインスタンスへping、sshが可能になっているはずです。

```ruby:my-vpc-01
[ec2-user@ip-172-16-10-230 ~]$ ping -c 3 172.17.20.59
PING 172.17.20.59 (172.17.20.59) 56(84) bytes of data.
64 bytes from 172.17.20.59: icmp_seq=1 ttl=64 time=1.88 ms
64 bytes from 172.17.20.59: icmp_seq=2 ttl=64 time=1.88 ms
64 bytes from 172.17.20.59: icmp_seq=3 ttl=64 time=1.86 ms

--- 172.17.20.59 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.860/1.877/1.886/0.012 ms
[ec2-user@ip-172-16-10-230 ~]$
[ec2-user@ip-172-16-10-230 ~]$ ssh -i 〓鍵ファイル〓 172.17.20.59
Last login: Sat Jan 29 15:52:52 2022 from 172.16.10.230

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
[ec2-user@ip-172-17-20-59 ~]$
```

以上、とても簡単にVPC同士を接続することが出来ました。
次回は同様の接続をTransitGatewayを利用して作成してみたいと思います。