|> Weeeeeeb

どんどんドーナツどーんと行こう!(10万円山さん)

今更AWS

今更ながらAWS(EC2)にRailsアプリをデプロイをしたためその備忘録

前提として以下の事項を済ませていることとします。

  • AWSのアカウントを登録している。
  • EC2のインスタンスを作成している。
  • Railsアプリを作成している。

作成したEC2のインスタンスの設定

大きく分けてインストールを行ったパッケージは以下になります。

  • git
  • rbenv + ruby
  • gemのbundler

git のインストール

gitの前にまず最低限の設定をします。

yum のアップデート
$ sudo yum update
gem のアップデート
$ sudo gem update
作業開始のための諸々
$ sudo yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison

上記の作業が終わってから

$ sudo yum install -y git

rbenv のインストール

git からクローン

$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bashrc

これでrbenvを使用できるようになります。(ただしbash) ただrbenvにrubyをインストールするためにruby-buildもインストールします。

ruby-build のインストール
$ cd
$ git clone git://github.com/sstephenson/ruby-build.git
$ cd ruby-build
$ sudo ./install.sh
ruby のインストール

今回はRubyの2.0.0をインストールします。

$ rbenv install -l

上記のコマンドを正しく使用するためにruby-buildをインストールしました。

$ rbenv install 2.0.0-p481
$ rbenv versions
$ rbenv global 2.0.0-p481
$ rbenv global

この時に、rbenvを使用する場合は必ずrubyコマンドとgemコマンドのパスが

$ which ruby
~/.rbenv/shims/ruby

$ which gem
~/.rbenv/shims/gem

のように表示されていることを確認して下さい。

bundle のインストール

今回はプロジェクト毎にRailsを管理したいのでまずgemでbundleをインストールします。

$ gem install bundler --no-ri --no-rdoc

この後、公開したいRailsのプロジェクトを配置しておきます。

$ git clone git://github.com......git

配置したプロジェクトに移動し以下を実行する。 パスに指定したディレクトリにインストールしてくれます。

$ bundle install --path /vendor/bundle

bundle終了後はRailsプロジェクトのルートから

$ ./bin/rails server

を実行でrailsコマンドを使用することが可能です。 このあとは今後しようするパッケージをインストールします。

$ sudo yum install -y nginx
$ sudo yum install mysql-server mysql-devel
$ sudo service mysqld start
$ /etc/init.d/nginx
$ chkconfig nginx on
$ sudo service mysqld start

配置したRailsプロジェクトを公開

Railsを通常3000番ポートで公開するためAWSのSECURITY GROUPに設定を追加します。

f:id:kuriya0909:20140921051523p:plain

この時GROUP NAMEがデフォルトのものに上記の内容を設定しないでください。 設定したものがまるで反映されませんでした。ここでハマってしまい、時間がかかりました。

余談ですが、nginxを動作させる際は必ず上記写真の3行目の記述を追加しないと正しく動作しないためお気をつけて

AWSの設定が終了後、

$ ./bin/rails s -d
$ curl -I localhost:3000

を実行後Railsプロジェクトを参照できるようになります。以上

番外編として、rails を立ち上げようとした際にjavascriptのエラーが発生した際はGemfileの

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

のコメントを抜いてください。

参考にさせていただいたサイト

AWS Ruby Rails Nginx Unicorn 構築! (簡単に早めで) - Qiita

bundlerでgemをプロジェクトごとに管理する | Developers.IO