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

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

この記事を読むのに必要な時間:およそ 1 分

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 をテーマとした無料のハンズオントレーニングを連続開催します。
詳細,ご参加はこちらから↓

画像

著者プロフィール

山崎徳之(やまざきのりゆき)

青山学院大学卒業後,アスキー,So-netなどでネットワーク,サーバエンジニアを経験。オン・ザ・エッヂ(現ライブドア)のデータセンターである「データホテル」を構築,運営。2003年にベイエリアにおいてVoIPベンチャーであるRedSIP Inc.を創業。2006年6月に株式会社ゼロスタートコミュニケーションズ(現 ZETA株式会社)を設立,代表取締役就任(現任)。ECソリューションの「ZETA CX」シリーズとして検索エンジンやレコメンドエンジンを開発,販売している。

blog:http://blog.zaki.jp/
社長コラム:https://zetacx.com/column

コメント

コメントの記入