Google App EngineでRailsを使うのはすごく簡単で快適

_2011-05-27_6

今日はGoogleAppEngineをRailsで使ってみたいと思います。JavaとかPythonとかマスターする必要はありません。RubyとRailsでいいんです。実は結構前に知ってのたのですが、昨日、1年ぶりくらいに使ってみてやっぱり快適で感動したのでちょっとやり方を公開しておこうと思います。

Rails2.3.8 on AppEngin(DataMapper)

https://gist.github.com/825451

基本的にここに書いてあることをやっていきます。RVMは使わないでくださいとのことが書いてあります。ちなみに僕の環境はRuby1.8.7でRVMを使わずにやってます。Rails3はちょっとまだ正式にサポートしてないみたいので(調査中)。今回はRails2で行います。

インストール

sudo gem install google-appengine

Rails2.3.11のインストールとそのパッチ

# sudo gem install rails -v "2.3.11"
# sudo gem install rails_dm_datastore
# sudo gem install activerecord-nulldb-adapter

インストールは無事に終わったのでアプリをつくります。適当なディレクトリをつくって、その中に移動します。

ディレクトリの作成

mkdir rails_app; cd rails_app

スクリプトが書いてあるファイルをダウンロードして実行する

curl -O http://appengine-jruby.googlecode.com/hg/demos/rails2/rails2311_appengine.rb
ruby rails2311_appengine.rb

ちょっとだけ時間がかかります。。

開発開始!!

いよいよ開発ができるようになるので、まずはサーバーを起ち上げましょう。

./script/server.sh

ではlocalhost:8080で確認してみましょう!き、来ました。

GoogleAppEngineのアカウントをつくる

公開するにはまずGoogleAppEngineのアカウントが必要です。
こちらのページを作りましたので参考にしてください。

ブログをつくる

RailsといえばScaffoldとかGeneratorが使えるってところが嬉しいとこ。AppEngineでも使えます。

./script/generate scaffold post title:string summary:text body:text  -f --skip-migration

次にいつもだったらrake db:migrationをするんですが、ActiveRecordを使いませんのでDataMapperのモデルを、これもGeneratorで作ります。

./script/generate dd_model post title:string summary:text body:text -f

で、できた。素晴らしい。

そして公開

その前にapp.yamlにアプリケーションの情報を書きます。一番上の行を自分のアプリケーションの名前にします。

application: 自分のアプリの名前

で、パブリッシュ!

script/publish.sh

あれ?エラー。これでうまくいくはずなんですが、ファイルが大きすぎるってエラーが出てしまいます。前は上手くいってたんだけどなぁ。


java.lang.IllegalStateException: Found a jar file too large to upload

どうやらアップロードするファイルが大きすぎるらしい。そこでエラーが出ていました。うーむ。

Googleで検索したら以下のサイトがあったので、それを参考にやってみます。

GAE+Ruby+Railsプロジェクトのデプロイ

再度デプロイ

appcfg.rb --enable_jar_splitting update .

ワオ!上手く行った。しっかり分割されている。

それでAppEngineに登録したアドレスを打ち込むと、おお、できている。す、素晴らしい。こんな簡単に開発、デプロイそして公開できるなんて。本当に感動です。下は作ってみた実験的にページ。

洋楽タイムマシーン

最後に

どうでしたか?簡単にアプリを作れて、しかも公開までできてしまいました。あぁ、素晴らしくて気が遠くなりそう。これが無料だというのだからすごいですよね。あ、でもアクセス数が多くなると有料になります。思いついたものをすぐカタチにして、即公開する。もしヒットすればお金を払えばいい。なんと合理的なシステムなのでしょう。夢の環境と言ってもいいですよね。

また気が向いたらもう少し突っ込んだとこを書きます。ではでは。

Webが大好きなみなさんのためになるような情報を発信し続けます。もしブログの記事が気に入ってもらえたらRSS登録をお願いします。Twitterも@Happaでやってますので、よかったらフォローしてみてください。


 RSSリーダーで購読する  


blog comments powered by Disqus