반응형
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 |
댓글