これ、俺ならこう使う(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までのサービスが使える無料プランのみが利用可能です。
開発の基本
□ デベロッパーカウントの登録
開発を始める前に、まずはデベロッパーとしての登録が必要です。
- Google App EngineのホームページにGoogleアカウントでログインし、デベロッパーカウントを登録します。
- SMS経由で確認用のコードが送信されるので、コード受診後に上記の登録ページにコードを入力してアカウントのベリファイを行います(ezweb.ne.jp/docomo.ne.jp/vodafone.ne.jp/softbank.ne.jpのいずれかのドメインの携帯メールを受信できる必要があります)。
- アプリケーションのサブドメイン(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での開発は、下記のような流れで進められます。
- SDKを使用してアプリケーションの開発を行う。
- ローカル環境のWebサーバ(SDKに含まれる)でアプリケーションの動作チェックを行う。
- 出来上がったコードをGAEのサーバにアップロード(デプロイ)し、サービスを公開する。
- 修正があれば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ジャパン)
- 現場の無駄な流血を止めるための「プロトタイプ」とは (2010/3/12)
サイトやWebアプリ/RIAの設計やデザインを効率良く進めるには、プロジェクト関係者の想定を一致させていくことが大事だが… - Flashを閃光のごとく高速化するための基礎知識 (2010/3/9)
Flash高速化のための基礎知識や実践的テクニックを紹介する連載。初回は“処理負荷”を調べる具体的な方法を解説します - Windows 7でどんだけ“おばか”なアプリが作れるの? (2010/3/4)
おばかの発想の源やアプリの作り方などについて、おばかアプリ選手権の歴戦の受賞者や、マイクロソフトの代表者に話を伺った。アイデアのご参考に - APIでGoogleスプレッドシートの追加/更新/削除 (2010/2/24)
ワークシートの追加・削除、メタ情報の更新、行単位でのデータの追加・更新・削除する方法を徹底解説します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 New! |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |

| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |

| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |
| ◆ | 直属上司が海外にいるのエンジニアに見る 【実例】場所に捉われないワークスタイル |

| ◆ | 「仮想化工房」のマイスターが選んだのは VMware、Hyper-V、そしてVirtageだった! |
| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |










