本日も乙

ただの自己満足な備忘録。

AWSとGCP間のVPN接続の冗長構成とフェイルオーバーについての検証

前回の記事 でAWSとGCPのVPNの違いについて調べてみました。今回は冗長構成にしてみてVPNトンネルを落としたときに挙動から、各クラウドのVPNの違いについて見ていきたいと思います。

blog.jicoman.info

構成

以下のようなシンプルな構成です。AWSはVPN接続一つにつき、トンネルが二つ作成されるため、VPN接続を二つ作成すると、GCP側ではVPNトンネルは四つ必要になります。
今回は静的ルーティングで設定してみました。

aws-gcp-vpn

AWS側の設定

ここではキャプチャのみ貼り付けていきます。細かい設定方法はこちらが参考になりました。

Amazon VPCとGoogle Compute EngineをVPN接続する | DevelopersIO

カスタマーゲートウェイ(CGW)

aws-gcp-vpn

仮想プライベートゲートウェイ(VGW)

aws-gcp-vpn

VPN接続(ここを二つ作成し冗長構成化)

aws-gcp-vpn

GCP側の設定

VPNゲートウェイ。ゲートウェイ一つにつき、トンネルを四つ作成。

aws-gcp-vpn

VPNトンネル

aws-gcp-vpn

フェイルオーバーの検証

検証方法

  • AWSとGCPからそれぞれpingとhttp通信( curl <IPアドレス> )をする
  • pingは疎通確認がとれるかを確認するため
  • httpは通過するパケットサイズを見てどのトンネルが使われているかを確認するため

フェイルオーバー実施前

AWSは四つのトンネルのうち、一つのみ使用されていることがわかります。

aws-gcp-vpn

それに対し、GCPは四つのトンネルそれぞれに分散されていることがわかります。

aws-gcp-vpn

フェイルオーバー実施後

手動フェイルオーバーができないため、GCPのトンネルを削除することでフェイルオーバーされるかを確認しました。フェイルオーバーを二回行い、挙動を確認しました。

AWSは使用されているトンネルが落ちると、別のトンネルに切り替えて疎通されていることがわかります。

aws-gcp-vpn

GCPは残りのトンネルでトラフィックを分散しているのが確認できました。

aws-gcp-vpn

pingは2回とも約40秒程度で通信が復旧していました。

# 1回目
64 bytes from 10.0.0.6: icmp_seq=1287 ttl=128 time=4.46 ms
64 bytes from 10.0.0.6: icmp_seq=1288 ttl=128 time=4.35 ms
64 bytes from 10.0.0.6: icmp_seq=1289 ttl=128 time=4.30 ms
64 bytes from 10.0.0.6: icmp_seq=1290 ttl=128 time=4.58 ms   # 通信切断
64 bytes from 10.0.0.6: icmp_seq=1331 ttl=128 time=4.49 ms   # 通信再開
64 bytes from 10.0.0.6: icmp_seq=1332 ttl=128 time=4.38 ms
64 bytes from 10.0.0.6: icmp_seq=1333 ttl=128 time=4.79 ms
64 bytes from 10.0.0.6: icmp_seq=1334 ttl=128 time=4.54 ms

# 2回目
64 bytes from 10.0.0.6: icmp_seq=2133 ttl=128 time=5.25 ms
64 bytes from 10.0.0.6: icmp_seq=2134 ttl=128 time=4.91 ms
64 bytes from 10.0.0.6: icmp_seq=2135 ttl=128 time=8.13 ms
64 bytes from 10.0.0.6: icmp_seq=2136 ttl=128 time=5.04 ms  # 通信切断
64 bytes from 10.0.0.6: icmp_seq=2180 ttl=128 time=6.51 ms  # 通信再開
64 bytes from 10.0.0.6: icmp_seq=2181 ttl=128 time=6.18 ms
64 bytes from 10.0.0.6: icmp_seq=2182 ttl=128 time=8.53 ms
64 bytes from 10.0.0.6: icmp_seq=2183 ttl=128 time=6.10 ms

結論

以上の結果から、以下の結論に至ります。

  • AWSはホットスタンバイ方式でどれかひとつだけのトンネルが使用される。そのためトンネルをいくら増やしてもVPNの帯域が増やすことはできない(前回の記事を参照)
  • GCPはトンネルの数だけトラフィックを分散する。そのためトンネルを増やす分だけVPNの帯域を増やすことができる

参考