GCPを利用すると、アジア、アメリカ大陸、ヨーロッパなどのリージョンを選ぶことが出来ますが、その各リージョンがネットワーク的にどのぐらい遠いか(RTT)を計測してみます。
リージョン間のRTTを計測する際の注意点
こちら にある図を見るとわかりますが、Googleのネットワークは、日本⇔ヨーロッパと言う経路を考えた際、インドから西を通るルートが無いようです。
実測するとわかりますが、日本⇔ヨーロッパ間でアクセスすると、太平洋を経由しアメリカ大陸経由でアクセスされます。
実際に計測してみる
今回は、
アジア : 東京
アメリカ(西) : Los Angeles
アメリカ(東) : N Virginia
ヨーロッパ : Frankfurt
を利用して計測します。
経路的には以下の6つのルートに対して計測をしました。
- 東京 → ヨーロッパ
- 東京 → アメリカ(東)
- 東京 → アメリカ(西)
- アメリカ(西) → アメリカ(東)
- アメリカ(東) → ヨーロッパ
- アメリカ(西) → ヨーロッパ
になります。
計測環境
Googleのネットワークは以下の図のPremium Tierのものが標準で選択されます。 参考
今回の計測では、Google外部のネットワークの遅延の影響を受けたくないため、送信側/受信側ともにGoogleのネットワーク内で完結させます。
今回は、送信側/受信側ともにGAE/goを利用しました。
仕組み的には、送信側のGAEへリクエストを送信し、リクエストを受けた送信側のインスタンスはurlfetchパッケージを利用し、受信側のGAEへリクエストを投げます。
30回リクエストを投げた際の最大値、最小値、平均値を記録し、それを4回計測します。
計測結果
① 東京 → ヨーロッパ
|試験回数|結果|
|:---:|---|---|---|---|
|1|max: 1179, min: 1149, avg: 1153.741935|
|2|max: 1228, min: 1149, avg: 1156.741935|
|3|max: 1160, min: 1150, avg: 1152.451613|
|4|max: 1235, min: 1149, avg: 1155.677419|
平均 : 1154.6 msec.
② 東京 → アメリカ(東)
|試験回数|結果|
|:---:|---|---|---|---|
|1|max: 779, min: 750, avg: 753.612903|
|2|max: 835, min: 749, avg: 760.774194|
|3|max: 837, min: 750, avg: 759.612903|
|4|max: 770, min: 749, avg: 753.548387|
平均 : 756.8 msec.
③ 東京 → アメリカ(西)
|試験回数|結果|
|:---:|---|---|---|---|
|1|max: 514, min: 497, avg: 500.645161|
|2|max: 596, min: 497, avg: 504.322581|
|3|max: 591, min: 497, avg: 502.870968|
|4|max: 576, min: 497, avg: 502.032258|
平均 : 502.5 msec.
④ アメリカ(西) → アメリカ(東)
|試験回数|結果|
|:---:|---|---|---|---|
|1|max: 448, min: 306, avg: 312.387097|
|2|max: 366, min: 306, avg: 310.483871|
|3|max: 378, min: 305, avg: 313.032258|
|4|max: 361, min: 305, avg: 310.419355|
平均 : 311.5 msec.
⑤ アメリカ(東) → ヨーロッパ
|試験回数|結果|
|:---:|---|---|---|---|
|1|max: 476, min: 440, avg: 443.967742|
|2|max: 514, min: 440, avg: 447.161290|
|3|max: 499, min: 439, avg: 445.096774|
|4|max: 444, min: 440, avg: 442.451613|
平均 : 444.6 msec.
⑥ アメリカ(西) → ヨーロッパ
|試験回数|結果|
|:---:|---|---|---|---|
|1|max: 714, min: 706, avg: 708.903226|
|2|max: 768, min: 706, avg: 712.354839|
|3|max: 716, min: 706, avg: 709.032258|
|4|max: 756, min: 706, avg: 710.967742|
平均 : 710.2 msec.
まとめ
以上の結果を見たところ、最大値でもブレが非常に少なく、とてもネットワークの品質は良さそう。
最低値はほぼ揃っていて、ぶれていても2-3msec程度なので、ほぼその付近がネットワーク的な限界値のような気がします。
例えば、全世界向けのアプリケーションをデプロイしたい、というような場合には、アジアリージョンにデプロイした場合にはヨーロッパからの遅延が大きくなるため(テスト結果から1200msec程度)、アメリカのリージョンにデプロイすることで、アメリカ東 → ヨーロッパ、アメリカ西 → 日本のいずれも500msec近辺に収めることができそうです。
静的なコンテンツに関しては、GAEを利用した場合、GFE(Google Front End)のキャッシュや、CloudCDN、または、サードーパーティーのCDNを利用することで遅延を更に少なくすることができます。
YouTubeやGoogle Playが利用している Edge nodes (Google Global Cache, or GGC) は、以下のように世界中に存在するため、遅延をかなり減らせるようです。(追記: GGCは現状はGCPから利用することは出来ないようです)
参考資料
https://peering.google.com/#/infrastructure
https://cloudplatform-jp.googleblog.com/2017/09/introducing-Network-Service-Tiers-your-cloud-network-your-way.html