처음 하는 aws 에 nestjs 배포하기 - 4. 생성된 이미지를 ecr에 올리기
준비물 aws 계정(권한 부여가 가능)
aws 권한과 이를 활용하는 방법이 좀 생소한 파트다
필요한 권한을 설정하고 인증해서 ecr에 도커 이미지를 올리는 과정이다.
aws cli를 설치한다.
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html
권한을 갖은 user 생성
aws 로그인 > 서비스 > IAM
사용자 그룹을 생성 - 필요한 권한을 설정
사용자 생성 후 위의 그룹에 연결
나 같은 경우는 관리자용 사용자로 docker-image를 push하고, main-prod용 사용자로 docker-image를 pull 하지만, 편의상 하나로 해도된다. 여기서 다룰건 admin용 계정이다.
아래 세 권한을 주면 된다
해당 사용자를 선택 후 보안 자격증명탭에서 엑세스키를 만들어서 저장한다.
aws 인증용 키다.
로컬에서 aws configure로 aws 인증을 등록한다
이럼 image-push에 대한 인증 세팅은 끝났다.
aws > 서비스 > ecr(elastic container registry)에서 새로운 레포지토리를 추가한다.(항상 지역 확인)
프라이빗(설정되어있음), 리포지토리 이름만 설정하면 된다
로컬에서 실행시킨 도커로 돌아가자. 배포 환경에 맞게 좀 변경해줘야 한다.
build-image.sh의 platform을 linux/amd64로 복귀시킨다.
docker인증을 위한 실행파일 sign-in.sh 생성
확인: Login Succeeded가 나온다
aws ecr로 image push를 위한 push-image.sh 생성
$ACCOUNT_ID~~$REPO_NAME은 그냥 uri를 복사붙혀넣기 해도 된다.
위의 sign-in.sh와 push-image.sh를 차례대로 실행하면 된다.