Google App Engine について

3年ほど前に Google App Engine につくったアプリがあり今でも使っている。今更ながらちょっと改良しようと思ったが、よく考えてみるとソースは自宅に立ててたLinux内のSubversionで管理していた。そのLinuxはもうすでにHDDをキレイキレイして ごみパソ に送ってしまった。しかし幸いにもローカルに最新ソースがあった。じぶんでVCSサーバを立ててしまうとこういう問題があるなと思い、Bitbucket に置くことにした。自分(と奥さん)のみが使うアプリなのでプライベートに設定している。Bitbucket はフリーでもプライベートリポジトリを作れるのがいい。

久しぶりの Google App Engine なわけだが、色々調べてみたが、どうやら流行ってない。扱える言語は、JavaPython 以外にPHPやGoなど増えているし、作ったアプリが Google の Cloud 上にデプロイできるコンセプトは悪くないと思うんだが何故か人気がない。

確かに制約は多い。データストアもBigTableというKVSでわかりにくい。 僕は Java でつくっている。ひがやすをさんが作った Slim3 というフレームワークがありその制約やわかりにくさを吸収していた。もちろんその Slim3 を使って開発したが、今はその Slim3 の開発もほぼ止まっている。

せっかくなので、IntelliJ IDEA で開発しようと思ったが、Plugin はあるのだが情報がすくなくて諦めた。当時、Eclipse で開発していたのでそちらのほうが勝手がわかってやりやすいというのもある。

Google App Engine はメリットとして、特に自分が享受しているもので言うと、

  • なんといっても無料(使い方によっては有料になるが、日に数回しかアクセスしないので余裕)
  • Googleクラウド上にアプリがおける
  • SSL がつかえる
  • メールなどGoogleの元々持っている機能をAPIで使える

がある。どれも大きい。デメリットとして、

  • 制約がたくさんある(Java以外は知らないけど) -- RDBMSが使えない -- ファイルシステムへのファイル出力ができない -- JDKでも使えないAPIがある -- Thread が使えない
  • 普段はメモリに展開されていないので、アクセスしてから立ち上がるまで時間がかかる

などはあるが、自分にとってはあまり大きなデメリットではない。

同じものをAWS上でつくろうと思ったら制約は取っ払うことができるが、EC2 の small インスタンスを使うとすると月額2,000円くらいはいくのではないだろうか。SSL は使おうと思うと、証明書を取得する必要がある。安くても9,000円くらいだろうか。こう考えるとメリットしかない。

確かに、Java だと、Slim3 の開発は止まってるし、代わりのフレームワークがあるわけではなく、開発は大変である。そう考えると、Python で作るのがよさそうだ。Python のほうがパフォーマンスもよいらしいし(未検証)

とりあえずは、現状の古いアプリをBitbucket上で管理しながらアップグレードし、ひと通り落ち着いたら、Python に移行しようかと思う。Git からDeployをすることもできるそうだ。

学ぶことが多すぎるな。。。