Amazonからrpmパッケージを持ってきてインストールするメモ。

sh>>

cd /usr/src

wget http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm

alien --to-deb ec2-ami-tools.noarch.rpm

dpkg -i ec2-ami-tools_1.3-20042_all.deb

<<--

でOK。/usr/lib/site_ruby/の下に当該ファイル群がインストールされています。

See Also

posted by genki genki on Wed 7 May 2008 at 17:32 with 0 comments

EC2onRails
は、EC2上でRailsアプリケーションを走らせる環境として提供されている
AMIイメージと管理用スクリプト群です。
これを使うと、非常に簡単にRailsアプリケーションをEC2上で動かす
環境を用意することが出来ます。
基本的にCapistranoのタスクとして実装されていて、

sh>>
% cap deploy
<<--

するだけで、開発環境からEC2上にデプロイが完了します。

EC2onRailsは非常に便利でありがたいのですが、
基本的に1アプリケーション1インスタンスの構成でデプロイされるように
なっているので、ちょっとしたサンプルアプリケーションや、
内々に評価中のアルファ版のサービスなどを気軽にデプロイするのには、
コスト面が気になるところです。

ということで、1インスタンスで複数アプリケーションをデプロイするために
施した修正のメモを以下に書いておきます。

  • EC2onRailsの各種設定ファイルのデプロイ先を/mnt/app/から
    /mnt/app/<app_name>に変更
  • /etc/init.d/mongrel の中身を修正し、第二引数でアプリケーション名を
    受け取るようにする。
    • 受け取ったアプリケーション名を元に、/mnt/app/<app_name>/currentにcdして、config/mongrel_cluster.ymlを参照してmongrel_rails cluster::restart するようにする。
  • /etc/apache2/conf.d/の中身をapp.proxy_frontend.confとcharset以外削除。
  • /etc/apache2/sites-enabled/の中身を削除し、アプリケーションごとのVirtualHostの設定を記述したファイルを<app_name>という名前で作成する。
    pre>>
    ServerSignature Off

<VirtualHost *:80>
ServerName blog.s21g.com

(---略---)

DocumentRoot /mnt/app/blog/current/public

<Directory "/mnt/app/blog/current/public">
(---略---)

<Proxy balancer://mongrel_cluster>
BalancerMember http://127.0.0.1:8000
BalancerMember http://127.0.0.1:8001

(---以下略---)
<<--

  • アプリケーションごとに80n* のようなポート番号を割り当てるとか。

大体こんな感じで複数アプリ対応化できた気がします。
何か漏れがあるのを思い出したら追記します。

See Also

posted by genki genki on Wed 7 May 2008 at 15:25 with 2 comments