당신은 멋쟁이, 우리는 장고쟁이~

0%

AWS Elastic Beanstalk 배포 - 5

Elastic Beanstalk 를 위한 설정


지난 포스팅까지, django2.1.1 기반의 django 프로젝트를 하나 생성해 주었습니다.


아무것도 수행하지 않는 어플리케이션이지만, 이 간단한 어플리케이션을 Elastic Beanstalk 에 배포하기 위해서는, 아래와 같은 몇가지 설정들을 해주어야 합니다.



  1. requirements.txt 파일 생성
  2. .ebextensions 폴더 생성후, 그 안에 django.config 파일 작성


requirements.txt 파일 생성


pip freeze > requirements.txt 명령어를 통해, requirements.txt 파일을 생성해 줍니다.


requirements.txt 는 어플리케이션이 작동하기 위한 패키지들의 목록을 담고 있습니다.


1
2
3
4

(eb_env) dhkang  ~/elastic_beanstalk/ebdjango  pip freeze > requirements.txt
(eb_env) dhkang  ~/elastic_beanstalk/ebdjango  ls
db.sqlite3 ebdjango manage.py requirements.txt

Elastic Beanstalk 는 requirements.txt 파일을 사용하여,

어떤 패키지들이 EC2 인스턴스에 설치 되어야 하는지 결정합니다.


.ebextensions 라는 디렉토리 만들어 주기


1
2
3
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  mkdir .ebextensions
(eb_env) dhkang  ~/elastic_beanstalk/ebdjango  ls
db.sqlite3 ebdjango manage.py requirements.txt

디렉토리를 만들었으면, 해당 디렉토리로 이동후에, django.config 파일을 생성해 줍니다


1
2
3
4
5
(eb_env)  dhkang  ~/elastic_beanstalk/ebdjango  cd .ebextensions 
(eb_env) dhkang  ~/elastic_beanstalk/ebdjango/.ebextensions  ls
(eb_env) dhkang  ~/elastic_beanstalk/ebdjango/.ebextensions  touch django.config
(eb_env) dhkang  ~/elastic_beanstalk/ebdjango/.ebextensions  ls
django.config

파일이 생성되었으면, 아래 내용을 django.config파일에 추가해 줍니다.


1
2
3
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: ebdjango/wsgi.py


이 세팅은, Elastic Beanstalk 가 여러분의 애플리케이션을 시작하기 위한 WSGI 스크립트의 위치를 지정해 줍니다.


이 세팅을 잘못하면,

배포 후에 Internal Server Error 라던지, 사이트가 표시되지 않는등의 에러를 경험할수 있습니다.


이렇게 Elastic Beanstalk 를 위한 추가 설정을 마쳤습니다.


.ebextensions 폴더를 만들고, 그안에 django.config 파일을 생성해 주면 됩니다.