Cloud VPNの可用性: HA VPN・multi-region VPN・各region gateway構成

Cloud VPNの可用性を考えるときは、2つの軸を分ける必要があります。

  1. 1region内でVPNトンネル / gatewayを冗長化する
  2. 複数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は役割が近いが、冗長化のパターンは分けて考える

参考

タグ: GCP, クラウド設計, 可用性, ネットワーク