Share
AWS(Amazon Web Services)の利用者であれば、VPC(Virtual Private Cloud)という概念についてご存知だと思います。私たちがよく利用するリソースはすべてVPCの中にあります。
VPC Aに属するリソースからVPC Bに接続する必要がある場合(インターネットから直接接続しない)、VPC AからVPC Bとの通信が必要となりますが、VPCピアリングを利用すれば、これを解決することができます。
本記事では、VPCピアリングの設定方法について解説します。
画像出典:https://docs.aws.amazon.com/ja_jp/vpc/latest/peering/what-is-vpc-peering.html
VPCピアリングとは、2つのVPC間でプライベートな接続を行うための手法で、接続元VPCと接続先VPCを指定することができます。
VPCピアリングを利用してVPCを相互接続すると、そのVPC内のサービスは、接続元VPCから接続先VPCへ、またはその逆方向へプライベートIPで通信できるようになります。
VPCは必ずしも同じリージョンにあるわけではなく、異なるリージョン、異なるAWSアカウントにあっても可能です。つまり、十分な接続情報があれば、他人のVPCに接続することもでき、非常に便利です。
また、VPCピアリングで異なるリージョンのVPCに接続する場合、インターネットから直接接続するよりもはるかに速度が向上します。
VPCピアリングの設定には以下のステップを踏んでいきます。
VPC一覧
2つのVPCのIPV4の範囲は、画像のように異なるものにします。
10.0.0.0/16 はIP 10.0.0.1→10.0.255.254のIPレンジに対応
10.1.0.0/16はIP 10.1.0.1→10.1.255.254のIPレンジに対応
異なるIPレンジを設置した場合、2つのVPCのリソースの内部IPが重なることはありません。これにより、それ以後、内部IPを使用して通信を行っても心配ありません。
サブネット一覧
VPCごとに、上図のようにサブネットを作成します。
EC2一覧
ここでは、サブネットごとに、それぞれ別のVPCに属するEC2を対応させて作成します。すぐに、VPCピアリングでEC2間での通信を行うことができます。
EC2 test1のIPは10.0.0.93、EC2 test2のIPは10.1.0.206です。test1からtest2への通信を試してみます。
結果はタイムアウト
VPCピアリング接続の作成は非常に簡単です。名前を記入し、リクエスタVPC 、アクセプタVPCを指定するだけです。
VPCピアリングの情報
作成後、接続するにはアクセプタVPCのオーナーに承認される必要があります。両方のVPCのオーナーであれば、自分で受け入れることができます。
subnet test1-subnet1のルートテーブル
上の画像はルートテーブルの情報ですが、このルーティングテーブルはサブネットtest1-subnet1に割り当てられており、具体的なテーブルの情報は以下の通りです。
1. test2-subnet1への接続指示
2. ローカル接続の指示
3. 外部インターネットへの接続指示
同様に、subnet test2-subnet1のルーティングテーブルも作成し、test1-subnet1への指示を出します。
subnet test2-subnet1のルートテーブル
ここで設定は完了したため、再びEC2 test1 からEC2 test2への通信を試みます。
結果
というわけで、VPCピアリングにより、2つのVPC間を接続することに成功しました。
この記事でご紹介したVPCピアリングについての情報が開発の参考になれば幸いです。
弊社Rabilooはベトナム・ハノイに拠点を置くITベンダーです。
Rabilooのブログでは、開発プロジェクトで得た、テクノロジーに関する知見をシェアしています。よろしければ他の記事もあわせて御覧ください。
あわせて読みたい:
Share