수명 주기 정책 - Amazon ECR

수명 주기 정책

Amazon ECR 수명 주기 정책은 프라이빗 리포지토리의 이미지에 대한 수명 주기 관리를 보다 효과적으로 제어할 수 있도록 합니다. 수명 주기 정책은 1개 이상의 규칙을 포함하며 각 규칙은 Amazon ECR에 대한 작업을 정의합니다. 그러면 사용되지 않는 이미지(예: 연한 또는 수를 바탕으로 만료되는 이미지)를 자동으로 정리하는 방법이 제공됩니다. 24시간 이내에 만료되는 이미지에 영향을 주는 수명 주기 정책을 만든 후에는 이런 점을 예상해야 합니다. Amazon ECR이 수명 주기 정책에 따라 작업을 수행할 때 이 작업은 AWS CloudTrail의 이벤트로 캡처됩니다. 자세한 정보는 AWS CloudTrail로 Amazon ECR 작업 로깅을 참조하십시오.

수명 주기 정책의 작동 방식

수명 주기 정책은 리포지토리에서 만료되어야 하는 이미지를 결정하는 하나 이상의 규칙으로 구성됩니다. 수명 주기 정책의 사용을 고려할 때는 수명 주기 정책 미리 보기를 사용하여 수명 주기 정책을 리포지토리에 적용하기 전에 정책이 만료시키는 이미지를 확인하는 것이 중요합니다. 수명 주기 정책이 리포지토리에 적용되면 영향을 받는 이미지가 24시간 이내에 만료될 것으로 예상해야 합니다. Amazon ECR이 수명 주기 정책에 따라 작업을 수행할 때 이 작업은 AWS CloudTrail의 이벤트로 캡처됩니다. 자세한 정보는 AWS CloudTrail로 Amazon ECR 작업 로깅을 참조하십시오.

다음 다이어그램은 수명 주기 정책 워크플로를 보여줍니다.


                수명 주기 정책을 평가하고 적용하는 프로세스를 보여주는 다이어그램입니다.
  1. 하나 이상의 테스트 규칙을 생성합니다.

  2. 테스트 규칙을 저장하고 미리 보기를 실행합니다.

  3. 수명 주기 정책 평가자는 모든 규칙을 살펴보고 각 규칙이 영향을 주는 이미지를 표시합니다.

  4. 그런 다음 수명 주기 정책 평가기는 규칙 우선 순위에 따라 규칙을 적용하고 리포지토리에서 만료되도록 설정된 이미지를 표시합니다.

  5. 테스트 결과를 검토하여 만료될 것으로 표시된 이미지가 의도한 이미지인지 확인합니다.

  6. 리포지토리에 대한 수명 주기 정책으로 테스트 규칙을 적용합니다.

  7. 수명 주기 정책이 생성되면 영향을 받는 이미지는 24시간 이내에 만료됩니다.

수명 주기 정책 평가 규칙

수명 주기 정책 평가자는 수명 주기 정책의 평문 JSON의 구문을 분석하여 모든 규칙을 평가한 다음 규칙 우선 순위에 따라 이러한 규칙을 리포지토리 내의 이미지에 적용할 책임이 있습니다. 다음은 수명 주기 정책 평가자의 논리에 대해 자세히 설명합니다. 예제는 수명 주기 정책의 예제 섹션을 참조하세요.

  • 규칙 우선 순위에 관계없이 모든 규칙이 동시에 평가됩니다. 모든 규칙이 평가되면 규칙 우선 순위에 따라 규칙이 적용됩니다.

  • 정확히 한 개 또는 제로 규칙에 의해 이미지가 만료됩니다.

  • 규칙의 태그 지정 요건에 일치하는 이미지는 이보다 우선순위가 낮은 규칙에 의해 만료되지 않습니다.

  • 규칙은 우선순위가 더 높은 규칙으로 표시된 이미지에 표시할 수 없으나, 만료되지 않은 것처럼 식별할 수는 있습니다.

  • 규칙 집합에는 고유한 태그 접두사 집합이 포함되어야 합니다.

  • 오직 한 개의 규칙만 태그되지 않은 이미지를 선택할 수 있습니다.

  • 만료는 항상 pushed_at_time이 명령하며, 항상 새 이미지보다 오래된 이미지가 먼저 만료합니다.

  • tagPrefixList 사용 시 tagPrefixList 값의 모든 태그가 이미지의 태그와 일치하는 경우, 이미지가 성공적으로 일치합니다.

  • countType = imageCountMoreThan에서는 pushed_at_time을 바탕으로 새 것부터 오래된 것으로 이미지를 분류한 다음 지정 카운트보다 큰 모든 이미지가 만료됩니다.

  • countType = sinceImagePushed에서는 pushed_at_timecountNumber를 바탕으로 지정 날짜 수보다 오래된 모든 이미지가 만료됩니다.

수명 주기 정책 템플릿

수명 주기 정책의 컨텐츠는 리포지토리와 연결하기 전에 평가합니다. 수명 주기 정책에 대한 JSON 구문 템플릿은 다음과 같습니다. 수명 주기 정책의 예제는 수명 주기 정책의 예제 단원을 참조하세요.

{ "rules": [ { "rulePriority": integer, "description": "string", "selection": { "tagStatus": "tagged"|"untagged"|"any", "tagPrefixList": list<string>, "countType": "imageCountMoreThan"|"sinceImagePushed", "countUnit": "string", "countNumber": integer }, "action": { "type": "expire" } } ] }
참고

tagPrefixList 파라미터는 tagStatustagged인 경우에만 사용합니다. countUnit 파라미터는 countTypesinceImagePushed인 경우에만 사용합니다.

수명 주기 정책 파라미터

수명 주기 정책은 다음 부분으로 나뉩니다.

규칙 우선 순위

rulePriority

유형: 정수

필수 항목 여부: 예

규칙을 적용하는 순서를 가장 낮은 값에서 가장 높은 값까지 설정합니다. 우선 순위가 1인 수명 주기 정책 규칙이 먼저 적용되고 우선 순위가 2인 규칙이 다음 순서 등의 방식으로 적용됩니다. 수명 주기 정책에 규칙을 추가할 때 각 규칙에 고유한 rulePriority 값을 부여해야 합니다. 가중치는 정책과 규칙을 따르기 위해 순차적일 필요는 없습니다. tagStatus 값이 any인 규칙은 rulePriority에서 가장 높은 값을 가지며 마지막으로 평가됩니다.

설명

description

유형: 문자열

필수 항목 여부: 아니요

(선택 사항) 수명 주기 정책에서 규칙의 목적을 설명합니다.

태그 상태

tagStatus

유형: 문자열

필수 항목 여부: 예

추가하는 수명 주기 정책의 규칙이 이미지에 대한 태그를 지정할지를 정의합니다. tagged, untagged, any 옵션을 사용할 수 있습니다. any를 지정하면 모든 이미지는 평가 규칙을 갖습니다. tagged를 지정하면 tagPrefixList 값도 지정해야 합니다. untagged를 지정하면 tagPrefixList를 생략해야 합니다.

태그 접두사 목록

tagPrefixList

유형: 목록[문자열]

필수: tagStatus가 tagged로 설정된 경우에만 그렇습니다.

"tagStatus": "tagged"를 지정한 경우에만 사용됩니다. 수명 주기 방식으로 시행하려면 쉼표로 구분되는 이미지 태그 접두사 목록을 지정해야 합니다. 예를 들어 prod, prod1, prod2 등으로 이미지가 태그되면 태그 접두사 prod를 써서 모든 이미지를 지정해야 합니다. 여러 개의 태그를 지정하면, 지정된 태그가 있는 모든 이미지들만 선택됩니다.

카운트 유형

countType

유형: 문자열

필수 항목 여부: 예

이미지에 적용할 카운트 유형을 지정합니다.

countTypeimageCountMoreThan으로 설정되면 countNumber도 지정하여 리포지토리에 존재하는 이미지 수에 제한을 정하는 규칙을 만듭니다. countTypesinceImagePushed로 설정되면 countUnitcountNumber도 지정하여 리포지토리에 존재하는 이미지에 시간 제한을 지정합니다.

카운트 단위

countUnit

유형: 문자열

필수: countTypesinceImagePushed로 설정된 경우에만 그렇습니다

시간 단위를 나타내는 days의 카운트 단위를 지정하고 날짜 수인 countNumber를 지정합니다.

이는 countTypesinceImagePushed일 때만 지정해야 하며 countType이 다른 값일 때 카운트 단위를 지정하면 오류가 발생합니다.

카운트 수

countNumber

유형: 정수

필수 항목 여부: 예

카운트 번호를 지정합니다. 허용되는 값은 양의 정수입니다(0은 허용되는 값이 아님).

사용한 countTypeimageCountMoreThan이라면, 값은 리포지토리에 보유하고 싶은 이미지의 최대수입니다. 사용한 countTypesinceImagePushed라면, 값은 이미지에 대한 최대 수명 한도입니다.

Action

type

유형: 문자열

필수 항목 여부: 예

동작 유형을 지정합니다. 지원되는 값은 expire입니다.