ついにGAEに東京リージョンが新設されました!!サービス開始からGAEを触れていたユーザにとっては待ちに待った瞬間だったのではないでしょうか!!もちろん、古くから利用していたユーザだけでなく、東京リージョンの新設によってGAEに興味を持ったユーザも多いと思います。というわけで、今回はGAEの東京リージョン新設記念に、GAEのレスポンス比較をおこなってみようと思います!!一体どんな結果になるのでしょうか!?
そもそもGoogle App Engineとは何か?
Google App Engine(以下GAE)とは、Googleが提供するPasS(Platform as a Service)のことで、ユーザはこのサービスによってJAVA、Python、GO、PHP等で開発したアプリケーションを簡易に世界中に公開することができます。アプリケーションはGoogleのインフラ上で実行され、ユーザはサーバの心配はせず、アプリケーションの開発だけに集中することができます。もちろん各言語別のSDKも提供されており、すぐにでも開発をおこなうことができます。
実は無意識にGAEの恩恵を受けている
本記事を読んで初めてGAEを知った方もいるかもしれませんが、実は知らないところでGAEの恩恵を受けている可能性があります。例えば、IngressというアプリケーションではバックエンドにGAEを利用していると言われています(※1)。また、GAEはIngressのようなゲームアプリだけでなく、企業や個人のHP、はたまた業務システムまで様々な分野で利用されています。実はこれまでも身近な存在であったGAEが東京リージョンの登場によって、今後さらに注目されるのは間違いないと思います。
※1 ちなみにGCPという大きな枠組みで見れば、ポケモンGOもGCPで構築されていると言われています。ポケモンGO関連の記事については以前apps-gcpでも取り上げていますので、興味がある方は以下のURLをご確認ください。
-ポケモンGOのバックエンドサーバはやっぱりGCPだった!
速度検証の条件
本記事の本題に戻ろうと思います。リージョン毎の速度比較をおこなう上で、まずはGAEで選択可能なリージョンの種類を知る必要があります。2016/11/09現在、GAEには以下4つのリージョンが存在します。
- us-central
- europe-west
- us-east1
- asia-northeast1(東京リージョン)
本記事では、上記4つのリージョン毎のレスポンス速度を比較してみます(※2)。利用言語はGOを利用し、「Hello, Tokyo Region!!」をレスポンスで返す以下のコードによって、速度の検証をおこないます(※3)。
package hello
import (
"fmt"
"net/http"
)
func init() {
http.HandleFunc("/hello", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, Tokyo Region!!")
}
※2 GAEのリージョン指定はGCPプロジェクト作成時におこないます。プロジェクト作成ダイアログが表示されると、GAEのリージョンはオプションとして隠れているので、「Show advanced options…」リンクをクリックし、以下のようなリージョン選択用のプルダウンを表示させた上で、任意のリージョンを選択するようにしましょう。
※3 本記事ではGAEへのGOアプリ公開手順については説明しません。GAEにアプリをデプロイする手順については、以下記事をご参考ください。
-PaaS最前線!たったの15分でできるGAE/GO入門!
各リージョンに対するレスポンス検証結果の発表!!
4リージョンでの速度比較は以下の通リとなりました!!以下表を見ていただければわかる通リ、非常に明確な差が出ました。東京リージョンに次いで早かったのはus-centralでしたが、そのus-centralと比較しても4倍以上のレスポンスの速さを計測しました(※4)!!
リージョン | 1回目 | 2回目 | 3回目 | 4回目 | 5回目 | 平均 |
us-central | 0.199s | 0.187s | 0.157s | 0.159s | 0.173s | 0.175s |
europe-west | 0.394s | 0.797s | 0.369s | 0.262s | 0.260s | 0.416s |
us-east1 | 0.217s | 0.206s | 0.213s | 0.192s | 0.203s | 0.206s |
asia-northeast1(東京リージョン) | 0.043s | 0.057s | 0.048s | 0.035s | 0.037s | 0.040s |
※4 curlコマンドでHTTPリクエストを発行しレスポンスを取得するまでの時間をtimeコマンドで計測しました。もちろんインスタンスをスピンアップさせた後の速度比較となります。
まとめ:東京リージョン爆速!
検証の結論としては、「やっぱり東京リージョンは早い」ことがわかりました。この結果を受けて、個人的にはすぐにでも東京リージョンでアプリを作りたいと思いました(笑) 東京リージョンの登場によって、GAEだけではなくGCP全体がどう盛り上がっていくかとても楽しみです。
ちなみに、弊社ではクラウドエース(Cloud Ace)というGCPの導入・運用支援サービスを提供しておりますので、ご興味のある方はこちらまでお問い合わせください。GAEに限らず、あらゆるGCPサービスのサポートが可能です。