Elastic Beanstalk에서 python django로 배포를 진행할 때 WSGIPath를 다음과 같은 경우 WSGIPath 경로를 제대로 인식하지 못한다.
ProjectHome
├── API
├── background_uploader
├── dynamodb_wrapper
├── google_api_wrapper
├── manage.py
├── Project
│ ├── API
│ ├── Project_inner
│ │ ├── API
│ │ ├── asgi.py
│ │ ├── __init__.py
│ │ ├── setting
│ │ ├── urls.py
│ │ └── wsgi.py
│ ├── manage.py
│ └── static
│ ├── admin
│ └── rest_framework
└── secret_keys
위 경우에서 django startproject 명령으로 생성된 디렉토리는 Project 디렉토리이고 wsgi파일의 경로는 /Project/Project_inner/wsgi.py이며 elastic beanstalk 세팅에서 다음과 같이 작성할 수 있다.
django.config
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: Project.Project_inner.setting.develop_eb
aws:elasticbeanstalk:container:python:
WSGIPath: Project.Project_inner.wsgi:application
수 십 번 정도 시도해본 결과 위 경우에는 제대로 wsgi를 인식하지 못했다. Project 디렉토리까지는 인식하지만 Project 디렉토리 아래의 어떤 파일도 제대로 인식하지 못했다. 이 부분은 버그로 추정된다.
공식 가이드와 유사한 다음 디렉토리 형태로 작성하면 제대로 인식한다.
디렉토리
ProjectHome
├── API
├── background_uploader
├── dynamodb_wrapper
├── google_api_wrapper
├── manage.py
├── API
├── Project_inner
│ ├── asgi.py
│ ├── __init__.py
│ ├── setting
│ ├── urls.py
│ └── wsgi.py
├── manage.py
└── static
│ ├── admin
│ └── rest_framework
└── secret_keys
django.config
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: Project_inner.setting.develop_eb
aws:elasticbeanstalk:container:python:
WSGIPath: Project_inner.wsgi:application