[AWS]東京リージョンと大阪リージョン間でVPCピアリングしてみる

コンサルティング部の洲崎です! 東京リージョンと大阪リージョンをVPCピアリングしてみました。
2021.08.23

大阪リージョンが2021/3に誕生してから、大阪リージョンの話もいただくようになってきました。 今回東京リージョンと大阪リージョンをVPCピアリングで接続する機会があったのでブログを書いていきます。

VPCピアリング

VPCピアリングは異なるVPC間を接続する機能です。
異なるAWSアカウント同士でも接続することができ、リージョン間でも接続可能になります。
また、複数のVPCと1:nで接続が可能となります。
詳細については下記ブログをご覧ください。

VPCピアリングを作りながら学んでみた

やってみる

では早速やっていきます。今回の構成図は下記です。

※利用PCはmacOS Big Sur Ver11.4になります。

VPC,EC2

パラメーターについては下記で作成していきます、
東京リージョン(ap-northeast-1)

  • VPC:10.0.0.0/16
  • Subnet:10.0.0.0/24
  • EC2:t2.micro(linux2)

大阪リージョン(ap-northeast-3)

  • VPC:10.1.0.0/16
  • Subnet:10.1.0.0/24
  • EC2:t2.micro(linux2)

VPCピアリング

東京リージョンで、VPCコンソールを開き左のタブから”VPCピアリング”を選択します。

下記作成画面が出てくるので項目を入力していきます。

名前は管理しやすい名前で、リージョンは”別のリージョン”を選択、接続先のVPCのIDを入力していきます。(VPCのIDは大阪リージョンでVPCコンソールを開いて確認ができます)
接続先(大阪リージョン)にリクエストが飛ぶので、承認を行っていきます。
大阪リージョンでVPCピアリングを開くと”承諾の保留中”というステータスのものがあるので、アクション→リクエストを承認、で進めていきます。

ルートテーブル

お互いの通信を許可する必要があります。
具体的にはルートテーブルで通信を定義するのと、セキュリティグループの設定があります。
まずは東京リージョン側でルートテーブルの設定を行います。
利用のVPCのメインルートテーブルに移動し、ルートを追加していきます。
東京から大阪は送信先を”10.1.0.0/16”、大阪から東京は送信先を”10.0.0.0/16"でターゲットはピアリング接続で設定していきます。

セキュリティグループ

東京リージョンから大阪リージョンに対してSSHを許可していきます。
VPCピアリングは同一リージョンの場合はセキュリティグループを送信元/送信先として指定できますが、リージョンが別の場合はCIDRブロックで指定する必要があります。
大阪リージョン側のセキュリティグループに下記ポートを追加します。

動作確認

では動作確認をしてみます。
東京リージョンのEC2にLinuxサーバーにSSH接続します。


ssh -i /Users/username/.キーペアのある場所/○○.pem ec2-user@ec2のパブリックIP

※予めキーペアのDLとchmod 600で権限設定をしてください。

SSH Configファイルを作成します。


#sshファイルを作成
mkdir -p ~/.ssh

作成できたらviでConfigを修正していきます。


#ssh configを修正 
vi ~/.ssh/config

下記コードを入力し保存します。


Host EC2A
Hostname [EC2 A Public IPAddr]
User ec2-user
IdentityFile ~/.ssh/id_rsa

Host EC2B
Hostname [EC2 B Private IPAddr]
User ec2-user
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh -W %h:%p EC2A

下記コマンドを叩いてEC2のパブリックIPアドレスが表示されれば成功になります!


ssh EC2B
curl -s https://checkip.amazonaws.com

もし繋がらない、等あれば下記公式のトラブルシューティング等を確認してみてください。
サポートされていない VPC ピア接続設定

最後に

今回は大阪リージョンにVPCピアリングしてみました。
基本的にやることは他のリージョンと変わらないですね(当たり前ですが)
ぜひ大阪リージョンを利用する機会がありましたらチャレンジしてみてください。

ではまた!コンサルティング部の洲崎でした。