💭

VPC ネットワークピアリングの概要

2023/10/06に公開

はじめに

こんにちは。クラウドエースの木村です。
本記事にてご紹介する内容は、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 インスタンスを使ってこれらをピアリングで接続していきます。
以下の手順で行います。

  1. VPC ネットワークの作成
  2. 異なる VPC ネットワークで VM インスタンスを作成
  3. VPC ネットワークピアリングの作成
  4. 一方の VM インスタンスから接続してみる
  5. 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