Rails
MySQL
nginx
EC2
環境構築

EC2 Rails 爆速でとりあえず見れるREMP環境を構築する

はじめに

みなさんは、

顧客「とりあえず今どんな感じなのか見てみたいんだけど」

と言われたり、

PM「とりあえずお客さんに見てもらってフィードバックもらいたいから環境用意して」

と言われた経験はありませんか?

「とりあえず!?ノットイージ!!アーユーフロムシカゴ!?」

と心で思いながらも。
それが最善ならやるっきゃないですよね。

今回はAWSのEC2と「Ruby Stack with Nginx, MySQL, and Passenger」というAMIを利用して爆速でとりあえず見れるREMP環境を構築する方法を紹介します。

今回のフローで新たにインストールするのはgitだけです。
おそらく本気出したら5分で構築できます。まじで。

Ruby Stack with Nginx, MySQL, and Passengerドキュメント
http://jetware.io/appliances/jetware/remp_ruby23-170503/profile

こんな人にオススメ

多少触ったことがある。

  • AWS EC2
  • Rails
  • MySQL
  • Git

なにそれ美味しいの?

  • Nginx
  • Passenger

という人向けです。
インフラの深い知識がなくても環境が作れてしまいます。
便利って人の成長を妨げるよなあ...

手順

早速行きましょう。

インスタンスの作成

AWSのEC2コンソールにログインしてインスタンスの作成クリックします。
スクリーンショット 2018-05-01 13.23.14.png

AWS Marketplace内で「REMP」で検索し、「REMP Ruby Stack with Nginx, MySQL, and Passenger」を選択します。
スクリーンショット 2018-05-01 13.25.22.png

AMIの詳細な情報や料金体系が表示されます。
このAMIは使用料は無料で、右側に書いているのはあくまでもインスタンスの使用料ですのでご心配なく。
Contenueをクリックして次へ。
スクリーンショット 2018-05-01 13.29.25.png

ここからは通常通りのEC2インスタンス作成フローと同じなので割愛させていただきます。
まあインスタンスタイプやセキュリティグループを設定するだけです。

起動したら早速パブリックDNS、またはIPにアクセスしてみましょう。
デフォルトで空のRailsプロジェクトが配置されているのでいつもの画面が出ます。
スクリーンショット 2018-05-01 13.37.53.png

え、もうほぼできてんじゃん

プロジェクトを配置する

sshでインスタンスに入ります。
ssh -i hogehoge.pem ec2-user@ec2-xx-xxx-x-xx.ap-xxxx-1.compute.amazonaws.com

gitはデフォルトで入っていないのでインストールします
sudo yum install git-all

インストールが完了したら適切な場所でcloneしましょう。
プロジェクトを配置する場所は/jet/appです。

cd /jet/app
git clone https://github.com/xxxxx/hoge_project.git

Nginxの設定

Nginxの知識なくても大丈夫!
デフォルトでは/jet/app/rails_blankが起動するようにNginxの設定ファイルに記述されています。
なので、先ほどcloneしたプロジェクトに切り替える必要があります。

/jet/etc/www/webservers/nginx/conf.d/default.vhost
server {
    listen       80 default_server;
    # listen       [::]:80 default_server;
    server_name  _;
    # root         /jet/app/rails_blank/public;
    root         /jet/app/hoge_project/public; <- 先ほどcloneしたRailsプロジェクトに設定

    passenger_enabled on;
    passenger_min_instances 1;
    rails_env development; <- ここで環境変更できる

    # Load configuration files for the default server block.
    include /jet/etc/nginx/conf.d/*.inc;

}

restartで反映させます。

restart

MySQLの設定

入っているのはMariaDBですが気にしたら負けです。
デフォルトでrootユーザーがいるのでconfig/database.ymlを編集します。

key value
host localhost
user root
password なし

restartで反映させます。

restart

Railsの初期処理

俺たちのbundle installを忘れないように。

cd /jet/app/hoge_project
bundle install

DBの基礎作りも忘れないように。

cd /jet/app/hoge_project
rails db:create
rails db:migrate
rails db:seed

完成

以上で一般公開されたREMP環境が出来上がります。
EC2は課金が分単位なので気軽に試してみてください^^

ブログで見たい方はこちら
EC2 Rails 爆速でとりあえず見れるREMP環境を構築する