devnoong.log
article thumbnail
728x90

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 콘솔창 에서 생성된 리포지토리를 확인할 수 있습니다.

 

https://console.aws.amazon.com/ecr/home

 

console.aws.amazon.com

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 콘솔창에서 방금 생성한 리포지토리를 클릭하면 아래의 화면처럼 이미지가 올라온 것을 확인할 수 있습니다.

 

728x90