[Bitflyer API].jpと.comの違い+α
「Pingの数値が.jpの方が早かったから注文通るの早いんじゃないの!?!?」
どうもこんにちは。最近ツイッターで
「API叩く先を api.bitflyer.jp から api.bitflyer.com に変えたら早くなった!」
的なツイートを見たので検証してみようと思います。
あと、オマケ的(こっちが本題だったりする)な感じで一体何処の国のVPSを使ったらいいのかといったところまで実際に10ヵ所の海外リージョンで検証していきます。検証にはVultrを使います。
0.検証に入る前に
一般的に、通信速度の測定にはpingコマンドを使うと思います。
pingコマンドでは自分のパソコンと相手のサーバー(一部例外有)の通信時間を調べることができます。
pingコマンドの例
C:\>ping google.com
google.com [216.58.197.14]に ping を送信しています 32 バイトのデータ:
216.58.197.14 からの応答: バイト数 =32 時間 =28ms TTL=55
216.58.197.14 からの応答: バイト数 =32 時間 =18ms TTL=55
216.58.197.14 からの応答: バイト数 =32 時間 =18ms TTL=55
216.58.197.14 からの応答: バイト数 =32 時間 =24ms TTL=55
216.58.197.14 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 18ms、最大 = 28ms、平均 = 22ms
一見BitflyerのAPIサーバーまでの応答速度が分かりそうですが実は正しく計れているようで計れていません。
今回は自分のパソコンからAPIを提供しているwebサーバープログラムとの通信時間を計測する必要があります。
回りくどい言い方になってしまい申し訳ありませんが、
今回はhttpingコマンドを使用して正確にAPIサーバーとの通信時間を測定します。そう、pingコマンドで出た数値がそのままAPIと速度とは限らない!!
それでは実際に検証していきます。
1.推測
まず、.jpと.comの違いは何なのか推測してみます。
.jpと.comの宛先は一体どこなんでしょう?
実際にこの2つでアクセスした結果、IPアドレス的には
api.bitflyer.jp => 104.23.242.145 or 104.23.243.145
api.bitflyer.com => 107.154.247.50
という結果になりました。(IPアドレスはそのまま載せてます。)
.jp側は2つのIPアドレスにランダムに振り分けられます。
一方.com側は1つのIPアドレスで固定なようです。
この時点でおそらく.jp側はなにか他のサービスを噛ませていることが推測できます。
もっと追求してみましょう。次はおおよそのサーバーの所在地です。
api.bitflyer.jp => United States,California, Redwood City
104.23.242.145 => United States,California, San Francisco
104.23.243.145 => United States,California, San Francisco
api.bitflyer.com => United States,California, Redwood City
107.154.247.50 => United States,California, Redwood City
上記の結果等をあわせて検証した結果、
.jpでアクセスする場合
自分のPC→cdn.cloudflare.net→incapsulaが提供しているAPIサーバー
.comでアクセスする場合
自分のPC→incapsulaのDNS→incapsulaが提供しているAPIサーバー
という経路をたどります。
長くなってしまったのでまとめましょう。
・api.bitflyer.jp と api.bitflyer.com は結果同じサーバーにたどり着く!
・.jpへの経路は 自分PC→Cloudflare→アメリカのAPIサーバー
・.comへの経路は 自分PC→アメリカのAPIサーバー(同サービスDNS)
といった感じです。
.jpはcloudflareを経由
.comはAPIサーバーと同じサービスのDNSを使用
これが大きな違いでした。この違いがどういうことかは各自でお考えください()
あくまで僕の推測も混じっているので間違っているところもあるかもしれません。
2.どこの国のVPSを使ったら一番早いのか
やっと今回の本題(+α)の部分に入ります。ここでは実際に
ロンドン、東京、シンガポール、ネザーランド、パリ、ドイツ、アトランタ、シアトル、トロント、シドニーのサーバーを使用して速度の実測値を調べてみようと思います…
が、続きは様子を見て公開します。
追記おまけ
[httping] .comのほうが断然早かったの図
[ping] .jpのほうが早いと勘違いしてしまうの図