AWSにRails環境を構築する

最近サーバーにCloudStackでクラウド環境を構築しているのですが、少し時間がかかかるので、Railsで作成したサービスを運営するためにAWSでRailsを動かす環境を構築しました。

 

WebサーバーはNginx+Unicorn、データベースはMySQLで構築しました。

その際にインストール&設定用のシェルスクリプトを作成したので、もしAWSでRails環境を構築したい人は活用してみてください。

 

sudo yum -y update
sudo yum -y install gcc gcc-c++ zlib-devel httpd-devel curl-devel
sudo yum -y install sqlite-devel
curl -L https://get.rvm.io | bash -s
echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile
source ~/.bash_profile
rvm pkg install openssl
rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=$rvm_path/usr
gem install bundler
gem install rdoc
gem install rails
gem install sqlite3
gem install unicorn
sudo yum -y install nginx
sudo /etc/init.d/nginx start

これでWebサーバーが使えるようになりました。

ただし、RailsアプリケーションをAWSのNginxで動かす場合には、以下のようにGemfileを変更してBundlerでインストールしてくだい

#gem 'therubyracer', :platforms => :ruby

gem 'therubyracer', :platforms => :ruby

その後、

$rails server -d

$curl -L localhost:3000

を実行して、IPアドレスの後にポート番号を3000としてアクセスすると、Railsアプリケーションが動いていることがわかります。

(http://54.***.***.***:3000/ にアクセスするので、セキュリティーグループからカスタムTCPのポート3000を開放しておかなければならない)

 

あとは、ポートを指定しなくてもアクセスできるようにするのですが、まだUnicornの使い方がよく理解できていないので、わかったら追記していきます。

 

ちなみに、UnicornはNginxとRailsの架け橋になるアプリケーションらしいです。

つまり、ユーザーがNginxにアクセスしたら、UnicornRailsのところまで案内してくれるってかんじですね。