1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS EC2で本番環境構築

Posted at

はじめに

AWSのEC2で本番環境を構築するエラーとの日々を備忘録として、ここに残したいと思います。

環境

ruby 3.0.2
rails 6.1.4
Nginx 12.0.0
puma 5.0

参考URL

https://zenn.dev/naoki_mochizuki/books/1471ce20222227
EC2で本番環境を構築する手順はこちらの記事を参考にさせてもらったので省略させていただきます。
こちらを最後までやり切った後のエラーについて書かせて頂きます。

本番環境へアクセス・・・

参考記事通りに進めていき、SSHでAWS上にログインした状態でこちらのコマンドを実行しwebにアクセスします。

sudo nginx -s reload

bundle exec pumactl start

これでやっと本番環境に構築できたと思ったら、
スクリーンショット 2020-07-18 21.54.37.png
お約束の通りエラーさんが出てきました。

原因

皆さん色々なアプリを作成されており、そのアプリによって原因は違いますが私の場合は、database.ymlが原因でした。

config/database.yml

default: &default
  adapter: mysql2
  encoding: utf8
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: ユーザー名
  password: パスワード
  host: ホスト名

production:
  <<: *default
  database: データベース名
  adapter: mysql2
  encoding: utf8mb4
  charset: utf8mb4
  collation: utf8mb4_general_ci
  username: <%= Rails.application.credentials.db[:user_name] %>
  password: <%= Rails.application.credentials.db[:password] %>
  host: <%= Rails.application.credentials.db[:endpoint] %>
  pool: 20
  timeout: 1000 

対策

こちらファイルと.envという環境変数のファイルを変更していきます。

.env

RAILS_MAX_THREADS=5
DATABASE_HOST=RDSのエンドポイント
DATABASE_USER=マスターユーザー名
DATABASE_PASSWORD=マスターユーザーのパスワード
DATABASE_NAME=データベース名
RAILS_ENV=production 
config/database.yml

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS", "5" ) %>
  host: <%= ENV.fetch("DATABASE_HOST", "localhost" ) %>
  username: <%= ENV.fetch("DATABASE_USER") %>
  password: <%= ENV.fetch("DATABASE_PASSWORD") %>
  database: <%= ENV.fetch("DATABASE_NAME", "my_project") %>

production:
  <<: *default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS", "5" ) %>
  host: <%= ENV.fetch("DATABASE_HOST", "localhost" ) %>
  username: <%= ENV.fetch("DATABASE_USER") %>
  password: <%= ENV.fetch("DATABASE_PASSWORD") %>
  database: <%= ENV.fetch("DATABASE_NAME", "my_project") %>
  pool: 20
  timeout: 1000

こちらに変更したファイルになります。
こちらを変更したことにより本番環境にアクセスできるようになりました。

まとめ

本番環境で出るエラーはログがないため、苦労しました。

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?