AWS
ネットワーク
gcp

GCPの北米に建てたインスタンスへの通信が早くなった気がするのでAWSと比較してみた

はじめに

ぼくは貧乏なので、無料で使えるネットワークとかサーバが欲しいです。いろいろ試したり、気軽にぶっこわしていいやつ。お金持ちのみんな、オラにインスタンスとかネットワークを分けてくれ!:relaxed:

お金持ち?のみんな

GCP:AlwaysFree
AWS:クラウド無料利用枠

インスタンスを使いたいだけで、性能はショボくてよいなら、AWS(EC2)ならt2.mircoスペックで1年間、GCP(GCE)ならf1-microスペックが永久無料です。あとはなんか無料で使えるDNSとかLet'sEncryptとかいろいろ使って、お安く環境構築しましょう。:muscle_tone2:

GCPのAlwaysFreeの制限

永久無料なんて太っ腹だな!!って思いますが、じつはGCPのインスタンスサービスであるGCEのAlwaysFreeは制限があり、北米リージョンのみでしか使えません。残念ながら東京にはない。AWSは東京でも無償枠ありますが、こちらは1年縛り。

本題

2年ぐらい前の個人的な体験談

正確な時期は忘れましたが、AlwaysFreeかーすげぇなーって思ってなんとなくGCP北米リージョンに建ててみたものの、そこはまぁ北米。海底ケーブルを渡るので当然ですがレイテンシがあります。具体的な数値は記録してなかったので忘れましたが、うーん、普通にSSHログインして使うのはちょっと厳しいなぁ、という感じでした。残念。
当時建てたインスタンスはおよそ2年間建てっぱなしで放置しましたが、一度もダウンすることはありませんでした。去年夏ごろに思い出して削除。

直近(この年末年始らへん)

またちょっと気軽に使えるインスタンス欲しいなと思い、GCEの us-west-1b に1台インスタンスを建てたところ、あれ以前思ったよりも快適だなと。レイテンシはあるっちゃあるけど、これぐらいならまあ使えるなあといった感じ。
VSCodeのSSH FSを使って、東京のインターネットからSSH越しでのファイル編集も普通にできるレベルになってると感じました。

どれくらいよ?ping測定

とりあえず簡単にping。自分の自宅のインターネット回線から実施。

GCP(GCE)

リージョンは us-west-1b(The Dalles, OR) ※オレゴン州ダレス(テキサスのダラスではない)
西海岸ですね。

 # ping -c 10 35.233.199.xxx
PING 35.233.199.xxx (35.233.199.xxx) 56(84) bytes of data.
64 bytes from 35.233.199.xxx: icmp_seq=1 ttl=53 time=95.8 ms
64 bytes from 35.233.199.xxx: icmp_seq=2 ttl=53 time=96.5 ms
64 bytes from 35.233.199.xxx: icmp_seq=3 ttl=53 time=98.4 ms
64 bytes from 35.233.199.xxx: icmp_seq=4 ttl=53 time=98.8 ms
64 bytes from 35.233.199.xxx: icmp_seq=5 ttl=53 time=110 ms
64 bytes from 35.233.199.xxx: icmp_seq=6 ttl=53 time=100 ms
64 bytes from 35.233.199.xxx: icmp_seq=7 ttl=53 time=110 ms
64 bytes from 35.233.199.xxx: icmp_seq=8 ttl=53 time=101 ms
64 bytes from 35.233.199.xxx: icmp_seq=9 ttl=53 time=124 ms
64 bytes from 35.233.199.xxx: icmp_seq=10 ttl=53 time=126 ms

--- 35.233.199.xxx ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9008ms
rtt min/avg/max/mdev = 95.843/106.431/126.509/10.816 ms

100ms前後で通信できてる模様。なるほど北米まででこんなものか。

AWS(EC2)

リージョンは同様に us-west-2(オレゴン) です。

 # ping -c 10 54.191.10.yyy
PING 54.191.10.yyy (54.191.10.yyy) 56(84) bytes of data.
64 bytes from 54.191.10.yyy: icmp_seq=1 ttl=231 time=111 ms
64 bytes from 54.191.10.yyy: icmp_seq=2 ttl=231 time=111 ms
64 bytes from 54.191.10.yyy: icmp_seq=3 ttl=231 time=114 ms
64 bytes from 54.191.10.yyy: icmp_seq=4 ttl=231 time=120 ms
64 bytes from 54.191.10.yyy: icmp_seq=5 ttl=231 time=131 ms
64 bytes from 54.191.10.yyy: icmp_seq=6 ttl=231 time=127 ms
64 bytes from 54.191.10.yyy: icmp_seq=7 ttl=231 time=116 ms
64 bytes from 54.191.10.yyy: icmp_seq=8 ttl=231 time=127 ms
64 bytes from 54.191.10.yyy: icmp_seq=9 ttl=231 time=118 ms
64 bytes from 54.191.10.yyy: icmp_seq=10 ttl=231 time=111 ms

--- 54.191.10.yyy ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9008ms
rtt min/avg/max/mdev = 111.449/119.293/131.787/7.050 ms

こちらも110ms前後で通信できてる模様。GCEにはちょっと負けますが、こちらもわりかし安定しているようです。

ネットワーク経路

せっかくなので経路も確認してみましょう。
貧困なので、ThousandEyesのFreeTrialでホップ情報可視化して見ます。
ThsousandEyesのFreeTrialでは、日本からは東京/KDDIネットワークのエージェントが使えます。

GCP(GCE)

gcp1.png
スタート(Tokyo/KDDI ThousandEyesのエージェントがインストールされたサーバ)からゴール(GCEのインスタンス)までの経路が一本の線で表示されています。赤字部分は、最も遅延が発生( >80ms でフィルタ)した箇所。これをチェックすると、

gcp2.png
ここまでは日本国内、東京のKDDIのネットワークを通り、

gcp3.png
ここでGoogleのネットワークへ接続、まだ日本国内

gcp4.png
ここで、LocationがUSになります。おそらく赤をつけた部分(このネットワーク経路で最もlatancyがあった箇所)は、太平洋を海底ケーブルでくぐってる箇所なのでしょう。

あとはそのままGoogleの網を通り、目的のインスタンスへ。

AWS(EC2)

おなじエージェントから、同様にネットワーク経路を確認してみます。

aws1.png
ホップ数は23、GCPのときよりちょっと増えましたね。

aws2.png
今回もっともlatancyがあった(>80ms)のはこちらのようです。ただこれ、、、

aws3.png
KDDIの網内や、AWS関係ない:sweat:

aws4.png
そしてこのホップから

aws5.png
ズバっと Seattle, Washington, US へジャンプ!アメリカのインターネットへ到達していることがわかりますね。

aws6.png

ここまで、アメリカ国内のネットワークを通過し、aws7.png
目的のインスタンスへ到達。
白玉になっている場所は情報が取得できなかったホップです。icmp応答を許可していないのでしょう。おそらくAWS網内。

まとめ

今回の計測で、以下のことが確認できました。

  • 日本国内から北米GCPインスタンスへ接続する場合、日本国内でGoogleの網に入りGoogleの海底ケーブルを通って北米環境へリーチする
  • 日本国内から北米AWSインスタンスへ接続する場合、インターネットを通って北米に到達してから、北米内でAmazonの網に入りインスタンスへリーチする

Googleがネットワークへ投資している(AWSがしていないわけではない)ことがよくわかった計測かと思います。
ぜひGoogleのネットワークの恩恵を(無償で)受けましょう:relaxed:

大事なこと

  • この計測は、2019/01/07 22時ごろ(JST)に、ほんの1回だけping/icmpで計測されたものです。本当にネットワーク速度が計測する必要があれば、もっと長時間、また複数のプロトコルで測定することをお勧めします。
  • インターネット経路は状況により大きく変わります。この結論はただ1回の計測で示されたものであり、あくまで本記事を読むときの参考としてください。

参考

(GCP)クラウドのロケーション/ネットワーク
(GCP)『ドラゴンボール レジェンズ』の舞台裏を支える Google Cloud
(GCP)新リージョンと海底ケーブルの増設でグローバル インフラストラクチャを拡張

AWSはネットワーク紹介系の記事なかったかしら。。:thinking: