初心者プログラマのひとり勉強部屋

若葉マークのプログラマー☺️

【ruby on rails AWSデプロイ】AWSでのデプロイ〜railsの設定とUnicorn・nginxの起動

こんにちは!

今回は設定したファイルを動かし作成したrailsを手動でデプロイする備忘録です。

 

AWSの無料枠

・EC2の解放(AWSの登録は省略します)

Linuxサーバの設定

アプリケーションサーバUnicorn設定

・webサーバNginx設定

→今回はrails起動編

------------

・【自動デプロイ】capistrano設定

・IAMユーザの登録

・S3(ストレージ)の設定

 

 

railsの起動

railsアプリケーションのcloneはしている前提です。

 

環境変数の設定

 ローカルの環境変数の場合:.bash_profile または .bashrc に記述

 production環境の環境変数の場合:/etc/environment に記述

 ※現在設定されている環境変数を見る

 $printenv

 

上記はプロジェクト全体に適応される環境変数です。

railsで使用する環境変数は、secret.ymlあるいはcrediential.yml(rails5.2以降)で設定できます。

環境変数の設定はコチラ(次記事)に記載しています。

 

■secret_key_baseの環境変数設定

production環境で動かすためにrailsアプリを動かすためにsecret_key_baseを生成します。

・production環境

(EC2のリポジトリ上)$ rake secret

作成された文字列をコピー・以下の手順でEC2上の/etc/environmentに環境変数として記載します。(ついでに作成したDBのパスワードも追記)

(EC2上)$vi /etc/environment //下記の環境変数をファイルに追記

 SECRET_KEY_BASE='作成された文字列'

 DATABASE_PASSWORD='作成したパスワード'

(EC2上)$exit //※環境変数適用のため

(EC2上)$env | grep xxxxxx  //※環境変数適用の確認

※EC2上の環境変数に.bash_profileを使用しないのは自動デプロイ設定(capistrano)するからです。capistranoは.bash_profileを参照しません

 

(2020.3追記)

MySQLパスワードの追記

Mysqlのrootユーザにもパスワードを設定しておき、環境変数(ローカルの.bash_profile)に追記しておきます。

 

・ローカルの設定

→credential.ymlに追記しています。コチラ(次記事)

 

■assetsプリコンパイル

アセットプリコンパイルされていない状態だと、本番環境でレイアウト崩れが起こるため下記を実行します(本番環境では自動でコンパイルはされないので、設定が必要なようです。)

(EC2上)$ rake assets:precompile RAILS_ENV=production

 

用語の備忘録

・アセットプリコンパイル:開発がしやすいようにファイルを分割し、最終的に一つのファイルに連結・圧縮する(つまり複数に分割しているJSやCSSなどを統合して読み込むようにさせる)

参考:アセットパイプライン

https://www.transnet.ne.jp/2016/02/28/rails%E5%88%9D%E5%AD%A6%E8%80%85%E3%81%8C%E3%81%A4%E3%81%BE%E3%81%9A%E3%81%8Dcolnr%E3%80%8C%E3%82%A2%E3%82%BB%E3%83%83%E3%83%88%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3/

 

Unicornの起動(自動デプロイ設定前)

$RAILS_SERVE_STSTIC_FILES=1 unicorn_rails -c config/unicorn.rb -E production -D

 

■Nginxの起動

$sudo service nginx start

 

mySQLの起動

$sudo service mysqld start

 

参考にさせていただきました

よく使うコマンド集https://qiita.com/15grmr/items/7ad36caa82a0fa27c4bd

 

以上です。

railsのcredential.ymlの設定が残っていますが、可能な場合は.bash_profileに記載しrailsを動かせるかと思います。(後で削除)

 

コマンド集・エラー集も覚えているうちにまとめようと思います。

まだまだ勉強中のため、抜けている箇所があるかもしれません。拙い記載ご了承ください🙇‍♀️