ECR이란
AWS에서 제공하는 완전 관리형 Container Registry이다.
Docker Image와 같은 컨테이너 이미지를 저장 및 관리하고, 취약점 분석을 수행하며, 이미지에 대한 액세스 제어를 할 수 있는 서비스다.
다양한 활용방식이 있겠지만, 나는 CI/CD의 과정에서 Build의 결과로 생성된 이미지(Artifact) 저장소로 ECR을 경험했다.
Prefix 수명주기를 사용한 이유
Tag가 web*, was* 와 같은 형태로 저장되는 Repository의 Image를 각각 관리하고싶었다.
1.
가장 보편적인 시간 기반의 수명주기는 이미지 종류를 구분하지 못한다.
2.
시간 기반의 수명주기는 또한 배포가 활발하게 이뤄지지 않을 때 모든 이미지가 삭제될 수 있다.
Prefix 수명주기 설정
스크립팅을 통해 내가 원하는 기능을 구현할까 했는데, ECR이 이미 내가 원하는 기능을 제공하고있었다.
그래서 Prefix 기반의 ECR 수명주기를 테스트&설정하면서 기록을 남겼다.
•
포스팅 작성 시점 기준으로 각각 web32,was25까지 생성되어있다.
이 ECR Repository에 수명주기를 적용해보자.
1.
수명주기를 다음과 같이 설정하면 가장 최근 2개의 was 이미지를 제외한 모든 was* 이미지가 삭제된다.
2.
1~25번까지의 이미지 중 was24,was25을 제외한 이미지가 삭제 대상으로 나온다.
3.
web, was 모두 수명주기 정책을 생성하면 다음과 같이 web, was 모두 각각 정책에 적용되어 삭제예정임을 볼 수 있다. (어떤 규칙에 의해 삭제되는지도 우선 순위로 확인 가능)
4.
설정 후 시간이 조금 지나고 오랫만에 ECR에 들어가봤다.
정책은 2개 → 3개로 변경됐고, 가장 최신 3개의 이미지만 잘 저장하는 것을 확인할 수 있다.
AWS Console 다크모드는 DarkReader를 사용했다. 다크모드 편-안