見出し画像

Google App Engine 強みと弱み

Google App Engineが今ひとつメジャーになりきれていない背景は下記ノートをご参照ください。

強み

・モデル(データベース)定義含め核となるコードは1ファイルで完結可能です。下記URLをご参照ください。もちろん分割することも可能です。

https://github.com/yoheinishikubo/appengine-guestbook-python/blob/master/guestbook.py

・粒度の細かい処理ごと(例えばDatastoreへのデータの読み書き)の課金体系となるため、結果的に低コストとなる可能性が高いです。しかも、処理ごとに無料枠(1日ごとにリセット)が用意されていますので、無料でかなりの範囲のサービス運用が可能です。AWS EC2のようなサーバインスタンス単位で時間毎の課金体系ですら無駄になるリソースは少なからず生じるのですが、その無駄が生じません。

・静的ファイルは自動的に圧縮配信されます。ユーザ側にはダウンロード時間や通信量を小さくするというメリットがある他、提供者側にもデータ転送量を小さくしコストダウンできるというメリットがあります。

以下は参考事例ですが、上段の数字が圧縮後、下段の数字が圧縮前のサイズを示します。大体、1/5程度圧縮されていることがお分かりになると思います。

・静的ファイルは自動的に全世界のGoogleのネットワークにキャッシュされ、最寄りのノードから配信されます。この機能を他社サービスで実現することは困難です。

・事実上無限にスケール可能なデータベースDatastoreをシームレスに利用可能です。2012年3月に正式リリースされたNDB(Google Next DB)ではトランザクションもサポートしています。

・Datastore内のデータはBigQueryにシームレスにインポートでき、低コストでの高度な分析を可能とします。

弱み

・日本にサーバ拠点がないため、応答速度の問題があります。ゲームなどのリアルタイムの応答性が必要とされる用途に向きません。

(注)2016年3月22日に「East Asia (東アジア) リージョン - 日本(東京)」の追加がアナウンスされました。

・Googleにロックインされることとなります。

・以前はリレーショナルデータベースを利用できないことが弱みでしたが、現在はGoogle Cloud SQLというサービスが提供されており、Google App Engineからも利用可能です。ただし、筆者としては、強みを活かすためにも、Datastoreでの利用をおすすめしたいところです。

・粒度の細かい処理ごと(例えばDatastoreへのデータの読み書き)の課金体系であるため、結果的にどの程度のコストが必要となるかが分かりにくい点があります。ただし、1日ごとの予算上限を設定できますので、知らないうちにとんでもない請求を受けるということは回避できます。また、処理ごとの粒度でのコスト計算は慣れるとむしろ実態に即していて事業計画も立てやすくなるはずです。

・日本国内で精通したエンジニアを調達することは不可能に近いです。しかし、基本的にシンプルであるため、地頭のよいエンジニアであれば、すぐに対応できるのではないかと思われます。この点は一方では駄目なエンジニア避けとして利用できるというメリットとも言えます。

・Google Cloud Platform全般に言える話なのですが、極めて頻繁なアップデートが行われ、特にインタフェースが全く変わってしまうことがあるため、柔軟に対応できる頭脳が必要となります。プログラミング技術を習得するために書籍やトレーニングを必要とするレベルの地頭では追従することは非常に困難かと思われます。Googleらしいといえばらしいのですが、このようなプラットフォームは普及すること自体が価値を産む側面もありますので、ユーザとしても微妙なところとなります。

まとめ

Google App Engineには特に世界に向けてサービス展開したいときに力となる強みが多くあります。

一方で弱みも多いのですが、地頭のいい人間だけで構成されたチームで、まとまった資金調達を得られるまでの間に採用する場合に関してはほとんどの弱みは該当しません。

Google App Engineは少なくとも新規サービスの開発時には検討の余地のある選択肢ではないかと思われます。

この記事が気に入ったらサポートをしてみませんか?