あなたがGoogle App Engineを使うべき7つの理由

スポンサーリンク
スポンサーリンク

本記事は、Price Checkerを動かしている技術の使い方や同じようなツールを実装したい個人で開発者に向けての連載です。
Price Checker開発や運用にあたって使用している技術、ツールなどを選んだ理由や個人で開発する上での時短チップスなど書いていきます。
TAG:Price Checkerを支える技術

初回は、Price Checkerを支えるクラウドPaasのGoogle App Engineについて書きます。

あなたがGoogle App Engine使うべき7つの理由

理由その1:無料で始められる

サーバーのインスタンス稼働時間や通信料などに応じて課金されるため、ユーザーが少ない間は無料でサービス提供できます。
最初からお金が必要だと気軽に作ったり試したりできないですもんね~
Price Checkerも最初の半年は無料でサーバー運営できていました。

理由その2:拡張性が無限大

Google App Engineの可能性は無限大です。
機能を増やしたいとか、もっと楽に作りたいってなった時に選択肢が多いに越したことはありません。
例えば、Datastoreじゃなく普通のSQLで動かしたいなぁって、思えばすぐにMySQLも使えます。
まずは簡単なデータ保存を実装して、機能を追加していく過程で違う選択肢をすぐにとれるっていうのは最高です。
一部の機能だけMySQLを使って他は無料枠で済ませるってこともできます。課金はすべてGoogle一元管理です、色々なクラウドプロバイダーを使い分けて管理するのはしんどいですよね。

理由その3:Javaなど様々な言語が使える

Java、PythonやPerlなどの実装言語の選択肢も豊富。Javaには豊富なAPIや豊富なライブラリがあります。
メジャーな言語が利用できるのでググらビリティが高いです。(自分にとってはこれが大きかった)

理由その4:フレームワークでらくらく開発

理由その3とかぶりますが、様々な言語が使える→豊富なフレームワークから自分にあったものをチョイスできる!となります。
Price Checkerでは、Javaを使用しています。JavaでGoogle App Engineを使う場合Slim3という便利なフレームワークがあります。
Slim3を使用すると

  • データの扱いが簡単になる
  • 検索結果の自由なソートなどDatastore単体ではできないことも楽にこなせる。
  • データ操作に掛かるお金が少なくなる。(データアクセスが高速化されるためCPU消費が抑えられる->課金が少なくなる)

と言ったメリットがあります。私は最初面倒臭がって使っていませんでしたが、試しに使ってみたところ差が一目瞭然でした、最初から使ったほうが絶対イイですよ

理由その5:サーバー管理しなくていい

Paasだから当たり前なのですが、利用者の増加にともなってサーバーの設定を変更したり、エラーにならないように管理したりする必要がありません。
サーバーの負荷管理やエラー対応する時間より開発する時間を多く持つことの方が個人開発者にはとっても大切です。

理由その6:Googleの認証機構を使える

将来的にユーザー限定機能など作りたくなった場合でも認証周りをGoogleにお任せすることができます。
今やる気はなくても将来少ない時間で実装できる選択肢を残しておきましょう。

理由その7:ローカルで動かせる

Google App EngineはDatastoreも含めてローカルで動かしてデバッグできます。特別に環境を用意しなくてもEclipsePluginを入れるだけで開発を始めることができます。

フレームワークはこれがおすすめ!

URL周りのマッピングはSpring MVCで!

Datastore周りは先程のSlim3がお勧めですが、APIの実装は、Spring MVCがお勧めです。
JSONでパラメータを受け取ってJSONで返すAPIを簡単に実装できるところが私の理想とバッチリあっていました。
ググれば日本語の資料も豊富です。

私がGoogle App Engineを選んだ理由

  • 作る対象がGoogle Chromeの拡張機能だった。
  • Android版も作りたかった。
    だって、Appleは作り始める前に1万円くらいとられるしMac無いし・・・

この2つの理由もあって、ドキュメント周りや開発環境など、同じGoogle系統で揃えておけば少ない時間でも習得できそうだったということもあり、Google App Engineを選びました。

Herokuなど他のPaasを選ばなかった理由

  • DBを使用する場合、サードパーティ製で習得時間がかかりそう。
  • 開発当初、Windows AzureやAmazonでのPaasはまだ世に出ていなかった。
  • 管理に費やす時間がないので自動でスケールアップするPaasが良かった。
  • 簡単に管理できるダッシュボードが欲しかった。
    データの操作もダッシュボードから可能です。