Amazon ECR이란?
Amazon Elastic Container Registry (Amazon ECR) 의 줄임말로 안정적이고 확장 가능한 AWS 관리 컨테이너 이미지 레지스트리 서비스입니다.
이미지를 가용성과 확장성이 뛰어난 아키텍처에 호스팅하여 사용자는 애플리케이션을 위한 컨테이너를 안정적으로 배포할 수 있습니다.
AWS IAM을 사용하여 컨테이너 이미지에 액세스할 수 있는 사용자 및 리소스에 대한 권한을 제어하고 모니터링할 수 있고, 이미지 취약점 스캔 기능도 활성화할 수 있습니다.
1. 소스 Clone
git clone https://github.com/joozero/amazon-eks-flask.git
2. 이미지 리포지토리 생성
리포지토리 이름을 demo-flask-backend_yh라고 설정하도록 하겠습니다.
생성 전에 환경변수로 등록된 리전 정보를 확인해주세요!
echo "${AWS_REGION}"
리전 정보를 확인 후 이미지 리포지토리 생성하는 코드를 작성해줍니다.
리포지토리 이름은 demo-flask-backend_yh , 취약점 스캔 기능 On , 리전을 환경변수에 등록한 리전으로 진행해줍니다.
aws ecr create-repository \
--repository-name demo-flask-backend_yh \
--image-scanning-configuration scanOnPush=true \
--region ${AWS_REGION}
Amazon ECR 콘솔창 에서 생성된 리포지토리를 확인할 수 있습니다.
3. 인증 토근 가져오기 및 전달
get-login-password를 통해 인증 토근을 가지고 오고,docker login 명령어를 통해 사용자 이름을 AWS로 명시하고, 인증하려는 Amazon ECR 레지스트리 URI를 지정합니다.
aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com
위의 명령어로 인증토근을 전달하여 아래와 같이 로그온에 성공하였습니다.
4. 도커 이미지 만들기
다운받은 소스코드 위치에 들어가 도커 이미지를 빌드해보도록 하겠습니다.
cd amazon-eks-flask/
$ docker build -t demo-flask-backend_yh .
생성 후 만들어진 이미지를 확인해보도록 하겠습니다.
docker images | grep demo-flask-backend_yh
5. 도커 tag 사용하기
docker tag 명령어를 통해, 해당 이미지가 특정 리포지토리에 푸쉬될 수 있도록 설정합니다.
도커 tag 명령을 사용하면 이미지 이름 뿐만 아니라 태그도 수정할 수가 있습니다.
docker tag <IMAGE_NAME>:<TAG> <NEW_IMAGE_NAME>:<NEW_TAG> 의 형식을 사용합니다.
엄밀히 따지면 기존에 생성된 이미지의 이름 자체를 수정한 것이 아니라 이미지를 복사하면서 이미지 이름을 새로 설정한 것에 좀 더 가깝다고 합니다.
docker tag demo-flask-backend_yh:latest $ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/demo-flask-backend_yh:latest
변경 후 태그가 변경된것을 docker images를 통해 확인 하였습니다.
6. AWS Repository Push
docker push 명령어를 통해 이미지를 리포지토리에 푸쉬하도록 하겠습니다.
docker push $ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/demo-flask-backend_yh:latest
Amazon ECR 콘솔창에서 방금 생성한 리포지토리를 클릭하면 아래의 화면처럼 이미지가 올라온 것을 확인할 수 있습니다.
'Cloud > AWS' 카테고리의 다른 글
[EKS 웹 애플리케이션 구축] 콘솔 크레덴셜 추가하기 (0) | 2022.08.17 |
---|---|
[EKS 웹 애플리케이션 구축] EKS 클러스터 생성하기 (0) | 2022.08.16 |
[EKS 웹 애플리케이션 구축] 도커 컨테이너 이미지 만들기 (0) | 2022.08.12 |
[EKS 웹 애플리케이션 구축] AWS Cloud9 환경 설정 셋팅 (0) | 2022.08.12 |
[EKS 웹 애플리케이션 구축] eksctl 설치하기 (0) | 2022.08.12 |