
何か作ったアプリケーションをデプロイするにはHerokuは非常にお手軽なデプロイ環境です。今回は、Herokuにデプロイする際にステージング環境と商用環境を分ける方法を紹介します。
見出し
はじめに
ユーザにアプリケーションを公開する環境を一般的に商用環境と呼びます。仮に趣味で作っているだけのアプリケーションをHerokuコマンドでそのままデプロイし、ドメインを付けて公開した場合、そのdynoは商用環境と言うことになります。
もしそのアプリケーションにユーザが一人もいないのであれば、継続して開発したソースコードを直接商用環境にデプロイしても誰も文句は言いません。少し悲しいですけどね。ただし、もしそのアプリケーションに一人以上のユーザがいるのであれば、dyno上でテストをしていないソースコードを直接商用環境にデプロイするのはエンジニアとしてよろしくない行為です。少なくとも商用環境にデプロイする前に、商用環境とほぼ同じ環境であるステージング環境を準備してテストするようにしましょう。
では、具体的にHeroku上のステージング環境と商用環境を作り、デプロイ先を分ける方法を見ていきましょう。
Herokuのデプロイ先をステージング環境と商用環境に分ける
heroku createで複数の環境を作る
最初からステージング環境と商用環境に分ける前提であれば、単に「heroku create」コマンドを実行する際に「–remote」オプションを指定するだけで実現できます。
$ cd your-project
$ heroku create --remote staging
$ heroku create --remote production
$ git remote -v
origin https://github.com/you/your-project.git (fetch)
origin https://github.com/you/your-project.git (push)
production https://git.heroku.com/xxxxxxxx-xxxx-XXXXX.git (fetch)
production https://git.heroku.com/xxxxxxxx-xxxx-XXXXX.git (push)
staging https://git.heroku.com/yyyyyyyy-yyyy-YYYYY.git (fetch)
staging https://git.heroku.com/yyyyyyyy-yyyy-YYYYY.git (push)
一応、公式ドキュメントはこちらです。
既存の環境を使いまわす場合
すでに「heroku create」でHerokuの環境を構築済みで、その環境をステージング環境に変更したい場合は、「git remote rename」コマンドで名前を変更すればOKです。
$ git remote -v
origin https://github.com/you/your-project.git (fetch)
origin https://github.com/you/your-project.git (push)
heroku https://git.heroku.com/yyyyyyyy-yyyy-YYYYY.git (fetch)
heroku https://git.heroku.com/yyyyyyyy-yyyy-YYYYY.git (push)
$ git remote rename heroku staging
$ git remote -v
origin https://github.com/you/your-project.git (fetch)
origin https://github.com/you/your-project.git (push)
staging https://git.heroku.com/yyyyyyyy-yyyy-YYYYY.git (fetch)
staging https://git.heroku.com/yyyyyyyy-yyyy-YYYYY.git (push)
環境毎にHerokuコマンドを使い分ける
Herokuコマンドは実行する時に「–remote」オプションで環境を指定することで、環境を切り替えて使用できます。
$ git push staging master
$ heroku open --remote staging
$ git push production master
$ heroku open --remote production
最後に
いかがでしたか?Heroku上で複数の環境を用意するのは簡単なので、ステージング環境や商用環境だけでなく、ユースケースに応じてHerokuの環境を使い分けると良いでしょう。では。


コメントを残す