前回、途中で脱落してしまったのだが、、、今度こそ!
serverless.hateblo.jp
今回は、AWS公式のチュートリアルに、そのまま沿ってやってみます!
これ以外のことは、やらないぞ。
Elastic Beanstalk への Django アプリケーションのデプロイ - AWS Elastic Beanstalk
前回はフォルダ構成を間違えていたかなぁ。
このstackoverflowを見ながら、再度トライしてみたい。
stackoverflow.com
./ebdjango ↓ . ├── .ebextensions │ └── python.config ├── .elasticbeanstalk │ ├── config ├── .git ├── .gitignore ├── manage.py ├── ebdjango │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── requirements.txt
(1) python3.6をインストール
最新は3.7なんですが、AWS EBとの相性を考えて。
3.7はアンインストールして、3.6を入れました。
www.python.org
Python 3.6.6 - 2018-06-27
Windows x86-64 executable installer
インストール時は、”Add”Python3.6 to Path"のチェックオンも忘れずに。
(2) virtualenvをインストール
C:\python>pip install virtualenv
(3) AWS ebcliをインストール
pip install awsebcli --upgrade --user
path"Python 3.6 – %USERPROFILE%\AppData\Roaming\Python\Python36\Script"も設定の事
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3-install.html
(4) virtualenvで環境を作る
C:\python>cd env0001
少し待ちます。
当該フォルダに移動してから、アクティベートしましょう。
C:\python>cd env0001 C:\python\env0001>Scripts\activate
(5)djangoを仮想環境にインストールする
(env0001) C:\python\env0001>pip install django==2.0
python3.6に対応しているのがdjango2.0だったような気がするので、このようにバージョンを指定しました。
(6)ローカルにプロジェクトを作る
(env0001) C:\python\env0001>django-admin startproject ebdjango
(7)まずはローカルで動かす
(env0001) C:\python\env0001>cd ebdjango (env0001) C:\python\env0001\ebdjango>python manage.py runserver Performing system checks... System check identified no issues (0 silenced). You have 14 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them. July 15, 2018 - 15:33:45 Django version 2.0, using settings 'ebdjango.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. [15/Jul/2018 15:33:49] "GET / HTTP/1.1" 200 16559 [15/Jul/2018 15:33:49] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423 [15/Jul/2018 15:33:50] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348 [15/Jul/2018 15:33:50] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304 [15/Jul/2018 15:33:50] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564 Not Found: /favicon.ico [15/Jul/2018 15:33:50] "GET /favicon.ico HTTP/1.1" 404 1974
(8) (CLIで初アクセスの場合)AWSのアクセスキーを払い出す
docs.aws.amazon.com
忘れないように、アクセスキーはどこかに記録しておきましょう。
(9) Elastic Beanstalk用の設定
さて、この開始位置のフォルダが重要です。仮想環境ではなく、プロジェクトフォルダの直下から始めましょう。
この例では、ebdjangoの直下です。
(env0001) C:\python\env0001>cd ebdjango (env0001) C:\python\env0001\ebdjango>pip freeze > requirements.txt (env0001) C:\python\env0001\ebdjango>mkdir .ebextensions
.ebextensions ディレクトリ内に、次のテキストを持つ django.config という名前の設定ファイルを追加します。
例 ~/ebdjango/.ebextensions/django.config
option_settings: aws:elasticbeanstalk:container:python: WSGIPath: ebdjango/wsgi.py
ここで、仮想環境から出ます。
(env0001) C:\python\env0001\ebdjango>..\Scripts\deactivate
まだ、フォルダの位置はプロジェクト"ebdjango"の直下ですよ。
(10) ebcli(elastic beanstalk command line interface)でサイトをデプロイする
C:\python\env0001\ebdjango>eb init -p python-3.6 ebdjango Select a default region 1) us-east-1 : US East (N. Virginia) 2) us-west-1 : US West (N. California) 3) us-west-2 : US West (Oregon) 4) eu-west-1 : EU (Ireland) 5) eu-central-1 : EU (Frankfurt) 6) ap-south-1 : Asia Pacific (Mumbai) 7) ap-southeast-1 : Asia Pacific (Singapore) 8) ap-southeast-2 : Asia Pacific (Sydney) 9) ap-northeast-1 : Asia Pacific (Tokyo) 10) ap-northeast-2 : Asia Pacific (Seoul) 11) sa-east-1 : South America (Sao Paulo) 12) cn-north-1 : China (Beijing) 13) cn-northwest-1 : China (Ningxia) 14) us-east-2 : US East (Ohio) 15) ca-central-1 : Canada (Central) 16) eu-west-2 : EU (London) 17) eu-west-3 : EU (Paris) (default is 3): 9 Application ebdjango has been created.
※チュートリアルではオプションと書いてある"eb init"は実行せずに、次に行きます。
C:\python\env0001\ebdjango>eb create django-env
ここで数分を待つ。
環境の作成プロセスが完了したら、eb status を実行して新しい環境のドメイン名を見つけます。
~/ebdjango$ eb status
と、入力すると、、、
Environment details for: django-env
Application name: django-tutorial
...
CNAME: eb-django-app-dev.elasticbeanstalk.com
これが、欲しい文字列です。
ebdjango ディレクトリ内の settings.py ファイルを編集し、ALLOWED_HOSTS 設定を見つけ、先のCNAMEのプロパティ値を追加します。
...
ALLOWED_HOSTS = ['eb-django-app-dev.elasticbeanstalk.com']
ここで、デプロイします。
C:\python\env0001\ebdjango>eb deploy
最後に、eb openでブラウザが立ち上がります。
C:\python\env0001\ebdjango>eb open
動いた~★
ここまでできて、良かったです。
さて、チュートリアルは、まだまだ続きます。
(11) 設定を変更する。
TIME_ZONE の settings.py 設定を変更する
例 ~/ebdjango/ebdjango/settings.py
... # Internationalization # https://docs.djangoproject.com/en/2.0/topics/i18n/ LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True
そして、デプロイします。
C:\python\env0001\ebdjango>eb deploy
さら、ここから様々djangoアプリを作ってみますが、続きは、コチラにて。
serverless.hateblo.jp
(注意を追記)
CSSを使っている場合は、以下の処理が必要です。
チュートリアルに書いてあるのですが、見落としやすいですね。
まず、settings.pyへの追記。
# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.9/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = 'static'
そして、静的アセットの追加。
(env0002) C:\python\env0002\ebdjango>python manage.py collectstatic