Amazon ECR 프라이빗 레지스트리와 업스트림 레지스트리 동기화 - Amazon ECR

Amazon ECR 프라이빗 레지스트리와 업스트림 레지스트리 동기화

풀스루 캐시 규칙을 사용하면 업스트림 레지스트리의 콘텐츠를 Amazon ECR 프라이빗 레지스트리와 동기화할 수 있습니다.

Amazon ECR은 현재 다음 업스트림 레지스트리에 대한 풀스루 캐시 규칙 생성을 지원합니다.

  • Docker Hub, Microsoft Azure 컨테이너 레지스트리, GitHub 컨테이너 레지스트리 및 GitLab 컨테이너 레지스트리(인증 필요)

  • Amazon ECR 퍼블릭, Kubernetes 컨테이너 이미지 레지스트리, Quay(인증 필요 없음)

GitLab 컨테이너 레지스트리의 경우 Amazon ECR은 GitLab 서비스형 소프트웨어(SaaS) 제품인 GitLab.com에서 풀스루 캐시만 지원합니다.

인증이 필요한 업스트림 레지스트리에 대해 보안 인증 정보를 AWS Secrets Manager 보안 암호로 저장해야 합니다. Amazon ECR 콘솔을 사용하면 인증된 업스트림 레지스트리 각각에 대해 Secrets Manager 보안 암호를 쉽게 생성할 수 있습니다. Secrets Manager 콘솔을 사용하여 Secrets Manager 보안 암호를 생성하는 방법에 대한 자세한 내용은 업스트림 리포지토리 보안 인증 정보를 AWS Secrets Manager 보안 암호로 저장 섹션을 참조하세요.

업스트림 레지스트리에 대한 풀스루 캐시 규칙을 생성한 후에는 Amazon ECR 프라이빗 레지스트리 URI를 사용하여 해당 업스트림 레지스트리에서 이미지를 가져옵니다. 그러면 Amazon ECR이 리포지토리를 생성하고 해당 이미지를 프라이빗 레지스트리에 캐시합니다. 이후에 지정된 태그가 있는 캐시된 이미지의 가져오기를 요청하면 Amazon ECR은 업스트림 레지스트리를 확인하여 해당 특정 태그가 있는 이미지의 새 버전이 있는지 확인하며, 최소 24시간마다 한 번씩 프라이빗 레지스트리에서 이미지 업데이트를 시도합니다.

리포지토리 생성 템플릿

Amazon ECR은 리포지토리 생성 템플릿에 대한 지원을 추가했습니다. 이 템플릿을 사용하면 풀스루 캐시 규칙을 사용하여 사용자 대신 Amazon ECR에서 생성하는 새 리포지토리의 초기 구성을 지정할 수 있습니다. 각 템플릿에는 새 리포지토리를 특정 템플릿에 매칭하는 데 사용되는 리포지토리 네임스페이스 접두사가 포함되어 있습니다. 템플릿은 리소스 기반 액세스 정책, 태그 불변성, 암호화, 수명 주기 정책을 비롯한 모든 리포지토리 설정의 구성을 지정할 수 있습니다. 리포지토리 생성 템플릿의 설정은 리포지토리를 생성하는 동안에만 적용되며 기존 리포지토리나 다른 방법을 사용하여 생성한 리포지토리에는 영향을 주지 않습니다. 자세한 내용은 풀스루 캐시 또는 복제 작업 중에 생성되는 리포지토리를 제어하는 템플릿 단원을 참조하십시오.

풀스루 캐시 규칙 사용 시 고려할 사항

Amazon ECR 풀스루 캐시 규칙을 사용할 때는 다음 사항을 고려해야 합니다.

  • 다음 리전에서는 풀스루 캐시 규칙 생성이 지원되지 않습니다.

    • 중국(베이징)(cn-north-1)

    • 중국(닝샤)(cn-northwest-1)

    • AWS GovCloud(미국 동부)(us-gov-east-1)

    • AWS GovCloud(미국 서부)(us-gov-west-1)

  • AWS Lambda는 풀스루 캐시 규칙을 사용하여 Amazon ECR에서 컨테이너 이미지를 가져오는 것은 지원하지 않습니다.

  • 풀스루 캐시를 사용하여 이미지를 가져올 경우 이미지를 처음 가져올 때 Amazon ECR FIPS 서비스 엔드포인트가 지원되지 않습니다. Amazon ECR FIPS 서비스 엔드포인트를 사용하면 후속 풀스루에서 작동합니다.

  • Amazon ECR 프라이빗 레지스트리 URI를 통해 캐시된 이미지를 가져오면 AWS IP 주소에 의해 이미지 풀이 시작됩니다. 이렇게 하면 이미지 풀이 업스트림 레지스트리에서 구현한 풀 레이트 할당량에 포함되지 않습니다.

  • Amazon ECR 프라이빗 레지스트리 URI를 통해 캐시된 이미지를 가져오면 Amazon ECR은 업스트림 리포지토리를 24시간마다 한 번 이상 점검하여 캐시된 이미지가 최신 버전인지 확인합니다. 업스트림 레지스트리에 새 이미지가 있는 경우 Amazon ECR은 캐시된 이미지를 업데이트하려고 시도합니다. 이 타이머는 캐시된 이미지의 마지막 풀을 기반으로 합니다.

  • 어떤 이유로든 Amazon ECR이 업스트림 레지스트리에서 이미지를 업데이트할 수 없고 이미지를 가져오더라도 마지막으로 캐시된 이미지는 여전히 가져옵니다.

  • 업스트림 레지스트리 보안 인증 정보가 포함된 Secrets Manager 보안 암호를 만들 때는 보안 암호 이름에 ecr-pullthroughcache/ 접두사를 사용해야 합니다. 또한 보안 암호는 풀스루 캐시 규칙이 생성된 동일한 계정 및 리전에 있어야 합니다.

  • 풀스루 캐시 규칙을 사용하여 다중 아키텍처 이미지를 가져오면, Amazon ECR 리포지토리로 매니페스트 목록과 매니페스트 목록에서 참조되는 각 이미지를 가져옵니다. 특정 아키텍처만 가져오려는 경우 매니페스트 목록과 연결된 태그 대신 아키텍처와 연결된 이미지 다이제스트 또는 태그를 사용하여 이미지를 가져올 수 있습니다.

  • Amazon ECR은 서비스 연결 IAM 역할을 사용합니다. 이 역할은 Amazon ECR이 리포지토리를 생성하고 Secrets Manager 보안 암호 값을 검색하여 인증하며 사용자를 대신하여 캐시된 이미지를 푸시하는 데 필요한 권한을 제공합니다. 서비스 연결 IAM 역할은 풀스루 캐시 규칙이 만들어질 때 자동으로 생성됩니다. 자세한 내용은 풀스루 캐시에 대한 Amazon ECR 서비스 연결 역할 단원을 참조하십시오.

  • 기본적으로 캐시된 이미지를 가져오는 IAM 보안 주체에는 IAM 정책을 통해 부여된 권한이 있습니다. Amazon ECR 프라이빗 레지스트리 권한 정책을 사용하여 IAM 엔터티의 권한 범위를 추가로 지정할 수 있습니다. 자세한 정보는 레지스트리 권한 사용을 참조하세요.

  • 풀스루 캐시 워크플로를 사용하여 생성된 Amazon ECR 리포지토리는 다른 모든 Amazon ECR 리포지토리처럼 취급됩니다. 복제 및 이미지 스캔과 같은 모든 리포지토리 기능이 지원됩니다.

  • Amazon ECR이 풀스루 캐시 작업을 사용하여 사용자 대신 새 리포지토리를 생성하는 경우 일치하는 리포지토리 생성 템플릿이 없는 한 다음 기본 설정이 리포지토리에 적용됩니다. 리포지토리 생성 템플릿을 사용하여 Amazon ECR에서 생성한 리포지토리에 적용되는 설정을 사용자 대신 정의할 수 있습니다. 자세한 내용은 풀스루 캐시 또는 복제 작업 중에 생성되는 리포지토리를 제어하는 템플릿 단원을 참조하십시오.

    • 태그 불변성 - 이 기능을 비활성화하면 태그는 변경 가능하며 덮어쓸 수 있습니다.

    • 암호화 - 기본 AES256 암호화가 사용됩니다.

    • 리포지토리 권한 - 생략됨, 리포지토리 권한 정책이 적용되지 않습니다.

    • 수명 주기 정책 - 생략됨, 수명 주기 정책이 적용되지 않습니다.

    • 리소스 태그 - 생략됨, 리소스 태그가 적용되지 않습니다.

  • 풀스루 캐시 규칙을 사용하여 리포지토리의 이미지 태그 불변성을 활성화하면 Amazon ECR에서 동일한 태그를 사용하는 이미지를 업데이트할 수 없게 됩니다.

  • 풀스루 캐시 규칙을 사용하여 처음으로 이미지를 가져오는 경우 인터넷 경로가 필요할 수 있습니다. 인터넷 경로가 필요한 특정 상황이 있으므로 실패를 방지하기 위해 경로를 설정하는 것이 좋습니다. 따라서 AWS PrivateLink를 사용하여 인터페이스 VPC 엔드포인트를 사용하도록 Amazon ECR을 구성한 경우 첫 번째 가져오기에 인터넷 경로가 있는지 확인해야 합니다. 이렇게 하는 한 가지 방법은 인터넷 게이트웨이를 사용하여 동일한 VPC에 퍼블릭 서브넷을 생성한 다음 인터넷에 대한 모든 아웃바운드 트래픽을 프라이빗 서브넷에서 퍼블릭 서브넷으로 라우팅하는 것입니다. 풀스루 캐시 규칙을 사용하는 후속 이미지 가져오기에는 이 설정이 필요하지 않습니다. 자세한 내용을 알아보려면 Amazon Virtual Private Cloud 사용 설명서라우팅 옵션 예을 참조하세요.