概要
前回はCloud VPNによる内部IPでの疎通方法を紹介しました。
今回は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の用意
疎通確認のためにそれぞれのVPCにVMインスタンスを用意します。
インスタンス名 | VPC | 内部IP |
---|---|---|
instance-1 | vpc-network-1 | 10.5.4.2 |
instance-2 | vpc-network-2 | 10.1.3.2 |
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を指定しつつ、
- カスタムルートのインポート
- カスタムルートのエクスポート
をオンにします。
片方だとステータスは無効ですが、
両方設定すると有効になります。
動作確認
instance-1
→instance-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-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. 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と同じとのことなので、GCPのVPC間の接続であればVPCピアリング、オンプレミスとの接続はCloud VPN (トラフィックが大きければCloud Interconnect) という選択が良さそうです。