GMOアドマーケティングのT.Cです。
今回は、VPC Peeringを利用してGCPのプロジェクト間のVM to VM, VM to MIGの通信をしてみます。
VPC Peering
- 2つのVPCネットワークを繋いで、各ネットワーク内のリソースが相互に通信できるようにします。
- GCPの同じプロジェクト、同じ組織の異なるプロジェクト、又は異なる組織のプロジェクトで通信可能です。
VPC Peeringの利点
- Low Latency: 外部アドレスではなく、内部アドレスを利用するのでより早くなります。
- Security: 内部アドレスを利用するので、セキュリティ(public internetを経由しない)にもいいです。
- Network Cost: public internetを経由しないため、publicへのegress料金を節約できます。通常のネットワークの料金は発生します。
例えば、GCPのVM間の通常のネットワーク料金だと、内部IPを利用であり同じゾーンであれば無料、同じリージョンで異なるゾーンであれば$0.01(1GB)の料金が発生します。
ただ、外部IPを利用すると、通常のネットワーク料金に加えてPremium Tier(= default tier)の場合$0.12~$0.14(1GB)のpublicへのegress料金が発生します。
1 |
例えば、30000GBを使ったとするとpublicへのegress料金は、30000GB * $0.14 = $4200 となります。 |
GCPドキュメント :「通常のネットワーク料金」、「publicへのegress料金」
実践
プロジェクトAとプロジェクトBをPeeringして通信してみます。プロジェクトA -> VPCネットワーク -> VPCネットワーク作成に入り、a-peeringというVPCネットワークを作成します。 プロジェクトBでも、上記と同じくb-peeringというVPCネットワークを作成します。
ただ、サブネットのIP Adress Rangeが被らないようにしてください。
次に、VPC Peeringを作成していきます。
プロジェクトA -> VPCネットワーク -> VPCネットワーク ピアリングに入り、プロジェクトBとの接続設定をします。 プロジェクトBでも、上記と同じくプロジェクトAとの接続設定をします。
各プロジェクトにピアリングの接続を作成したら、以下のようにステータスが「有効」になります。
後は、プロジェクトAとBでテストするため、作成したVPCネットワークを利用してインスタンスを立ち上げて、Pingでテストします。
プロジェクトAのインスタンスからプロジェクトBへのPingテスト これで、VPC Peeringを利用して、プロジェクト間のVMの通信ができました。
次は、内部ロードバランサーを利用してMIGとの通信もテストしてみます。
まず、インスタンスグループを生成します。
インスタンステンプレートは、事前に用意したものを使っていてapacheがインストールされています。
(プロジェクトAのa-peering-instance -> プロジェクトBのLB -> プロジェクトBのMIGの通信)
次に、内部ロードバランサーも作成します。 LBのヘルスチェックが通るように、ファイアウォールを確認してください。
構成に問題がなければ、バックエンドのステータスが「正常」になります。
プロジェクトAのインスタンス(a-peering-instance)に入り、通信のテストをします。 これで、VPC PeeringでMIGとの通信もできました。