AWS ECR 사용하기

Created:

Docker Image를 어떻게 EC2로 옮길까 하고 찾아보니 AWS 제공하는 서비스 ECR(EC2 Container Registry)가 있어서 공유해 보고자 한다.

순서

  1. AWS ECR 생성
  2. AWS 엑세스키 발급
  3. AWS CLI를 통해 Docker에 로그인
  4. Docker Image를 ECR로 PUSH
  5. Docker Image를 ECR로 부터 PULL

AWS ECR 생성

AWS에 접속하여 ECR서비스로 이동후에 생성해준다.


생성한 레파지토리안에 들어가보면 현재는 아무것도 없는 상태이다.

AWS 엑세스키 발급

방금 생성한 ECR레파지토리에 접근하려면 엑세스키가 필요하다.

엑세스 정보를 발급받기 위해 AWS의 IAM 서비스로 이동해서 User를 생성한다.


퍼미션 추가 항목에서 AmazonEC2ContainerRegistryFullAccess 권한을 추가 한뒤 생성을 완료한다.


이때 발급된 엑세스키와 시크릿키등 정보를 AWS CLI 로그인할때 사용한다

AWS CLI를 통해 Docker에 로그인

AWS CLI가 설치 되어있지 않다면 설치부터 진행한다. (MAC OS 기준)

$ brew install awscli

잘 설치 되었는지 확인

$ aws --version

위에서 발급받은 엑세스 정보를 입력한다.

$ aws configure
AWS Access Key ID: ${발급받은 엑세스키}
AWS Secret Access Key: ${발급받은 시크릿키}
Default region name: ${리전정보} // ap-northeast-2(서울)
Default output format: json

docker에 로그인할 정보를 가져오기 위해 아래 명령을 입력한다.

$(aws ecr get-login --no-include-email --region ${자신의 리전})
// (aws ecr get-login --no-include-email --region ap-northeast-2)

위 명령을 입력하고나면 아래처럼 Docker 로그인 정보를 반환하는데 그대로 콘솔에 복사 붙여넣기 하면 Docker 로그인이 완료된다.

$ docker login -u AWS -p
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXX== https://000000000000.dkr.ecr.ap-northeast-2.amazonaws.com

Login Succeeded

Docker Image를 ECR로 PUSH

만들어져 있는 Docker Image를 ECR에 올리기 위해선 위에서 만들었던 ECR Repository의 URI로 변경 해줘야한다. ECR Repository URI는 AWS ECR에 들어가보면 확인할 수 있다.

docker tag test:latest 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/test:latest

ECR Repository URI로 만들어진 이미지를 ECR로 푸시한다.

docker push 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/test:latest

ECR에 접속하여 푸시된 Docker Image를 찾는다.

Docker Image를 ECR로 부터 PULL

EC2서버로 접속하여 위에서 로그인 했던것과 마찬가지로 EC2서버에서도 AWS ECR 로그인및 Docker 로그인을 진행한뒤 Docker Image를 PULL 받는다.

docker pull 000000000000.dkr.ecr.ap-northeast-2.amazonaws.com/test:latest

Docker Images가 잘 내려받아 졌는지 확인한다.

docker images

Comments