クラウド、良いとこ・悪いとこ

第5回Google App Engineの良いとこ・悪いとこ

PaaSの代表格、Google App Engine

AWS、さくらのクラウド、Azureに続いて、今回はGoogle App Engineを取り上げてみます。

これまで紹介したAWS、さくらのクラウド、AzureはIaaS(+PaaS)ですが、Google App EngineはPaaSです。ですから、何かをインストールしたりとかマシンにログインしたりとかはできません。その分、インスタンス数やスペックなどのスケーリングが楽というメリットがあります。

ただ、PaaSのため開発できるアプリケーションはWebアプリケーションのみとなります。

IaaSと違ってメールサーバやDNSサーバは構築できません。とは言え今や世の中の開発需要の大半がWebでしょう。

GAEで使える開発言語と開発環境

Python、Java、Go言語の利用が可能

使える言語としてはPython、Java、Goがあります。まあGoを使う人はいないと思いますが……。ちなみにGoogle3大言語はPython、Java、C++になります。しかし、Python開発者のGuidoは先日GoogleからDropboxに転職してしまいました。

Google App Engine上の開発は、言語ごとにSDKをインストールして環境を構築し、それをアップロードするという形で進めます。

SDKをインストールすると、Google App Engineのエミュレーション環境がローカルに構築されます。たとえばMacの場合、SDK(Google App Engine Launcher)をインストール、Runボタンを押せばローカルのWebサーバが起動します。ローカルで動作したものは基本的に本番でも動作します。テストが終わったらDeployをすれば本番環境に反映されます。

アプリにアクセスするには、⁠アプリ名.appspot.com」というドメインか、もしくは独自ドメインも使用可能です。

Pythonの場合、WebフレームワークとしてwebappやDjangoを使うことも可能です。webappはSDKに含まれているので、インストールした時点で使用可能となります。Djangoの場合は自分でDjango環境を構築する必要があります。

他にも、Google App EngineはWSGI準拠なのでWSGI対応しているフレームワークであれば使用することが可能です。

GAEで使えるのはオブジェクトデータストア

ただ、注意点としてGoogle App EngineはPaaSのため自分で好きなデータベースをインストールすることなどはできません。

そしてGoogle App EngineがサポートしているデータストアはRDBMSではなくオブジェクトデータストアとなっています。データストアへのアクセスは、WAFのORMのようなクエリオブジェクトインターフェースと、GQLというSQLに似た言語を使う二つの方法が用意されています。これらのインターフェースを使えば、Google App Engineのデータストアはスキーマレスですが、それほど違和感なく使うことができるでしょう。

また、メール、Memcache、タスクキューなどの利用も可能です。タスクキューは自動実行バッチを用意に実装することができます。たとえば、筆者はTwitterへの自動投稿をGoogle App Engineを活用して実装していますが、ツイート予約はタスクキューに頼っています。

おおざっぱに言ってしまえば、Google App Engineは「WAFまで用意するからWAFの上でWebアプリケーション作って」と考えるとわかりやすいでしょう。

便利な管理コンソールも用意

またGoogle App Engineには良くできた管理コンソールが用意されています。利用状況、ログ、データストア、タスクキューの中身などを見ることができるほか、アプリケーションにアクセスできるパーミッションコントロール、利用する環境のパフォーマンス設定なども可能です。

PaaSであることがメリットでもありデメリットでもある

Google App Engineのメリット・デメリットはどちらもPaaSであることによります。

メリットとしてはスケーリングがいらない、アプリケーションに集中できるなどです。

デメリットは用意された環境しか使用できないというところです。

ECサイトや凝ったWebサービスを開発するには特にデータストア周りが厳しい気がしますが、たとえばFacebookアプリの開発などには最適な選択肢の1つと言えるかもしれません。

画像

クラウド連携スキルを高める無料ハンズオントレーニング開催!

クラウド環境でのアプリケーション開発事例が増えつつある現状を踏まえ、開発者向けに Windows Azure をテーマとした無料のハンズオントレーニングを連続開催します。
詳細、ご参加はこちらから↓

おすすめ記事

記事・ニュース一覧