分12はじめに前回,HerokuでFacebookアプリを動かすことのメリットについて解説しました。第2回は,Herokuを利用するための前提となる環境と設定方法を紹介し,Heroku上でRailsのサンプルのアプリを動かすチュートリアルを行います。Railsを利用したアプリを動かしますが,Railsアプリの作り方やコマンドについて深くは触れません。Rails3を触ったことがない人は,今回Railsの各コマンドでわからないことがあると思います。その場合はもうすでにたくさんのRailsのチュートリアルなどがありますので,そちらを参考にしていただければと思います。それでは,Facebookアプリで世界を目指すために,まずはHerokuの基本を学んで行きましょう。Herokuの基本機能についてHerokuは基本機能を無料版として提供しています。この無料版は,単純なアプリであれば普通に動作させることができる十分なスペックを持っています。今回は,この基本機能を利用したシンプルなアプリを動作させることを目標とします。無料で提供されている機能は以下の3つです。1プロセス(dyno)を利用できる5MBのPostgreSQLを利用できるGitでソースコードを管理できるHerokuは,Webアプリケーションを動作させるCPUプロセス数に課金するというモデルをとっています。この1プロセスの単位をHerokuではdynoと呼んでいて1つをアプリごとに1dynoを無料で提供しています。同時にたくさんのアクセスが来た場合に,1dynoでは処理しきれなくなることもありますが,最初は1dynoで十分動作可能です。次に,Webアプリケーションに必須のデータベースの機能ももちろん備えています。PostgreSQLを標準で5MBまで無料で提供しています。CouchDBなど)をデータベースに利用することも可能です。DBに制約がない場合はサポートを受けやすい標準のPostgreSQLを利用するのがよいのではないかと思います。最後にHerokuでは,リリースするソースコードの管理にGitという分散バージョン管理システムを利用しています。本来は,ソースコードのバージョン管理をするためのソフトウェアですが,それを上手く利用しています。Gitは分散したレポジトリ間でのソースコードのやりとりをするためにありますが,Herokuではユーザ側とHeroku側のソースコードをやりとりをGitで行うのです。Gitを知らない人にとっては習得コストがあるかもしれませんが,本番環境やステージング環境だけでソースコードを変更して後で変更点がわからなくなるといった障害の原因をなくすことができたりもします。Ruby界隈では人気のバージョン管理システムなので学んで損はないはずです。今回はこの3つの基本機能を利用するサンプルアプリを作ります。当然ですが,基本機能は拡張することができます。1dynoで処理しきれなくなった場合は,1時間あたり$0.05/1dynoで追加できます。それもコマンド1つでできます。これがHerokuのメリットの1つで,負荷が高まった時だけお金を払うことで簡単に負荷をさばくことができるのです。Herokuを利用していない場合,初期導入時で低コストにするため負荷分散の仕組みが無いときに,一気に大量のリクエストが来た場合処理できない事が起こってしまう可能性があります。Herokuであればサービスを停止することなしに,すべてのアクセスを処理可能になります。データベース(PostgreSQL)の拡張は,容量や専用・共有サーバによってプランが用意されています。価格テーブルは,こちらにあります。DBのプラン名が日本語を利用していて斬新な名前になっています。前まではZilla(ゴジラ?)が最大のプランだったのですが,Mecha(ガンダム?)というさらに大きなプランが追加されました。価格テーブル環境を準備するそれでは,HerokuでRailsアプリを実際に動かしてみましょう。以下の環境をローカルの開発環境に準備してください。Ruby/Rails3が動作することSQLite3が利用できることGitが利用できることSSHのキーが設定されていることRailsやGitの構築は環境ごとに違いもあると思いますので,ここでは割愛し本題のHerokuの解説に集中させていただきます。今回のサンプルでは,ローカルのデータベースはSQLiteを利用します。本番のアプリを構築する場合は,データベースごとの違いでエラーが発生することがあるのでローカル環境と本番環境で同じデータベースを利用するの良いでしょう。Herokuのサイトでユーザ登録を完了してください。up画面からメールアドレスを登録すると,確認メールが送信され,メールの中のURLをクリックしてパスワードを入力すれば登録完了です。Herokuを利用するためにはHerokuのgemをインストールする必要があります。以下のコマンドでインストールして下さい。herokuHerokuは基本的にほとんどの操作をこのgemでインストールされるコマンドで行います。インストールできたか確認のために以下のコマンドを発行してください。このコマンドは,あなたの登録しているアプリ一覧を表示するものです。foundアカウントの認証が行われますので,登録したメールアドレスとパスワードを入力してください。