Elastic Container Registry는 완전관리형 컨테이너 레지스트리이다.

간단히 표현하면 컨테이너에 올릴 도커 이미지의 저장소다.

완전관리형 컨테이너 레지스트리 – Amazon Elastic Container Registry - Amazon Web Services


ECR 생성하기

앞서 작업한 NestJS 어플리케이션을 Github Actions를 통해 Docker Image로 만들어 ECR에 올릴 것이다.

ECR 페이지로 가서 [리포지토리 생성] 을 눌러주자.

Untitled

[표시 여부 설정][프라이빗] 으로 한다.

저장소 이름은 develop-nestjs-guide-api 로 했다.

VPC 에서 생성한 dev-vpc 를 사용할 것이기 때문이다.

[암호화 설정] 은 하는 것이 좋을 것 같은데… 잘 몰라서 일단 패스했다.

(프라이빗이니 당장은 털릴 걱정은 덜어도 되지 않을까?)

Untitled


Lifecycle Policy 설정

배포를 열심히 하다보면 ECR에 이미지가 잔뜩 쌓이게 된다.

배포 이미지가 작지 않기 때문에 순식간에 용량이 차고 그게 다 비용으로 이어진다.

(비싼 건 아니지만… 그래도 아깝지 않은가!)

이미지의 수명 주기 정책을 설정해서 조건에 따라 이미지를 자동으로 지워줄 수 있다.

[규칙 생성] 을 누르자.

Untitled

[규칙 우선 순위] 는 여러 개의 규칙이 있을 때 무엇을 먼저 고려할지 정하는 것이다.

ECR 수명 주기 규칙을 복잡하게 구성할 일은 거의 없으니 적당히 5 정도로 해두자.

수명 주기 규칙은 아래의 두 가지 경우로 설정이 가능하다.

나는 이미지가 10개 이상이 되면 지우도록 설정했다.

이렇게 설정하면 수명 주기 규칙이 알아서 오래된 녀석부터 지워준다.

규칙이 어떻게 적용될지 궁금하다면 Lifecycle Policy 페이지에서 [테스트 규칙 편집] 을 눌러보자.

어떤 이미지가 규칙에 영향을 받을지 테스트 할 수 있는 기능이 있다.

Untitled