..
ECR Lifecycle Policy 설정 가이드
개요
ECR Lifecycle Policy 설정이 필요한 이유와 설정시 참고할만한 정책 예시를 설명합니다.
배경지식
ECR Lifecycle Policy
ECR 기능 중 하나인 수명 주기 정책Lifecycle Policy을 사용하여 오래되거나 사용하지 않는 이미지를 자동으로 제거함으로써 컨테이너 이미지 리포지토리를 깔끔하게 정리할 수 있습니다.
수명 주기 정책의 사용 예시는 다음과 같습니다.
- 90일이 지난 태그가 없는 이미지 삭제
- 90일이 지난 개발 태그가 붙은 이미지 삭제
- 180일이 지난 스테이징 태그가 붙은 이미지 삭제
- 1년이 지난 프로덕션 태그가 붙은 이미지 삭제
latest
태그가 붙은 이미지를 1개만 유지- 태그가 달린 이미지를 최근 120개만 유지
ECR 수명 주기 정책 예시
{
"rules": [
{
"rulePriority": 10,
"description": "Keep last 1 images tagged latest",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["latest"],
"countType": "imageCountMoreThan",
"countNumber": 1
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 20,
"description": "Keep last 5 images tagged main",
"selection": {
"tagStatus": "tagged",
"tagPrefixList": ["main"],
"countType": "imageCountMoreThan",
"countNumber": 5
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 980,
"description": "Keep only one untagged image, expire all others",
"selection": {
"tagStatus": "untagged",
"countType": "imageCountMoreThan",
"countNumber": 1
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 990,
"description": "Keep only tagged images for 90 days",
"selection": {
"tagStatus": "any",
"countType": "sinceImagePushed",
"countUnit": "days",
"countNumber": 90
},
"action": {
"type": "expire"
}
},
{
"rulePriority": 1000,
"description": "Keep only 120 tagged images, expire all others",
"selection": {
"tagStatus": "tagged",
"countType": "imageCountMoreThan",
"countNumber": 120
},
"action": {
"type": "expire"
}
}
]
}
각 Lifecycle Policy를 설명드리면 다음과 같습니다.
- 우선순위
10
인 규칙:latest
태그가 달린 이미지 중 가장 최근에 푸시된 1개의 이미지만 유지하고, 나머지는 자동 삭제됩니다. - 우선순위
20
인 규칙:main
태그가 달린 이미지 중 최근 5개의 이미지만 유지하고, 나머지는 자동 삭제됩니다. - 우선순위
980
인 규칙: 태그가 없는 이미지 중 가장 최근에 푸시된 1개의 이미지만 유지하고, 나머지는 자동 삭제됩니다. - 우선순위
990
인 규칙: 모든 태그가 달린 이미지, 안달린 이미지들 중에 최근 90일 이내에 푸시된 이미지들만 유지하고, 이후의 이미지들은 자동 삭제됩니다. - 우선순위
1000
인 규칙: 태그가 달린 이미지를 최근 120개만 유지하고, 120개를 초과하는 이미지들은 자동으로 삭제됩니다.
규칙 우선순위
규칙 우선순위 값인rulePriority
가 낮을수록 중요도가 높은 것으로 해석되므로 해당 룰이 가장 먼저 적용됩니다.
결론
ECR Lifecycle Policy를 설정하면 이미지 관리 및 저장소 용량 관리를 효과적으로 수행할 수 있습니다.
자동화된 이미지 라이프사이클 관리를 통해 개발 및 운영팀에 시간을 절약하고, 컨테이너 이미지의 안정성과 일관성을 유지하는 데 도움을 줍니다.
참고자료
Amazon ECR 수명 주기 정책을 통한 컨테이너 이미지 자동 삭제 기능 출시
수명 주기 정책의 예제
AWS 공식문서