qudanblog

2011.07.04

Google App Engine を始めよう

ブログを「Google App Engine」(GAE)で構築してみました。

GAEの良い点は2つ。
・無料!(およそ1日1万PVまで無料)
・サーバ側の知識がなくてもOK!
ですので、非常に手を出しやすいクラウド環境と言えます。

使える言語は JAVA と Python だけなのがちょっと残念ですが、勉強がてらPythonでブログを動かしてみました。

まずは PythonとGAEについて学習

ブログを動かす前に、PythonとGAE上でのアプリ構築の仕方を以下のサイトで学習しました。

Python入門
最初に、Pythonとはどういう言語なのか?を理解するのにちょうどいいです。

スタート ガイド: Python – Google App Engine
Googleオフィシャルのチュートリアル。GAEで簡単にWEBアプリが作れるというのを実感できます。

Webコピペ屋
基本的なCRUD(作成・読み出し・更新・削除)の実装、GAE特有のデータベース「Datastore」の使い方を、丁寧に解説しているので非常に役に立ちました。

また、入門書として「初めてのPython 第3版」というオライリー本を読みました。かなり深いところまで解説した入門書なので分厚いですが、一通り眺めておくと、後々、役に立ちそうです。

GAEでブログを動かそう

GAE で動作するブログシステムはいくつかあります。(参考:GAE上で動くブログエンジンまとめ
その中でも見た目と機能がシンプルで、かつソースコードも見やすそうな「Bloggart」を利用しました。

Bloggartのインストール、といってもそれほど面倒なことはなく、config.py(設定ファイル)を適宜編集してあげればOKです。
インストールについては、下記のブログを参考にしました。
プログラマの実態: Bloggart を動かしてみる
Bloggartのインストールから初期設定まで – The Windup Nano on GAE

画像のアップロードについて

Bloggartには、画像のアップロード機能がありません。ですが、GAEで画像などの容量の大きなファイルを扱うために Blobstore という機能がありますので、これを利用してアップロード機能を追加しました。

Google App Engine で Blobstore を使ってみる – present

問題なのは、Blobstore は課金を有効にしないとGAE上で使用できないところです。(ローカルの開発環境であればBlobstoreも使用できます)
ですが、課金を有効にした上で、無料使用に収まる程度に押さえておけば問題ないだろうということで、僕は1日あたりの予算を0.1$に設定しました。

Bloggartのソースコードを読む

GAEでは、データの転送量やCPUの使用時間によって使用料金が決まってきます。ですので、負荷をかけない効率的なソースコードがすることが大切です。

また、Datastoreに都度アクセスするよりもキャッシュ(Memcache)を利用した方が負荷が減ります。BloggartでもMemcacheを利用して、負荷を減らしているので、自分でアプリを制作する際にも参考になります。


Accept as true only
what is indubitable

明証的に真であると認めたもの以外、決して受け入れない事。

Divide every question
into manageable parts

考える問題を出来るだけ小さい部分にわける事。

Begin with the simplest
issues
and ascend to
the
more complex

最も単純なものから始めて複雑なものに達する事。

Review frequently
enough to retain the
whole argument at once

何も見落とさなかったか、全てを見直す事。

René Descartes 1637