実践で学ぶRuby on rails 〜仮説千本ノック〜

プログラマーとして独立するため日々スキルアップに励んでいます。優れたプログラマは仮説を立てるのがうまい。そこを目指して仮説を立てては検証する日々です!!

AWSを使ったデプロイ~環境変数の設定

環境変数の設定

データベースのパスワード、秘密鍵など、生のデータを記述して、githubにアップロードできない場合は、変数に代入して、アップロードするファイル上は変数を使って利用する。

これを特に環境変数と呼ぶ。

secrets.ymlやdatabase.yml等のRailsファイルで環境変数を呼び出す際<%= ENV["〇〇〇〇"]%>と記述して呼びだす。

 

▫️Cookieの暗号化に用いられるsecret_key_baseを作成

 

Railsでは、cookieにsession情報を持たせ、それによってユーザーの識別を行っているが、情報の暗号、複合を行うための鍵として、secret_key_baseを用いる。

Railsアプリを動作させる上で、必ず必要であり、外部に漏洩してはいけない値のため、環境変数に代入する。

 

secret_key_baseの作成(生成される値は毎回変わります)

[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ rake secret
69619d9a75b78f2e1c87ec5e07541b42f23efeb6a54e97da3723de06fe74af29d5718adff77d2b04b2805d3a1e143fa61baacfbf4ca2c6fcc608cff8d5a28e8d

 

▫️環境変数の設定

環境変数を、/etc/environmentファイルに書き込むことで、サーバー全体に適用できます。書き込みの際はvimコマンドを用います。

[ec2-user@ip-172-31-23-189 ~]$ sudo vim /etc/environment

 

入力モードへ切り替えて(iを入力)、下記の通り記述します。

なお、secret_key_baseに加えて、musqlのrootユーザーのパスワードも漏洩しないよう、環境変数に代入しておきます。

DATABASE_PASSWORD='MySQLのrootユーザーのパスワード'
SECRET_KEY_BASE='先程コピーしたsecret_key_base'

 

入力後、エスケープキーを押した上で「:wq」と入力して、変更内容を保存します。設定した環境変数を反映させるために一度ログアウトして、ログインし直す必要があります。

logout
Connection to 52.xx.xx.xx closed.

 

再度ログイン(ssh接続)し、環境変数が設定されているか確認する。

[ec2-user@ip-172-31-23-189 ~]$ env | grep SECRET_KEY_BASE
SECRET_KEY_BASE='secret_key_base'

[ec2-user@ip-172-31-23-189 ~]$ env | grep DATABASE_PASSWORD
DATABASE_PASSWORD='MySQLのrootユーザーのパスワード'