AWS ECS에서 Django를 이동합시다.

3305 단어 도커장고ECS
최근 웹프레임워크를 제대로 공부하고 싶어서 장고걸스 튜토리얼을 했습니다.

웹 시스템을 만든 적은 있지만 웹 프레임 워크를 만지지 않은 자신도 알기 쉽고 좋은 튜토리얼이었습니다.

이야기는 바뀌어 2018년 7월에 AWS Fargate가 도쿄 리전에 나온 영향도 있고,
AWS의 컨테이너 서비스도 다양하게 만져 움직이고 있습니다.

공부가 Django를 Elastic Container Service(ECS)상에서 움직이는 환경을 구축했습니다.

이번에 구축한 AWS 환경은 CloudFormation(CFn)에서 생성하고 있으며 템플릿은 GitHub에서 게시하고 있습니다.

AWS 구성도



이번에 구축하는 AWS의 구성은 이런 느낌입니다.
Elastic Load Balancer를 이전 단계에 두고 동적 포트 매핑을 활용하여 EC2에서 실행되는 ECS 작업에 액세스할 수 있습니다.



Elastic Container Repository(ECR) 만들기



CFn 템플릿( cloudformation/template-for-ecr.yml )을 사용하여 CFn 스택을 생성하여 ECR을 빌드합니다.

CFn 동작이 완료된 후 ECR에 대한 push 명령이 출력됩니다.

AWS의 기본 프로파일을 환경 변수로 설정한 후 ECR 푸시 명령을 실행하여 ECR에 Docker 이미지를 구축할 수 있습니다.


$ export AWS_DEFAULT_PROFILE=<<YOUR PROFILE>>
$ <<PushCommandsForEcrをコピー&ペーストして実行>>

Elastic Container Service(ECS) 만들기



CFn 템플릿( cloudformation/template.yml )을 사용하여 CFn 스택을 생성하여 ECS 외에 필요한 환경을 구축합니다.

CFn 동작 완료 후 ELB URL이 출력됩니다.

URL을 방문하여 장고의 동작을 확인할 수 있습니다.



동작 확인



URL에 액세스하면 장고가 움직이고 있는지 확인할 수 있습니다.



URL 뒤에 admin/를 추가하여 액세스하면 Django 관리 사이트가 열립니다.
사용자 이름과 암호는 다음과 같이 설정합니다.
  • USER: test
  • PASS: test-password



  • 로그인하고 톱 페이지 오른쪽 상단의 + 버튼을 클릭하면 블로그를 게시할 수 있습니다.



    게시하면 톱 페이지에 반영되지만 SQLite에서 작동하므로 ECS 작업이 멈추면 게시한 모든 데이터가 사라집니다.



    소감



    우선 AWS ECS를 사용하여 장고를 이동할 수 있었습니다.
    ECS의 개념은 움직여 보지 않으면 모르는 곳이 많다고 느꼈기 때문에, 가시가시 움직여 가고 싶습니다.

    프로덕션 운용으로 사용하려면 다음과 같은 것을 아직 생각하지 않으면 안됩니다만, 일단 움직일 수 있는 곳까지 갈 수 있었으므로 만족입니다.
  • RDS와의 연결
  • 로그를 저장하는 방법
  • 운영 모니터링
  • 오류 발생시 처리
  • 좋은 웹페이지 즐겨찾기