Carpe Diem

備忘録

VPC ネットワークピアリングで内部IPで疎通する

概要

前回はCloud VPNによる内部IPでの疎通方法を紹介しました。

christina04.hatenablog.com

今回はVPCピアリングを用いた疎通方法を紹介します。

VPCピアリングを用いて内部IPによる接続を行うと以下のメリットがあります。

  • レイテンシ
    • 外部IPアドレスを使用する接続よりもレイテンシが低い
  • セキュリティ
    • インターネットに公開することがないのでそのリスクを考慮しなくて良い
  • コスト
    • 内部通信扱いされるので、本来外部IPアドレスを使った下り(外向き)で発生するはずのコストが発生しない

検証

事前準備

VPCの用意

VPC リージョン Subnet
vpc-network-1 us-central1 10.5.4.0/24
vpc-network-2 europe-west1 10.1.3.0/24

Firewallの用意

それぞれのVPC

icmp ssh を許可するFirewallを設定します。

VMの用意

疎通確認のためにそれぞれのVPCVMインスタンスを用意します。

インスタンス VPC 内部IP
instance-1 vpc-network-1 10.5.4.2
instance-2 vpc-network-2 10.1.3.2

VPCが異なるのでpingはコケます。

instance-1:~$ ping -c 3 10.1.3.2
PING 10.1.3.2 (10.1.3.2) 56(84) bytes of data.
--- 10.1.3.2 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2051ms

instance-2 → instance-1も同様です。

instance-2:~$ ping -c 3 10.5.4.2
PING 10.5.4.2 (10.5.4.2) 56(84) bytes of data.
--- 10.5.4.2 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2026ms

VPCピアリング

VPCピアリングではピアリング接続の設定をするだけで済みます。

ピアリング接続の作成

  • vpc-network-1 → vpc-network-2
  • vpc-network-2 → vpc-network-1

それぞれのピアリング接続を作成します。

以下のように各VPCを指定しつつ、

  • カスタムルートのインポート
  • カスタムルートのエクスポート

をオンにします。

片方だとステータスは無効ですが、

両方設定すると有効になります。

動作確認

instance-1instance-2を確認してみます。

instance-1:~$ ping -c 3 10.1.3.2
PING 10.1.3.2 (10.1.3.2) 56(84) bytes of data.
64 bytes from 10.1.3.2: icmp_seq=1 ttl=62 time=102 ms
64 bytes from 10.1.3.2: icmp_seq=2 ttl=62 time=99.4 ms
64 bytes from 10.1.3.2: icmp_seq=3 ttl=62 time=99.5 ms

疎通できています。

次にinstance-2instance-1を確認してみます。

instance-2:~$ ping -c 3 10.5.4.2
PING 10.5.4.2 (10.5.4.2) 56(84) bytes of data.
64 bytes from 10.5.4.2: icmp_seq=1 ttl=62 time=102 ms
64 bytes from 10.5.4.2: icmp_seq=2 ttl=62 time=99.5 ms
64 bytes from 10.5.4.2: icmp_seq=3 ttl=62 time=99.5 ms

疎通できています。

注意点

サブネットの範囲が重複しないこと

当然ですがサブネットIP範囲が重複するとVPCピアリングは使えません。

ピアリング時に、Google Cloud は相手側のネットワークでサブネット IP 範囲と重複するサブネット IP 範囲が存在するかどうかを確認します。重複がある場合、ピアリングは確立しません。

ref: https://cloud.google.com/vpc/docs/vpc-peering?hl=ja#considerations

可用性、ネットワーク帯域幅

明示的にSLAは記述されてませんでしたが

ピアリング トラフィック(ピアリングされたネットワーク間で送受信されるトラフィック)のレイテンシ、スループット、可用性は、同じネットワーク内のプライベート トラフィックと同じです。

ref: https://cloud.google.com/vpc/docs/vpc-peering?hl=ja#key_properties

とのことです。

まとめ

VPCピアリング接続を設定するだけで疎通できるので、Cloud VPNよりも非常に簡単に設定することができました。

またスループットなども通常のVPCと同じとのことなので、GCPVPC間の接続であればVPCピアリングオンプレミスとの接続はCloud VPN (トラフィックが大きければCloud Interconnect) という選択が良さそうです。

参考

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