수명 주기 정책 - 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 작업 로깅 섹션을 참조하세요.

참고

Amazon ECR 복제를 사용하여 여러 리전 또는 계정에 걸쳐 리포지토리를 복사하는 경우, 수명 주기 정책은 해당 리포지토리가 생성된 리전의 리포지토리에만 조치를 취할 수 있다는 점에 유의합니다. 따라서 복제가 활성화된 경우 리포지토리를 복제하려는 각 리전 및 계정에 수명 주기 정책을 생성하고자 할 수 있습니다.

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


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

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

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

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

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

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

  7. 수명 주기 정책을 생성하면, 이미지가 만료 기준에 부합한 뒤 24시간 이내에 만료될 것으로 예상해야 합니다.

수명 주기 정책 평가 규칙

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

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

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

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

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

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

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

  • 매니페스트 목록에서 이미지를 참조하는 경우 이미지가 만료되려면 먼저 매니페스트 목록을 삭제해야 합니다.

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

  • 수명 주기 정책 규칙은 tagPatternList 또는 tagPrefixList 중 하나를 지정할 수 있지만 둘 다 지정할 수는 없습니다. 하지만 수명 주기 정책에는 여러 규칙이 포함될 수 있으며 다양한 규칙에서 패턴과 접두사 목록을 모두 사용합니다.

  • tagStatus이(가) tagged인 경우 tagPatternList 또는 tagPrefixList 매개변수만 사용할 수 있습니다.

  • tagPatternList을(를) 사용할 때 이미지가 와일드카드 필터와 일치하면 이미지가 성공적으로 일치하는 것입니다. 예를 들어, prod* 필터를 적용하면 이름이 prod, prod1 또는 production-team1와(과) 같은 prod(으)로 시작하는 리포지토리와 일치하게 됩니다. 마찬가지로 *prod* 필터를 적용하면 이름에 repo-production 또는 prod-team와(과) 같은 prod이(가) 포함된 리포지토리와 일치하게 됩니다.

    중요

    문자열당 와일드카드(*) 는 최대 4개로 제한됩니다. 예를 들어, ["*test*1*2*3", "test*1*2*3*"]은(는) 유효하지만 ["test*1*2*3*4*5*6"]은(는) 유효하지 않습니다.

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

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

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

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

수명 주기 정책 템플릿

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

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

수명 주기 정책 파라미터

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

규칙 우선 순위

rulePriority

유형: 정수

필수 항목 여부: 예

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

설명

description

타입: 문자열

필수 항목 여부: 아니요

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

태그 상태

tagStatus

타입: 문자열

필수 항목 여부: 예

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

태그 패턴 목록

tagPatternList

유형: 목록[문자열]

필수 항목 여부: tagStatus이(가) 태그로 지정되어 있고 tagPrefixList은(는) 지정되지 않은 경우 예

태그가 지정된 이미지에 대한 수명 주기 정책을 생성할 때는 tagPatternList을(를) 사용하여 만료될 태그를 지정하는 것이 좋습니다. 수명 주기 방식으로 시행하려면 와일드카드(*)를 포함할 수 있는 쉼표로 구분되는 이미지 태그 패턴 목록을 지정해야 합니다. 예를 들어 prod, prod1, prod2 등으로 이미지가 태그되면 태그 패턴 목록 prod*를 써서 모든 이미지를 지정해야 합니다. 여러 개의 태그를 지정하면, 지정된 태그가 있는 모든 이미지들만 선택됩니다.

중요

문자열당 와일드카드(*) 는 최대 4개로 제한됩니다. 예를 들어, ["*test*1*2*3", "test*1*2*3*"]은(는) 유효하지만 ["test*1*2*3*4*5*6"]은(는) 유효하지 않습니다.

태그 접두사 목록

tagPrefixList

유형: 목록[문자열]

필수 항목 여부: tagStatus이(가) 태그로 지정되어 있고 tagPatternList은(는) 지정되지 않은 경우 예

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

카운트 유형

countType

타입: 문자열

필수 항목 여부: 예

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

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

카운트 단위

countUnit

타입: 문자열

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

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

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

카운트 수

countNumber

유형: 정수

필수 항목 여부: 예

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

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

작업

type

타입: 문자열

필수 항목 여부: 예

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