AWS에서 제공하는 Docker Hub와 비슷한 개념으로, 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스이다.
Docker Hub와 동일하다고 볼 수 있지만 장점으로는 S3로 Docker Image를 고나리하므로 고가용성을 보장하고, AWS IAM 인증을 통해 이미지 push/pull 에 대한 권한 관리가 가능하다는 장점이 있다.
ECR의 구성요소
- Registry
Amazon ECR 프라이빗 레지스트리는 각 AWS 계정마다 제공되며, 레지스트리에 하나 이상의 리포지토리를 생성하고 이 리포지토리에 이미지를 저장함 - Repository
ECR 리포지토리에는 Docker 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트가 포함된다. 이 저장소는 이미지를 보관하고, 관리자가 액세스 권한을 제어하며, 이미지에 대한 버전을 추적한다. - Repository Policy
Repository 또는 Repository 내 Docker 이미지에 대한 Access 제어권 관리 - Image
Repository에 컨테이너 이미지를 푸시하고 가져올 수 있다. 개발 시스템에서 로컬로 이러한 이미지를 사용하거나, Amazon ECS 태스크 정의 및 Amazon EKS 파드 사양에서 이를 사용 가능
ECR에서 제공하는 기능
- 검색 및 정책
ECR은 이미지에 대한 레이블 및 태그를 사용하여 검색이 용이하다. 리포지터리에 있는 이미지의 수명 주기를 관리, 사용되지 않는 이미지를 정리하는 규칙을 정의한다. 규칙을 리포지토리에 적용하기 전에 테스트할 수 있다. - 이미지 스캔
컨테이너 이미지의 소프트웨어 취약성을 식별하는데 도움이 된다. 각 리포지토리는 push 시 스캔 하도록 구성할 수 있다. 이렇게 하면 리포지토리로 푸시된 각각의 새 이미지가 스캔된다. 그런 다음 이미지 스캔 결과를 검색할 수 있다. - 교차 리전 및 교차 계정 복제
이미지를 필요한 곳에 쉽게 배치 가능, 이는 레지스트리 설정으로 구성되며 리전별 단위로 구성된다. - 풀스루 캐시 규칙
프라이빗 ECR 레지스트리의 원격 퍼블릭 레지스트리에서 리포지토리를 캐시하는 방법을 제공. Amazon ECR은 풀스루 캐시 규칙을 사용하여 정기적으로 원격 레지스트리에 연락하여 Amazon ECR 프라이빗 레지스트리의 캐시된 이미지가 최신 상태인지 확인한다. - 권한 및 접근 제어
ECR은 IAM(Identity and Access management)를 사용하여 이미지 저장소에 대한 액세스를 제어한다. IAM을 통해 사용자 및 서비스에게 필요한 권한을 부여하고 이미지 저장소에 대한 읽기 및 쓰기 권한을 구체적으로 지정할 수 있다. - 사용자 권한 토큰
Client는 Amazon ECR Resisty에 AWS 사용자로서 인증을 해야 Image를 push/pull 가능 - Docker CLI 및 AWS CLI 통합
ECR은 Docker CLI을 사용하여 이미지를 push/pull 할 수 있으며, AWS CLI를 사용하여 ECR 관련 작업을 수행할 수 있다. - 보안 및 프라이빗 이미지 저장
ECR은 컨테이너 이미지를 안전하게 저장하기 위한 다양한 보안 기능을 제공한다. 이미지는 기본적으로 비공개로 설정되어 있으며, IAM을 사용하여 액세스를 허용하는 방식으로만 공유할 수 있다.