카테고리 없음

ECR의 Image Tag Mutability에서 Mutable이란?

idea9329 2024. 12. 16. 17:28
반응형

 

AWS Elastic Container Registry(ECR)의 Image Tag Mutability 설정은 컨테이너 이미지의 태그(tag) 수정 가능 여부로 설정하는 옵션입니다. 여기서 Mutable은 태그를 수정할 수 있는 상태를 의미합니다.


1. Image Tag Mutability의 두 가지 옵션

a. Mutable (수정 가능)

  • 동일한 태그 이름으로 이미지를 덮어쓸 수 있음.
  • 예를 들어, my-app:latest라는 태그가 이미 존재해도, 새로운 이미지를 푸시하면 기존 이미지를 덮어씀.
  • 기본 설정(Default) 상태.

b. Immutable (수정 불가능)

  • 한 번 푸시된 태그는 수정할 수 없음.
  • 동일한 태그 이름으로 이미지를 푸시하려고 하면 오류 발생.

2. Mutable의 장점과 단점

장점

  1. 유연성:
    • 같은 태그 이름으로 이미지를 업데이트할 수 있어 빠른 배포 가능.
    • latest 태그와 같은 최신 버전의 이미지 관리에 유용.
  2. 운영 편의성:
    • 기존 태그를 덮어씌워 관리가 간단해짐.

단점

  1. 예상치 못한 덮어쓰기:
    • 같은 태그 이름을 사용하면 이전 버전의 이미지를 덮어씌워 혼란이 발생할 수 있음.
    • 이미지의 버전 추적이 어려워짐.
  2. 보안 문제:
    • 이미지 태그가 덮어씌워지면 원본 이미지와 다른 내용이 포함될 위험.
    • 특정 버전에 의존하는 애플리케이션에서 문제가 발생할 수 있음.

3. Immutable의 장점과 단점

장점

  1. 안정성:
    • 한 번 태그가 지정된 이미지는 변경되지 않아, 동일 태그가 항상 동일한 내용을 보장.
  2. 버전 관리 용이:
    • 이미지가 덮어씌워지는 일이 없어 각 태그가 고유성을 유지.

단점

  1. 운영 복잡성:
    • 새로운 이미지를 푸시하려면 항상 새로운 태그 이름을 지정해야 함.
    • latest 태그처럼 동일한 이름으로 최신 이미지를 유지하는 방식이 불편.
  2. 태그 관리 필요:
    • 태그가 늘어나 관리가 복잡해질 수 있음.

4. Mutable/Immutable 설정 변경

ECR 리포지토리를 생성하거나 설정을 수정할 때 Mutable 또는 Immutable로 변경할 수 있습니다.

AWS CLI로 설정

  • Mutable로 설정:
  • aws ecr create-repository \ --repository-name my-repo \ --image-tag-mutability MUTABLE
  • Immutable로 설정:
  • aws ecr create-repository \ --repository-name my-repo \ --image-tag-mutability IMMUTABLE

기존 리포지토리 수정

aws ecr put-image-tag-mutability \
    --repository-name my-repo \
    --image-tag-mutability IMMUTABLE

5. 언제 Mutable 또는 Immutable을 선택해야 할까?

목적추천 설정

최신 버전 유지 (latest 사용) Mutable
애플리케이션 배포 안정성 중요 Immutable
CI/CD 파이프라인에서 자동 푸시 Mutable
보안 및 버전 관리가 우선 Immutable

결론

  • Mutable은 태그를 덮어쓰는 유연성을 제공하지만, 안정성과 버전 관리 측면에서 문제가 발생할 수 있습니다.
  • Immutable은 태그의 고유성을 보장하여 안정성과 보안을 강화하지만, 운영 복잡성이 증가할 수 있습니다.

사용 환경과 요구 사항에 따라 적절한 설정을 선택해야 합니다. Immutable을 사용하는 것이 더 안전한 경우가 많으며, 특히 프로덕션 환경에서는 Immutable 설정을 권장합니다.

반응형