【3/18〜】Amazon、VMwareが語る『クラウドの未来』 スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
これ、俺ならこう使う
これ、俺ならこう使う(4)

Google App Engineで作るライフログ


立薗理彦
2008/10/15
気になる旬の技術の使い方を紹介する人気コラム。今回はグーグルのWebアプリ・ホスティング「Google App Engine」を使って、次世代コミュニケーションツール「logme」を作りました。

Google App Engineで次世代版「音ログ」を作ってみた


- PR -
  ちょっと涼しい日が続いているなと思っていたら、いつの間にか季節は秋。近所の柿の木にオレンジ色の実がぶらさがっているのを見て、あらためて日々の流れの早さを実感しています。

 最近は、トイカメラのような写真を撮れるiPhoneアプリ「ToyDigi」にはまっていて、早速カシャカシャと写真を撮りました。ToyDigiはiPhoneで撮った写真にフィルタ処理を施して、トイカメラ風に画像を加工するアプリケーションです。Mac OS Xなどでも同様のツールはあるのですが、こちらはカメラと一体化していてその場ですぐ結果が見られることでより実用的になっています。

ToyDigiで撮影した画像
ほかにもいくつかflickrにアップしてあります

 カメラや加速度センサにGPS、そしてマイクといった、現実世界とデジタルの世界を仲介する機能が小さなデバイスに入って持ち運べる。そしてデバイス自体は常にネットワークとつながっている。いずれもすでに日本の携帯で実現されている機能ではありますが、そこにAppleデバイスならではのちょっとおしゃれなアプリケーション文化が加わることによって、より魅力が増しているのではないかと思います。

 iPhoneアプリ開発については、別の機会にこの連載でも取り上げる予定です。今回は、(またもや前フリとは全く無関係に)Google App Engineを使ったWebアプリ開発がテーマです。

Google App Engineとは

  Google App Engine(以下:GAE)は、グーグルが提供するWebアプリケーションのホスティングサービスです。デベロッパーは、SDKを基に開発したWebアプリケーションを、簡単なアップロード処理だけでGAE上で公開することができます。

Google App Engineのロゴ

 最大の売りは、データベースやコードの実行エンジンにグーグルが実際に使っているのと同じクラウドテクノロジーが使われていること。これにより、アクセスが増加してもスケールアップを意識する必要がなく、サービスそのものの開発に注力することができるとされています。

関連リンク

  • Google App Engineについて……GAEのホームページです。サービスの概要やSDKダウンロード、APIドキュメントなど開発に必要なものが一通りそろっています。
  • Application Gallery……実際にGAEを使って開発されたWebアプリケーションのギャラリー。
  • Downloads……Mac OS X/Windows/Linux用のSDK、開発用ドキュメントなどをダウンロードできます。

 GAEについては、先日のGoogle Developer Dayの際に、GAEプロダクトマネージャーのPete Koomen氏にインタビューをしています(参照記事:Google App Engine −すべては20%プロジェクトからスタートした)。こちらの記事もぜひご覧ください。

制限事項について

 Google App Engineは、現在プレビューリリースとして公開されており、アカウント登録は先着10000人に限られています。利用プランについても、最大500MBのストレージと月間500万PVまでのサービスが使える無料プランのみが利用可能です。

開発の基本

 デベロッパーカウントの登録

 開発を始める前に、まずはデベロッパーとしての登録が必要です。

  1. Google App EngineのホームページにGoogleアカウントでログインし、デベロッパーカウントを登録します。
  2. SMS経由で確認用のコードが送信されるので、コード受診後に上記の登録ページにコードを入力してアカウントのベリファイを行います(ezweb.ne.jp/docomo.ne.jp/vodafone.ne.jp/softbank.ne.jpのいずれかのドメインの携帯メールを受信できる必要があります)。
  3. アプリケーションのサブドメイン(XXX.appspot.comのXXXの部分)とアプリケーションタイトルを入力して、最初のアプリケーションを登録します。最大10個のアプリケーションを登録できます。

 登録が完了すると、最初に登録したアプリケーションの管理画面(Dashboard)に移動し、以降アプリケーションの管理はこの画面を使って行われます。

アプリケーション管理画面

SDKのインストール

 GAEでの開発を行うためには、まずGoogle提供のSDKをダウンロードしてインストールする必要があります。GAEホームページのDownloadsからMac OS X/Windows/Linuxいずれかのプラットフォームを選んでSDKをダウンロードし、お手元の環境にインストールしてください。

 この記事では、Mac OS X用のGoogle App Engine Launcherを基に解説を行っていきます。

Mac OS Xで動作する「GoogleAppEngineLauncher」

 開発の流れ
 GAEでの開発は、下記のような流れで進められます。

  1. SDKを使用してアプリケーションの開発を行う。
  2. ローカル環境のWebサーバ(SDKに含まれる)でアプリケーションの動作チェックを行う。
  3. 出来上がったコードをGAEのサーバにアップロード(デプロイ)し、サービスを公開する。
  4. 修正があれば1に戻る。

 言語はPythonのみをサポート
 この原稿を書いている10月5日現在、GAEがサポートする言語はPythonのみになっています。日本ではあまりなじみのない言語ですが、海外では人気があるようでグーグル社内でも標準言語の1つに選ばれています。ちなみに、Pythonの開発者のGuido Van Rossum氏もGAE開発チームのメンバーです。

 こちらのサイトから、翻訳済みドキュメントを読むことができます。
・ Pythonドキュメント翻訳プロジェクト

 WSGI準拠のフレームワークを利用可能

 GAEは、Pythonを使ったWebアプリケーションとWebサーバの仲介を行う「WSGI」に準拠しており、WSGI互換のフレームワークなどを利用することができます。

 グーグルは「webapp」 というシンプルなフレームワークをGAE用に提供しています。今回は、webappを使って開発を行います。

GAEのAPIを使おう

 GAEは、Webアプリケーション開発を容易にするためのさまざまなAPIを提供しています。

  • Datastore……データベースへのアクセスをオブジェクトとして抽象化する、いわゆるO/Rマッパーです。
  • Images……画像のリサイズなどの処理を行います。
  • Mail……メール送信処理を行います。
  • Memcache……その名のとおり、Memcacheへのアクセスを提供します。
  • URL Fetch……HTTPを使って外部サイトからデータを取得します。
  • Users……Googleアカウントを使ってログインしたユーザーの、セッション情報を扱うことができます。

 関連リンク
 ここに記載した情報の詳細は、デベロッパーガイド(日本語版)をご覧ください。

1-2

 INDEX
これ、俺ならこう使う(4)
Google App Engineで作るライフログ
Page1
音楽・本・映画を記録するWebサービスをGAEで作った
Google App Engineとは
開発の基本
GAEのAPIを使おう
  Page2
今回作るもの:「logme」=次世代版「音ログ」
GAEを使ったサービス開発の実際
GAEで自作Webアプリを多くのユーザーに使ってもらおう

@IT関連記事


Adobe AIRでiTunes×Twitterクライアントを作った
これ、俺ならこう使う(2) iTunesで再生されている楽曲のタイトルを、Twitterアカウントに「いま聴いている曲」として投稿するAIRアプリケーション「音ログAIR」を作ってみました
リッチクライアント & 帳票」フ ォーラム 2008/8/11
Google App Engineは20%プロジェクトから生まれた
Google Developer Day 2008特集(2) プロダクトマネージャーに聞く、App Engineの成り立ちと現状、ビジネス、Amazon EC2との違い、そして日本人への期待
リッチクライアント & 帳票」フ ォーラム 2008/6/24


リッチクライアント&帳票 全記事一覧へ

ホワイトペーパーTechTargetジャパン

リッチクライアント & 帳票 フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  おばかアプリ選手権、第4弾開催中!!
ムダにカッコよくてくだらない作品求ム!

  社内ファイルサーバを“クラウド”に統合
VPN直結「クラウド型ストレージ」を紹介

  Twitterのアカウントはなぜ突破された?
メールによる新手の攻撃手法とその対策

  もう仮想化のお試しフェイズは終わりだ!
Hyper-V 2.0が基幹システムも仮想化

  美人!? まあまあ? 気になる いやし系!!
PV急増で「美人時計」がとった手段とは?

  クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

  .NET編集長が実践する「技術情報検索術」
サンプル・コードを簡単に探す“技”は?

  業務効率と情報セキュリティ対策を両立!
手間なく確実に機密情報を守る方法とは?

  直属上司が海外にいるのエンジニアに見る
【実例】場所に捉われないワークスタイル

  「仮想化工房」のマイスターが選んだのは
VMware、Hyper-V、そしてVirtageだった!

  進化を続ける富士通ストレージETERNUS DX
製品開発者の自信を裏付けるものとは何か

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  【CTC事例】約30の基幹システムを統合!
膨大なバッジジョブを制御した方法は?

  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  その数、なんと400台以上! グループ内
サーバの「統合管理」によるメリットは?