Elastic Beanstalk를 django로 이용하면서 느낀 점들을 모아 봤다.
불편했던 점
- Elastic Beanstalk를 통해 django를 배포할 경우 manage.py를 통해 서버가 실행되지 않는 것 같다. manage.py에서 지정하는 환경변수 코드 등이 작동하지 않는다. 따라서 환경변수 같은 기타 설정 등은 전부 .ebextensions를 통해 지정해햐 한다.
- 기본적인 django 프로젝트 구조가 아닌 경우 배포가 되지 않는다. 장고프로젝트의 기본 구조는 [전체 프로젝트] - [프로젝트 내부 앱, manage.py, 설정 앱] 이 순서대로 되어 있는데 여기서 한 단계를 추가한 프로젝트 구조로 설정을 바꿔가며 수십 번 시도해봤으나 제대로 작동하지 않았다. 다른 이유가 있을지 모르겠지만 이는 Elastic Beanstalk 자체의 문제로 추정된다.
- 로그 정리가 불편한 것 같다. 물론 추가 설정을 하지 않은 점도 있고 내가 서툰 점도 있지만, 배포에 문제가 있으면 최근 로그를 계속 확인해보게 되는데 이렇게 로그가 계속 쌓여서 보기 불편했다.
- 번역이 조금 애매했다. 특정 메뉴의 이름만 빼고 번역한 덕분에 그냥 번역 없는 게 더 편한 경우가 조금 있었다.
- Google App Engine을 썼던 경험을 비교했을 때, Google App Engine의 경우 인스턴스 접속이 굉장히 쉬웠는데, Elastic Beanstalk는 조금 절차가 까다로웠다. 아주 급하고 중요한 건 아니라서 터미널 접속은 다음으로 넘겼다.
좋았던 점
- 설정을 잘 이해하고 있다면 배포가 굉장히 편리하다. EC2나 로컬 컴퓨터로 직접 배포 설정할 하는 것에 비하면 작성해야 할 설정도 적고, 직접 설치할 것도 차원이 다르게 적다. Google App Engine을 이용해본 경험을 떠올리면 Elastic Beanstalk가 더 배포가 편리했다.
- python을 선호하고 자주 쓰는 입장에서 cli가 python 기반이었던 게 맘에 들었다.
- 사실 1이 너무 압도적이라 위에 적은 기타 불편한 점은 커버하고도 남는다고 생각한다.