1
2

More than 3 years have passed since last update.

EC2とRDSを使用し、RailsアプリをAWSにあげる際に詰まった点 -その2- 

Posted at

●はじめに

下記の記事を参考にEC2とRDSへを使用しRailsアプリをAWSにデプロイする際に詰まった点と、その解消方法をまとめました。
世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで

3.データベースの作成・接続ができない(RDSとRailsの接続)

RDSを使用したため、参考サイトの記述されているMySQLの設定方法とは異なる方法で実装する必要があります。
RDSとRailsの接続時に気にする大きなポイントは2つです。

1.RDSのセキュリティグループで、EC2インスタンスのブライベートIPからの接続を許可してあるか

セキュリティーグループは、AWS consoleからRDSを開き、DB選択すると確認できますね。
スクリーンショット 2020-05-01 23.16.28.png

2.database.ymlのproductionに、RDSのDB名(DB識別子)、ユーザ名、パスワード、host名(エンドポイント)が正しく記述されているか

database.yml
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にあげるまでを参考に実装し、詰まった点です。

とてもわかりやすい記事なので、この記事を中心に実装し、この記事や他記事で補填すればなんとか実装できるかと思います。ポートフォリオ作成中の皆さん、がんばってください!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2