본문 바로가기
AWS

AWS ECS 파이썬 도커 이미지 배포 기록

by giem 2023. 7. 10.
반응형

ECS 테스트를 위해 간단하게 파이썬 flask 서버를 올려봤다.

 

이 과정들을 간단하게 기록해 놓기 위해 이 포스트를 작성한다.


Dockerfile

우선 도커파일의 내용은 다음과 같다.

FROM python:3.9
WORKDIR /opt/app

COPY . .
RUN pip3 install --no-cache-dir -r requirements.txt

ENV DB_HOST <RDS 주소>
ENV DB_NAME <DB 이름>
ENV DB_USER <DB 유저>
ENV DB_PASSWORD <DB 비번>
ENV PYTHONUNBUFFERED 1

ENTRYPOINT [ "python3", "main.py" ]

파이썬 3.9 이미지를 가져왔고

requirements.txt에 설치할 모듈과 버전을 작성했다.

여기서 ENV를 통해 환경변수를 추가한 건 서버에서 테스트를 하기 위함이었고

ECS에서 태스크 정의 시 환경변수를 추가할 수 있다.

 

requirements.txt 내용은 아래와 같다.

Flask==2.3.2
Flask-RESTful==0.3.10
mysql-connector-python==8.0.33

 

이 모든 파일과 main.py가 있는 폴더 안에서 docker image를 만들고 ECR로 push 했다.

docker build . -t flasktest
docker tag flasktest:latest <ECR주소>/flasktest:latest
docker push <ECR주소>/flasktest:latest

 


이 이미지를 ECS에서 태스크 정의를 통해 태스크를 만든다.

여기서 환경변수, 포트매핑, 이미지 주소, 상태확인 커맨드 등을 입력해 준다.

 

 

태스크 정의 완료 후 서비스 생성을 통해 서비스 연결과 네트워크를 잡아주어서 ECS에 서비스를 띄웠다.

 


테스트할 때 서비스 업데이트를 하면 새로운 파일이 들어가진 않았다.

새로 이미지를 업로드하면 그 이미지로 다시 태스크 정의를 해야 이미지가 바뀌었다.

이미지 주소만 보는 것이 아니라 내부적으로 이미지 해시값을 저장해 놓는 느낌이었다.

반응형

'AWS' 카테고리의 다른 글

AWS Timestream 알아보기 - Architecture편  (3) 2023.05.10
AWS API Gateway Cognito 권한부여자 연결  (0) 2023.02.23
AWS lambda cognito 키 획득  (0) 2023.02.22
AWS EC2 nvm, node.js 설치  (0) 2023.02.22

댓글