RailsのアプリをEC2で作成しました。
その後、EC2、RDS、puma、nginxなどを停止させていましたが、再起動させようとしてデータベースコネクションエラーが出てしまったときの解決方法の備忘録です。
AWSにIAMユーザーでログイン
EC2インスタンスを起動
ElasticIPアドレスが関連付ける
RDSを起動
Route53で独自ドメインのAレコードをElasticIPを指定
ターミナルでSSH接続
$ ssh -i "◯◯◯.pem" ec2-user@◯◯.◯◯.◯◯.◯◯◯
nginx起動
$ sudo nginx
puma起動
$ bundle exec pumactl start
ブラウザでドメインを入力して起動を確認します。
ここでエラーが発生しました。
ActiveRecord::DatabaseConnectionError
There is an issue connecting to your database with your username/password, username: root.
Please check your database configuration to ensure the username/password are valid.
ユーザーネームとパスワードの組み合わせが正しくないのでデータベースに接続できないようです。
Pumaの起動時にdevelopment環境で起動しているような文言が合ったのが気になりました。
Puma starting in single mode...
* Environment: development
起動前にproduction環境にしてあげる必要があるようです。
export RAILS_ENV=production
上記を実行
[ec2-user@ip-10-0-10-11 アプリ名]$ export RAILS_ENV=production
[ec2-user@ip-10-0-10-11 アプリ名]$ bundle exec pumactl start
* Environment: production
production環境になりました。
ブラウザでドメインを入力して起動を確認します。
無事に起動が確認できました。
今回のエラーはproduction環境に設定しないで起動をしようとしたのが原因だったようです。