☁️ Cloud

[AWS] ECR 이미지 푸시

Hugehoo 2024. 1. 30. 00:52

 

기존 NCloud 플랫폼에서 운영중인 서버를 AWS 로 이관하게 됐다. 단일 compute server 에서 운영중인 서버를 이번 기회에 AWS ECS 를 통해 배포하려고 한다. 마이그레이션 과정을 기록해본다.

 

우선 ECR에 Private Repository 는 생성해둔 상태다. Repository 이름은 운영중인 서비스(tidify)의 이름을 따서 지었다. 해당 Repository를 클릭해보자. 텅빈 저장소를 확인할 수 있다. 이제 우리의 도커 이미지를 이 Repository에 저장하기 위해 푸시 명령 보기 버튼을 클릭해보자.

 

 

1번 단계에서 우선 도커 클라이언트를 인증해야 한다. 필자는 로컬에 AWS CLI 도 설치 되지 않은 상태라 AWS CLI 부터 다운받았다.

 

AWS CLI 설치 및 Configure 입력

 

 

1. brew 를 이용한 aws-cli install

$ brew install awscli
 

 

2.  aws-cli 설치 경로 및 버전 확인

which aws
aws --version

 

 

3. aws cli 가 설치되면 aws configure 를 입력한다. Access Key Id 와 Secret Access Key 가 필요하다. 어떻게 발급받는지 모른다면 여기 링크를 참조

$ aws configure
AWS Access Key ID : AXXXXXXXXXXXXXR
AWS Secret Access Key : 8XXXXXXXXXXXXXXXXXXXXXXG
Default region name [ap-northeast-2]: ap-northeast-2
Default output format [json]: json

 

 

여기까지 완료되면 다시 ECR Repository 푸시를 위한 명령어로 돌아가자.

 

 

AWS ECR push 사전 작업

aws cli 를 설치 후 configure 까지 설정이 완료되면 아래 명령어를 통해 docker client 를 인증하자.

$ aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <개인비밀번호>.dkr.ecr.ap-northeast-2.amazonaws.co
 

 

여기까지 성공하면 아래처럼 로그인 성공 메시지가 뜬다.

이제 ECR 에 밀어놓을 이미지를 찾아보자. 필자는 로컬에 미리 생성해둔 이미지를 ECR에 푸시한다.

 

 

위 이미지의 IMAGE_ID 를 가지고 명령어를 입력한다. 위 푸시 명령 입력 안내문의 3번 커맨드를 사용하자. 각자 빌드하고자 하는 이미지 ID 만 변경해서 사용하면 된다.

# 이미지에 태그를 지정
$ docker tag <IMAGE ID> <토큰>.dkr.ecr.ap-northeast-2.amazonaws.com/tidify-be:latest

# 해당 이미지를 ECR Repository에 푸시
$ docker push <토큰>.dkr.ecr.ap-northeast-2.amazonaws.com/tidify-be:latest

 

 

이미지가 푸시되면 이전의 텅빈 Repository 와 달리 푸시한 이미지 정보가 등록돼 있는 것을 확인할 수 있다.

 

정리

  • 우리는 ECS 에 도커 컨테이너를 띄워 서버를 배포하고자 한다.
  • 도커 컨테이너 빌드에 필요한 이미지를 저장할 장소가 필요하다. 그것이 ECR 이고 이 저장소에 이미지를 푸시하는 방법을 익혔다.
  • 다음 글에서는 푸시한 이미지를 ECS 를 통해 배포하는 법을 알아보자.