既存のRailsアプリをHerokuにデプロイして本番稼働させるまでの手順を説明します。
運用面を考慮した細かな設定も含みますので、公式ドキュメントよりも豊富な内容になっております。
1. Herokuで新しいアプリを作成する
Heroku管理画面からCreate New Appします。
任意の名前を入力してくHerokuアプリを作成してください。
2. ビルドパックを登録する
SettingsタブのBuildpacksから任意のビルドパックを登録します。 Webpackerを使用しているアプリの場合はnodejsとrubyを登録します。
3. GitHubと連携する
Heroku上にデプロイできるようにGitHubにリモートリポジトリを登録します。
heroku git:remote -a hello-your-heroku-app-name
git remote -vでリモートリポジトリの設定を確認するとHerokuと連携されていることが確認できます。
git remote -v heroku https://git.heroku.com/hello-your-heroku-app-name.git (fetch) heroku https://git.heroku.com/hello-your-heroku-app-name.git (push)
4. Herokuにデプロイする
下記コマンドによりHerokuにデプロイします。 デプロイが成功すると、最小限の構成でDynoやDBが構築されます。
git push heroku master
5. タイムゾーンの設定
Herokuのタイムゾーンを東京に設定します
$ heroku run bash ~ $ date Mon Mar 7 02:35:04 UTC 2022 ~ $ exit ※一旦抜けます $ heroku config:add TZ=Asia/Tokyo ~ $ date Mon Mar 7 11:35:48 JST 2022
DBのタイムゾーンを東京に設定します
$ heroku pg:psql DATABASE=> select current_timestamp; current_timestamp ------------------------------- 2022-03-07 08:49:45.681203+00 (1 row) DATABASE=> alter database データベース名 set timezone = 'Asia/Tokyo'; DATABASE=> \q ※一旦抜けます $ heroku pg:psql DATABASE=> select current_timestamp; current_timestamp ------------------------------- 2022-03-07 17:51:08.162538+09 (1 row)
6. DBの構築
DBを構築します。必要に応じてseedを流します
heroku run rake db:migrate heroku run rake db:seed
7. 環境変数の設定
$ heroku config:add WEB_CONCURRENCY=1 $ heroku config:add LANG=ja_JP.UTF-8
8. 必要なアドオンをインストール
必要があればアプリで使用するアドオンをインストールします。
弊社のプロジェクトの場合は以下のアドオンをインストールします
- Heroku Redis
- Papertrail
- Scout APM
9. アプリの起動確認
最後にアプリの起動確認をして一通りの構築作業は完了です
heroku open
本番稼働に備えて
本番稼働に備えて以下の設定を行うことをオススメします。
DynoをHobbyプラン以上にする
DynoはHobby以上でなければ一定時間でスリープしてしまいますので、最低限Hobbyプラン以上にする必要があります。
DBをStandard0以上にする
Freeだと10,000レコードの制限があり、Hobbyだとインメモリデータベースではないので速度が遅いです。 そのため、Standard0以上をオススメします。
DBのアップグレード手順は下記の記事を参考にしてみてください。
HerokuのDBを有料プラン(Hobby)に切り替える方法 - 行動すれば次の現実
独自ドメインの設定
ドメインにherokuapp.comが付いてしまうので独自ドメインを設定しましょう。 独自ドメインを設定するにはDynoがHobby以上である必要があります。