はじめに
以下に公式の開発者ガイドがありますが、こちらはEB CLIを使用した方法です。
Elastic Beanstalk の管理画面からアプリケーションをアップロードしたかったのですが、何点かハマりどころがあったので、まとめて記録として残します。
公式の開発者ガイド
Elastic Beanstalk への Django アプリケーションのデプロイ
Beanstalk 管理画面からアプリケーションを作成
管理画面からアプリケーションを作成します。
アプリケーション名を入力します。
プラットフォームにpythonを選択します。
アプリケーションコードの部分は、ここでは一旦サンプルアプリケーションを選んで進みます。
作成されました。
サンプルアプリケーションが確認できます。
アプリケーションの準備
Djangoのアプリケーションに以下のファイルの追加が必要です。
django.configの追加
プロジェクトフォルダの直下に.ebextensions/django.config を作成します。
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: testpj.wsgi:application
testpjの部分はプロジェクトの名前に適宜変更します。
requirements.txt の追加
下記コマンドを実行して、requirements.txtを作成します。
$ pip freeze
プログラムのアップロード
プログラムをアップロードする時はzipファイルをアップロードします。
ここで注意が必要ですが、親ディレクトリは含めてはいけません。
下記ように最上位のディレクトリを除き、zipファイルを作成してアップロードします。
またvenvディレクトリは不要なので削除します。
親ディレクトリも含めてアップロードした場合、ヘルスの部分に「Following services are not running: web.」というエラーがでていましたが、原因がわからずハマりました。
まとめ
ハマりどころがいくつかありましたが、一度わかってしまえば簡単です。
どなたかの参考になりますように。