これはドリコム Advent Calendar 2024 の17日目です。
こんにちは。インフラソリューション部のひらしーです。 今回は主要クラウドサービス間VPN接続が必要になった際にどのようなことを注意しておいたほうが良いかを紹介します。

対象範囲

この記事の対象範囲は以下となります。
  • AWSとMicrosoft Azure(以下Azure)間のVPN接続
  • AWSとGoogle Cloud間のVPN接続
  • 相互のローカルネットワークを接続する閉域網
  • 専用線サービスではなく、インターネット経由のVPNを利用

利用料金に関する検討

ローカルネットワーク間WEBサービスを想定したVPN構成での利用料金を比較してみます。
  • リージョン: 東日本
  • 帯域: 1Gbps(送受信合計)
  • 1ヶ月のデータ転送量
    • 送信: 10TB
    • 受信: 100TB
  • 冗長構成: アクティブ/アクティブ(常時使用可能な接続が最低2本あり、障害時でも生存回線を利用して遅延なし。接続本数分の費用がかかる)

AWS

  • 想定リージョン: ap-northeast-1
  • Site-to-Site VPN: AWS VPNの料金
    • 固定費: Site-to-Site VPN 72$/月 * 2接続
    • 時間料金: 0.048$/時間 > 35.712$/月 * 2接続
  • データ転送料金: Amazon EC2 オンデマンド料金
    • クラウドネットワークへのin(受信)料金: 無料
    • AWSネットワークへのout(送信)料金:
      • 最初の 10 TB/月: 0.114$/GB
      • 次の 40 TB/月: 0.089$/GB
      • 次の 100 TB/月: 0.086$/GB
    • 100TB/月の料金: (0.114 * 1000 * 10) + (0.089 * 1000 * 40) + (0.086 * 1000 * 50) = 9000$/月
AWSトータル概算: 9107.712$/月

Azure

  • 想定リージョン: Japan East
  • VPN Gatewayの料金
    • 固定費: VPN Gateway Availability Zones VpnGw2AZインスタンス 411.72$/月
  • データ転送料金: 帯域幅 の価格
    • Azureネットワークへのin(受信)料金: 無料
    • Azureネットワークからout(送信)料金: インターネット エグレス (Microsoft Premium グローバル ネットワーク経由でルーティング)
      • ソースの大陸: アジア
        • First 100 GB/Month: 無料
        • Next 10 TB/Month: 0.12$/GB
        • Next 40 TB/Month: 0.085$/GB
        • Next 100 TB/Month: 0.082$/GB
      • 100TB/月の料金: (0.12 * 1000 * 10) + (0.085 * 1000 * 40) + (0.082 * 1000 * 49.9) = 8691.8$/月
Azureトータル概算: 9103.52$/月

Google Cloud

  • 想定リージョン: asia-northeast1
  • Cloud VPN: Network Connectivityの料金
    • 固定費: Cloud VPN 0.075$/時間 > 55.8$/月 * 2接続
    • データ転送料金: ネットワーキングのすべての料金体系
      • Google Cloudサービスのロケーション: アジア – エクスポート先: アジア
        • Google Cloudネットワークへのin(受信)料金: 無料
        • Google Cloudネットワークからout(送信)料金: – $0.08/GiB
      • 100TB/月の料金: 100 * 1024 * 0.08 = 8192$/月
Google Cloudトータル概算: 8303.6$/月

利用料金まとめ

このように同一クラウド内ローカルネットワークで同じ機能を実現した場合と比較して無視できない料金となるケースがあります。 この見積もりは以下の点にも注意して下さい。
  • サービスの特性によりリージョン、帯域、冗長数は変わってくると思いますので適宜リンクを参考にして下さい。
  • AWS-Azure間接続の場合は上記AWSとAzureの合計金額がかかります。AWS-Google Cloud間接続の場合も同様です。
  • セキュリティーグループ、トランジットゲートウェイ、Public IPアドレスのようなネットワーク構成に付随する機能を利用する場合は別途料金がかかります。

ネットワークパフォーマンスに関する検討

クラウドサービス間VPN接続はインターネット経由で接続するためデータセンター間との経路が予測しずらく、特に遠方リージョン間の接続は 仕様上の帯域速度やレイテンシを達成できないケースがあります 。必ず検証環境を用意し以下のネットワークパフォーマンス計測を行いましょう。
  • pingを利用したレイテンシ計測
# AWS EC2からAzure VMへのping
$ ping 10.0.1.10
PING 10.0.1.10 (10.0.1.10) 56(84) bytes of data.
64 bytes from 10.0.1.10: icmp_seq=1 ttl=64 time=2.31 ms
64 bytes from 10.0.1.10: icmp_seq=2 ttl=64 time=2.28 ms
64 bytes from 10.0.1.10: icmp_seq=3 ttl=64 time=2.33 ms
64 bytes from 10.0.1.10: icmp_seq=4 ttl=64 time=2.29 ms
64 bytes from 10.0.1.10: icmp_seq=5 ttl=64 time=2.30 ms

--- 10.0.1.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 2.280/2.302/2.330/0.019 m
  • iperf3を利用した帯域計測
# サーバ側: 空きポート5001を利用して1秒ごとに計測
iperf3 -s -p 5001 -i 1 -V -1

# クライアント側: サーバ側に向けて2Gbpsのデータ送信を要求(Webサービス間の帯域を想定)
$ iperf3 -c 10.0.1.10 -p 5001 -b 2000M -t 10 -i 1 -V --reverse
:
Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   239 MBytes  2.01 Gbits/sec
[  4]   1.00-2.00   sec   238 MBytes  2.00 Gbits/sec
[  4]   2.00-3.00   sec   238 MBytes  2.00 Gbits/sec
[  4]   3.00-4.00   sec   239 MBytes  2.00 Gbits/sec
[  4]   4.00-5.00   sec   239 MBytes  2.00 Gbits/sec
[  4]   5.00-6.00   sec   238 MBytes  2.00 Gbits/sec
[  4]   6.00-7.00   sec   243 MBytes  2.04 Gbits/sec
[  4]   7.00-8.00   sec   238 MBytes  2.00 Gbits/sec
[  4]   8.00-9.00   sec   239 MBytes  2.00 Gbits/sec
[  4]   9.00-10.00  sec   238 MBytes  2.00 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  2.34 GBytes  2.01 Gbits/sec  691             sender
[  4]   0.00-10.00  sec  2.33 GBytes  2.00 Gbits/sec                  receiver
CPU Utilization: local/receiver 9.7% (0.7%u/9.2%s), remote/sender 3.0% (0.1%u/2.9%s)
snd_tcp_congestion cubic
rcv_tcp_congestion cubic
 
iperf Done.

クラウドサービス間VPN接続を選択すべきケースと選択すべきでないケース

コスト・ネットワークパフォーマンスのハンデを許容してでもクラウドサービス間VPN接続を選択すべきケースもありますので以下の観点で検討してみましょう。
  • クラウドサービス間VPN接続を選択すべきケース
    • 既に利用中の複数クラウドサービスが存在し、同一クラウドに作り直すのが困難なケース
    • 既に利用中のクラウドサービスが存在し、特定のクラウドサービスしか提供できない機能があるケース(OpenAI、Geminiなど)
  • クラウドサービス間VPN接続を選択すべきでないケース
    • 特定のチーム・エンジニアが特定のクラウドサービス利用を要望しているケース
    • 大容量コンテンツ転送などのネットワークパフォーマンスが重要なケース

まとめ

主要クラウドサービス間VPN接続を検討する際に注意することについて紹介しました。 本記事が検討の一助となれば幸いです。