Cloud VPNの可用性を考えるときは、2つの軸を分ける必要があります。
- 1region内でVPNトンネル / gatewayを冗長化する
- 複数regionにCloud VPN gatewayを置く
前者がHA VPN、後者がmulti-region Cloud VPN構成です。両者は似ていますが、備えている障害が違います。
Cloud VPNはregional resource
まず前提として、Cloud VPN gatewayとVPNトンネルはregional resourceです。zone単位ではありません。
- Cloud VPN gateway
- regionに作る
- VPNトンネル
- そのregionのCloud VPN gatewayから張る
- zoneごとのVPN
- ない
単一regionのCloud VPNは以下の形です。
flowchart TB
onprem["On-prem VPN gateway"]
subgraph r1["Region A"]
vpn1["Cloud VPN gateway<br/>regional"]
app1["App / VM / GKE"]
end
vpn1 <-->|"VPNトンネル"| onprem
vpn1 --> app1
これは基本構成であり、それ自体は強い冗長構成ではありません。
HA VPN: 1region内のVPN経路冗長
HA VPNは、1region内でVPN gatewayのinterfaceやVPNトンネルを冗長化する構成です。
flowchart TB
subgraph r1["Region A"]
havpn["HA VPN gateway<br/>interface 0 / 1"]
router["Cloud Router<br/>BGP"]
vpc["VPC"]
end
subgraph onprem["On-prem network"]
peer1["VPN device A"]
peer2["VPN device B"]
lan["On-prem LAN"]
peer1 --- lan
peer2 --- lan
end
havpn <-->|"VPNトンネル 1"| peer1
havpn <-->|"VPNトンネル 2"| peer2
havpn --> router --> vpc
この図では、GCP側にHA VPN gatewayを置き、オンプレ側にはVPN deviceを置いています。VPN device A/Bはオンプレネットワークが2つあるという意味ではなく、オンプレ側のVPNエンドポイントを冗長化する構成例です。
HA VPN gatewayのinterface 0 / 1は、VPNトンネルを張るためのGCP側の接続点です。それぞれに外部IPがあり、オンプレ側VPN deviceとの間にIPsecトンネルを張ります。Cloud RouterはBGPで経路情報を交換します。BGPは、どのIP範囲がどちら側にあるかをルーター同士で共有するプロトコルです。
HA VPN gateway、VPNトンネル、Cloud Router、BGPピアの関係は『HA VPNの経路制御で使うVPNトンネルとCloud RouterとBGPピアの関係』で詳しく整理しています。
HA VPNが備えるのは以下です。
- VPNトンネル障害
- gateway interface障害
- peer側VPN装置の障害
- BGP経路切替
Classic VPNと役割が違うわけではありません。どちらもオンプレとVPCをつなぎます。HA VPNは、その接続を高可用にする方式です。
multi-region Cloud VPN: 各regionにgatewayを置く
複数regionにアプリを置くなら、オンプレ接続も各regionに持たせることがあります。
flowchart TB
onprem["On-prem VPN gateway"]
subgraph r1["Region A"]
vpn1["Cloud VPN gateway A"]
app1["App / VM"]
end
subgraph r2["Region B"]
vpn2["Cloud VPN gateway B"]
app2["App / VM"]
end
vpn1 <-->|"VPNトンネル A"| onprem
vpn2 <-->|"VPNトンネル B"| onprem
vpn1 --> app1
vpn2 --> app2
この構成の目的は、オンプレ接続を1つのGCP regionに依存させないことです。
Region AのVPN経路に問題があっても、Region B側は自分のVPN経路でオンプレへ接続できます。
これはHA VPNとは別パターンです。
各region HA VPN
より強くするなら、各regionにHA VPN gatewayを置きます。
flowchart TB
peer1["On-prem VPN device A"]
peer2["On-prem VPN device B"]
subgraph r1["Region A"]
havpn1["HA VPN gateway A<br/>interface 0 / 1"]
end
subgraph r2["Region B"]
havpn2["HA VPN gateway B<br/>interface 0 / 1"]
end
havpn1 <-->|"VPNトンネル A1"| peer1
havpn1 <-->|"VPNトンネル A2"| peer2
havpn2 <-->|"VPNトンネル B1"| peer1
havpn2 <-->|"VPNトンネル B2"| peer2
これは以下を組み合わせた構成です。
- HA VPN: 1region内のVPNトンネル/interface冗長
- multi-region Cloud VPN: VPN gateway自体を複数regionに置く
Interconnectとは別の冗長化
Cloud VPNはインターネット上にIPsecトンネルを張る方式です。Cloud Interconnectは専用線/閉域接続です。
- Cloud VPN: Internet経由の暗号化トンネル
- Cloud Interconnect: 専用線/閉域接続
Cloud InterconnectのバックアップとしてCloud VPNを使うこともあります。この構成は『Cloud Interconnectの可用性』で扱います。
まとめ
- Cloud VPN gatewayとVPNトンネルはregional resource
- HA VPNは1region内のVPNトンネル/interface冗長
- multi-region Cloud VPNは各regionにCloud VPN gatewayを置く構成
- 各region HA VPNは、region分散とVPNトンネル冗長を両方行う構成
- VPNとInterconnectは役割が近いが、冗長化のパターンは分けて考える