Herokuへデプロイ
アプリケーションをHerokuへデプロイ
アプリケーションをHerokuへデプロイするための手順についてまとめていきます。
Herokuとは
Paasの一つでアプリケーションの公開、運用を行うためのサーバーを提供しているサービスのこと。基本機能だけの場合、無料で使うことができ、デプロイの手間が少なく容易であるというメリットがある。
Herokuへデプロイするための手順
Heroku CLIをインストールする
Herokuへデプロイするアプリケーションのディレクトリで以下を実行する。
brew tap heroku/brew && brew install heroku heroku --version # インストールが完了したか確認
Herokuへログインする
heroku login --interactive
EmailとPasswordを要求されるため入力する。
rails_12factoryの導入
rails_12factoryは静的アセットファイルやログの保存先をHeroku用に微調整してくれるGem。 Gemfileのgroup :production内にgem 'rails_12factory'を記述する。
Heroku上にアプリケーションを作成する
Herokuへデプロイするアプリケーションのディレクトリで以下を実行する。
heroku create アプリケーション名 git config --list | grep heroku # 正しく設定されているか確認(fatal: not in a git directory以外が表示されれば良い。)
heroku createコマンドはHeroku上に公開するためのアプリケーションを作成することができるコマンド。続けてアプリケーション名を記述することで、Heroku上でのアプリケーション名を決めることができる。
Heroku上でMySQLを使えるようにする
アプリケーションをデプロイする前にDBの設定をしておく。HerokuではデフォルトでPostgreSQLというDBが設定されている。そのため、MySQLを使用できるようにするために以下のコマンドを実行する。
heroku addons:add cleardb # このように出力されていると成功(WARNという警告が出てもそのまま進む) Creating cleardb on ⬢ ajax-app-123456... free Created cleardb-vertical-00000 as CLEARDB_DATABASE_URL Use heroku addons:docs cleardb to view documentation
clearDBアドオンとは、MySQLを使うためのツール。これを追加することでHerokuでMySQLを使うことができるようになる。
設定を変更する
Railsを使う場合、MySQLに対するGemについて考慮する必要があるため、以下のコードを実行して設定を変更する。
heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL` # ClearDBのURLを変数heroku_cleardbに格納 heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5} # DBのURLの再設定 # 出力結果 Setting DATABASE_URL and restarting ⬢ ajax-app-123456... done, v◯◯ DATABASE_URL: mysql2://000000000000:0aa0000@us-cdbr-east-02.cleardb.com/heroku_aaa00000000?reconnect=true
Heroku上で環境変数を設定する
Heroku上で環境変数を設定するために以下のコードを実行する。
heroku config:set RAILS_MASTER_KEY=`cat config/master.key` heroku config # Heroku上の環境変数一覧を表示
アプリケーションをHerokuへpushする
以下のコマンドを実行し、Herokuへアプリケーションをpushする。
git push heroku master
Heroku上でマイグレーションファイルを実行する。
Heroku上のDBにはマイグレーションの情報が反映されていないため、以下のコマンドを実行する。
heroku run rails db:migrate
heroku runコマンドはHeroku上で実行したいコマンドに用いる。
公開を確認する
以下のコマンドを実行する。
heroku apps:info
heroku apps:infoコマンドはHerokuへデプロイされたアプリケーションの情報を見ることができる。ここに記述されているURLへアクセスすれば、公開したアプリケーションにアクセスすることができる。
デプロイ後のエラー対応方法
まず、エラーログを確認する。エラーログとは、アプリケーションなどのシステム実行時に発生したエラーを記録したもの。以下のコマンドを実行すると確認することができる。
heroku logs --tail --app <<アプリケーション名>> # --tailはログの最後の10行だけを表示するためのオプション
Herokuへのデプロイを行ってみて
Heroku以外でもよくあるが、環境変数を設定し忘れて接続できないことがある。本番環境をAWSに置き換えたりするときにエラーが出たらまず環境変数を疑ってみる。
手順はたくさんあるが、焦らず一つずつやっていくことが大事。