heroku + djangoでのwebアプリ開発がなかなか良さそう。
個人でvpsを一つ契約しているので、最初はここにデプロイすることも考えていたが、 nginx + uwsgi + djangoの設定や、既に動いている他のphpアプリとの兼ね合いなどを検討していると、いつまでたってもデプロイできなさそうだった。 簡単にデプロイできるpaasを使おうと思った。
awsとかgcpとか検討してみたが、いまいちアプリデプロイまでの方法が見えなかった。(※ドキュメント見逃しているのかも) herokuでは丁寧なチュートリアルを見つけたので、軽い気持ちで採用した。 https://devcenter.heroku.com/articles/getting-started-with-python#introduction
無料枠も用意されているので、 開発は無料で行い、完成後そのまま課金して本番運用に切り替えれるのもいい感じ。
herokuへdjangoアプリデプロイまでの作業
python(3.6.4)とdjango(2.0.3)で作成したdjangoアプリをherokuへデプロイする。
pipenvをインストールする
pip install pipenv
pipenvをつかってpythonモジュールをインストールすると、 PipfileとPipfile.lockというファイルが作成される。 herokuデプロイ時に、herokuはこのファイルを見て必要なモジュールをインストールするらしい。 以降のモジュールインストールはこのpipenvをつかって行う。
必要なモジュールをインストールする。
djangoアプリのルートにて
pipenv install django pipenv install django-heroku pipenv install gunicorn を実行する
settings.pyにheroku用の設定を追記する。
参考)https://github.com/heroku/django-heroku
コレを一番下に追記
Configure Django App for Heroku.
import django_heroku django_heroku.settings(locals())
Procfileをルート直下に置く
内容は web: gunicorn todo_share.wsgi --log-file - と記載しておく。
herokuがプロセスを立ち上げるときに実行するコマンドを記載しておくファイルっぽい。
gitのmasterブランチにここまでをコミットしておく。
herokuアカウントを作成する
herokuコマンドをインストールする
https://devcenter.heroku.com/articles/heroku-cli
herokuにアプリを作成する
heroku create を実行。
herokuにデプロイする
git push heroku master を実行
heroku側でマイグレーションを実行する
heroku run python manage.py migrate を実行
アプリを確認する
heroku open を実行