VPC ネットワークピアリングの概要
はじめに
こんにちは。クラウドエースの木村です。
本記事にてご紹介する内容は、Google Cloud のサービスである VPC ネットワークピアリングについてです。
私自身今まで使ったことがなかったので、簡単にサービスの概要と、実際に使ってみた様子をまとめてみました。
VPC ネットワークピアリングに触れたことがない方、どのようなサービスなのかを簡潔に知りたい方に向けた記事になっています。
VPC ネットワークピアリングとは
Google Cloud VPC ネットワークピアリングは、2 つの Virtual Private Cloud(以下、VPC)を接続することで、各ネットワーク内のリソースが相互に通信できるようにする機能です。
同じ VPC ネットワーク内であれば内部 IP アドレスで接続可能ですが、異なる VPC ネットワーク間の内部 IP アドレスでの接続は本来できません。
しかし、VPC ネットワークピアリングにより同じプロジェクト、同じ組織の異なるプロジェクト、または異なる組織の異なるプロジェクトの VPC ネットワーク同士を内部 IP アドレスでピアリングすることができるようになります。
内部 IP アドレスでの接続によるメリットは主に以下があります。
- ネットワーク面 : 外部 IP アドレスを使用する接続よりも遅延が起きにくい
- セキュリティ面 : VM 等に外部 IP アドレスを割り当てない場合、サービスを公共のインターネットに公開したり、それに伴うリスクへの考慮が必要ない
- コスト面 : 内部 IP アドレスでの通信では、送信コストを節約できる
それぞれのVPCネットワークは別々の管理であり、接続するには双方向からのピアリングが必要となります。
以下の 3 つのサービスから内部 IP アドレスを介しての通信が可能です。
例えば、片方の VPC ネットワーク上で動作する VM インスタンスから、別の VPC ネットワーク上のデータベースに内部 IP アドレスを介してアクセスすることができます。
では、VPC ネットワークピアリングを使ってみたいと思います。
VPC ネットワークピアリングを使ってみる
今回は、別々の VPC ネットワークに属する 2 つの VM インスタンスを使ってこれらをピアリングで接続していきます。
以下の手順で行います。
- VPC ネットワークの作成
- 異なる VPC ネットワークで VM インスタンスを作成
- VPC ネットワークピアリングの作成
- 一方の VM インスタンスから接続してみる
- VPC ネットワークピアリングを削除してから接続してみる
完成イメージ
1.VPC の作成
今回は、東京リージョンと大阪リージョンにそれぞれサブネットを持つ VPC ネットワーク(network-a、network-b)を作成しました。
2.異なる VPC で VM インスタンスを作成
次に、以下のように東京リージョン(asia-northeast1)と大阪リージョン(asia-northeast2)それぞれに VM インスタンスを作成しました。
instance-a には network-a が、instance-b には network-b というように、それぞれ別のネットワークが割り当てられています。
VM インスタンスの作成方法については、記事の本筋から外れてしまうので今回は割愛させていただきます。
3. ネットワークピアリングの作成
2 つの VPC ネットワークを接続するための VPC ネットワークピアリングを作成していきます。
最初に network-a を network-b にピアリングします。
すると、VPC ネットワークピアリングがこのように作成されます。
VPC ネットワークピアリングは相互に作成する必要があるので、Status は「inactive」となっており、この状態ではピアリングができていません。
次に、network-b を network-a にピアリングします。
すると、両方の Status が「active」となり、無事に network-a と network-b がピアリングされました。
4. 片方の VM インスタンスから接続してみる
VPC ネットワークのピアリングが完了したので、実際に接続ができているかを確認します。
instance-a から instance-b に ping コマンドを実行してみましょう。
実行コマンドは以下のとおりです。
ping -c 5 10.1.0.2
接続先の内部 IP アドレスは instance-b のものです。
すると、以下のような結果が返され、正常に接続できていることがわかります。
念の為、instance-b から instance-a にも ping コマンドを実行してみましょう。
こちらも正常に接続できています。
VPC ネットワークピアリングを行うことで、内部 IP アドレスを用いて相互に接続することができました。
5. VPC ネットワークピアリングを削除してから接続してみる
試しに、作成した VPC ネットワークピアリングを削除して接続して再び ping を実行してみましょう。
今度は接続ができませんでした。
先ほどと違い、network-a と network-b の VPC 接続がなくなってしまったためです。
まとめ
今回の記事では、VPC ネットワークピアリングについての概要と使い方をご紹介しました。
VPC ネットワークピアリングにより、2つの VPC ネットワークが内部 IP アドレスで相互に接続できるようになります。
また、上限はありますが、複数の VPC ネットワークとのピアリングも可能となっています。
Discussion