iam
을 테라폼사용하던 계정말고 하나 더 추가 해주는게 좋음
이미지를 registry
에 push
하려면 AWS CLI
가 필요함
- IAM 계정 생성(프로그래밍 방식)
- docker vm에 aws 명령설치
- aws 명령 인증 구성
aws configure list # aws configure 잘 되었는지 확인
Elastic Container Service/리포지토리/리포지토리 생성
항목 | 설정값 |
---|---|
표시여부 설정 | 퍼블릭 |
리포지토리 이름 | 유일한 이름으로 설정 |
/리포지토리 생성/클릭
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
FROM python:3.9-slim
RUN pip3 install flask
WORKDIR /root
ADD hello.py .
CMD ["python3", "-m", "flask", "run", "--host=0.0.0.0"]
docker build -t pyhello:flask .
docker images
docker tag pyhello:flask public.ecr.aws/d5r9n1r7/repush:flask
/Amazon Elastic Container Registry/Repositories/푸시 명령어보기/클릭
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/d5r9n1r7
docker push public.ecr.aws/d5r9n1r7/repush:flask
/서비스/Amazon ECR/리포지토리/repush/
에서 이미지 확인
/서비스/ECS/클러스터 생성/클릭
항목 | 설정값 |
---|---|
클러스터이름 | mycontainer |
네트워킹 | 기본값유지 |
인프라 | 기본값 유지 |
모니터링 | 활성화 |
/생성/클릭
/서비스/ECS/테스크 정의/새 태스크 정의 생성/클릭
항목 | 설정값 |
---|---|
태스크 정의 패밀리 | flask-task |
이름 | flaskweb |
이미지 URI | public.ecr.aws/d5r9n1r7/repush:flask |
컨테이너 포트 | 80 |
/다음/클릭
항목 | 설정값 |
---|---|
앱환경 | AWS Fargate |
운영 체제 | Linux/X86_64 |
CPU | 0.25 vCPU |
메모리 | 0.5GB |
모니터링기능 | 활성화 |
/다음/클릭
/생성/클릭
/Amazon Elastic Container Service/클러스터/mycontainer/태스크/새 태스크 실행/클릭
항목 | 설정값 |
---|---|
애플리케이션 유형 | 서비스 |
패밀리 | flask-task |
서비스 이름 | myweb-svc |
원하는 태스크 | 2 |
/배포/클릭
/Amazon Elastic Container Service /클러스터 /mycontainer /태스크/컨테이너 클릭
주소창에 퍼블릭 IP 입력해보면..
레포지토리에 올린 이미지를 태스크 정의에서 생성한 이미지 주소를 입력해도 나중에 생성시에 해당 이미지를 불러오지 못하는 오류가 발생했다. 이 부분을 해결해보자..
저도 같은 오류를 발견해서 해결책을 찾고 있습니다 ㅎㅎ