2019年01月29日

RailsアプリをAWSでデプロイする①(環境構築編)

今回はRailsのアプリケーションをデプロイする方法を3回に分けて紹介します。
RailsアプリをAWSでデプロイする①(環境構築編)
RailsアプリをAWSでデプロイする②(各種設定編)
RailsアプリをAWSでデプロイする③(デプロイ編)
RubyMySQLの環境構築とNginxのインストール、Unicornの設定を行います。

この記事の目次

  • 1.必要なミドルウェアのインストール
  • 2.アプリケーション環境の構築
  • 3.まとめ

Ruby,MySQL,Nginxの環境構築

注意

作業はログインしたデフォルトのディレクトリで行なって下さい。
ユーザーは極力、ec2-userを使って下さい。
rootユーザーで作業をすると参照PATHが変わり結果が異なる可能性があります。

OSのアップデート

Amazon Linuxがインストールされたインスタンスへssh接続します。
ssh接続までの工程はこちらの記事で紹介しています。

server root
$ sudo yum -y update

Nginxのインストール

server root
$ sudo yum -y install nginx

インストールが終わったらNginxを起動してみましょう。

server root
$ sudo service nginx start

インスタンスのIPアドレスにアクセスしてNginxのデフォルト画面が表示されるかを確認して下さい。

アクセスできない場合はセキュリティーグループの80番ポートが解放されているかを確認して下さい。

MySQLのインストール

server root
$ sudo yum -y install mysql-server

インストールが終わったらMySQLを起動させてログインできるかを確認します。

server root
$ sudo service mysqld start
$ mysql -u root
mysql > quit

ミドルウェアのインストール

server root
$ sudo yum -y groupinstall 'Development Tools'
$ sudo yum -y install ruby-devel mysql-devel readline-devel
$ sudo yum -y --enablerepo=epel install nodejs

rbenv,ruby-buildのインストール

server root
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

インストールが終わったらrbenvとruby-buildが使えるかを確認して下さい。
rbenvとruby-buildの環境構築のコマンドはこちらで解説しています。

server root
$ rbenv install -list

リストが表示されればインストールが完了しています。

Rubyのインストール

インストールできたらプロジェクトのバージョンのRubyをインストールして下さい。

server root
$ rbenv install {ruby-version}

インストールには数分かかります。

インストールができたらバージョンを変更してプロジェクトのバージョンが表示されるかを確認して下さい。

server root
$ rbenv global {ruby-version}
$ ruby -v

アプリケーション環境の構築

アプリケーションディレクトリの作成

varディレクトリに移動して、アプリケーションのコードを配置するディレクトリを作成します。
作業やソフトウェアに影響があるのでディレクトリのユーザーを変更します。

server root
$ cd ../../var
$ sudo mkdir www
$ sudo chown -R ec2-user www

ディレクトリが作成されていてユーザーがec2-userに変更されているかを確認して下さい。

/var
$ ls -l

アプリケーションコードのクローン

Githubからソースコードをクローンします。
Githubを使用していない場合はアプリケーションのルートディレクトリが/var/www/project/アプリ名となるように配置して下さい。

/var
$ cd www
$ mkdir project
$ cd project
$ git clone https://github.com/{app-source}

Gemのインストール

アプリケーションのルートディレクトリに移動して
アプリケーションのGemをbundleでインストールするためbundlerをインストールしましょう。

/var/www/project
$ cd {app-root}
$ gem install bundler

インストールが失敗する場合は、ローカル開発環境のディレクトリに移動し、gem listでバージョンを指定してインストールしましょう。

下は1.16.2をインストールする場合です。

アプリのルートディレクトリ
$ gem install bundler -v {version}
$ gem install bundler -v 1.16.2

bundlerのインストールができたらbundleインストールを行います。

アプリのルートディレクトリ
$ bundle install

GemfileのGemがインストールできたらRailsのサーバーを起動できるかを確認しましょう。

アプリのルートディレクトリ
$ bundle exec rails s

特にエラーがなくアプリケーションサーバーが起動しているようならGemのインストールは完了です。

まとめ

これでサーバー内でアプリケーションを動かすためのソフトウェアのインストールは完了です。

次はアプリケーションを本番環境で動かすための設定ファイルの記述をします。
ありがとうございました!