#●はじめに
下記の記事を参考にEC2とRDSへを使用しRailsアプリをAWSにデプロイする際に詰まった点と、その解消方法をまとめました。
世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで
#3.データベースの作成・接続ができない(RDSとRailsの接続)
RDSを使用したため、参考サイトの記述されているMySQLの設定方法とは異なる方法で実装する必要があります。
RDSとRailsの接続時に気にする大きなポイントは2つです。
###1.RDSのセキュリティグループで、EC2インスタンスのブライベートIPからの接続を許可してあるか
セキュリティーグループは、AWS consoleからRDSを開き、DB選択すると確認できますね。
###2.database.ymlのproductionに、RDSのDB名(DB識別子)、ユーザ名、パスワード、host名(エンドポイント)が正しく記述されているか
production:
<<: *default
database: ~~~~~~~~~~~~~~~~
username: ~~~~~~~~~~~~~~~~
password: <%= ENV['DB_PASSWORD'] %>
host: <%= ENV['DB_HOST'] %>
DB識別子・エンドポイントは先ほど表示した、RDSの画面から確認できますね!
ユーザー名・パスワードはRDS作成時に入力したものです。
直打ちはやめてしっかりと環境変数で管理しましょう。
環境変数は、ローカルで設定したものは反映されません。本番環境で設定しましょう。
#4.Nginxの起動・停止コマンド
参考にしたサイトには以下のようになっています。
$ sudo service nginx start
しかしCentOS7以上を使用している場合は、こちらのコマンドで実行する必要があります。
$ sudo systemctl start nginx
※CentOSの確認方法に関しては、記事を見つけました。
Linux (CentOS) の OS バージョンを確認する方法
そして一番重要な点は、起動と停止コマンドを必ず同じにしてください
つまり、serviceで起動したら
$ sudo service nginx stop
systemctlで起動したら
$ sudo systemctl stop nginx
を入力し停止します。再起動時も同様です。
ここで異なる方法で停止してしまうと、ゴミファイルが生まれてしまい、エラーが生じることがあるようです。
自分はそれで起動も停止も再起動もできない状態になりました・・・
その際はとりあえずkillコマンドで片っ端から削除し、解決しました。
#●まとめ
以上が世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまでを参考に実装し、詰まった点です。
とてもわかりやすい記事なので、この記事を中心に実装し、この記事や他記事で補填すればなんとか実装できるかと思います。ポートフォリオ作成中の皆さん、がんばってください!