ECR
•
AWS에서 제공하는 Docker Hub와 비슷한 개념
•
Amazon Elastic Container Registry의 약자로 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스.
•
Docker Hub와 유사
•
추가 장점
◦
S3로 Docker Image를 관리하므로 고가용성을 보장
◦
AWS IAM 인증을 통해 이미지 push/pull에 대한 권한 관리가 가능
AWS ECR의 구성요소
Registry (레지스트리)
•
Amazon ECR 프라이빗 레지스트리는 각 AWS 계정마다 제공되며 레지스트리에 하나 이상의 리포지토리를 생성하고 이 리포지토리에 이미지를 저장함
•
Amazon ECR은 기본적으로 계정별로 레지스트리를 제공하며, 각 레지스트리에는 다양한 이미지 리포지토리를 포함할 수 있다.
•
레지스트리는 컨테이너 이미지를 저장하고 관리하는 최상위 단위다.
•
이를 통해 여러 애플리케이션의 이미지를 계층적으로 관리할 수 있다.
Repository
•
Amazon ECR 리포지토리에는 Docker 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트가 포함됨
Repository policy
•
Repository또는 Repository내 Docker이미지에 대한 Access 제어권 관리
•
리포지토리는 레지스트리 내에서 개별 애플리케이션의 이미지를 저장하는 장소다.
•
일반적으로 애플리케이션 단위로 구분하여 리포지토리를 생성한다.
•
각 리포지토리는 이미지의 버전과 태그별로 관리되며, 동일한 애플리케이션의 서로 다른 버전 이미지를 저장할 수 있다.
Image
•
Repository에 컨테이너 이미지를 푸시하고 가져올 수 있다.
•
개발 시스템에서 로컬로 이러한 이미지를 사용하거나, Amazon ECS 태스크 정의 및 Amazon EKS 포드 사양에서 이를 사용 가능
•
컨테이너 실행에 필요한 애플리케이션, 라이브러리, 환경 설정 등을 포함하는 실행 파일
•
Docker와 같은 컨테이너 도구로 생성된다.
•
이미지에는 특정 태그를 지정하여 버전 관리를 할 수 있다.
•
예를 들어, "latest"나 "v1.0" 같은 태그를 붙여 특정 버전의 이미지를 구분할 수 있다.
사용자 권한 토큰
•
Client는 Amazon ECR Resistry에 AWS 사용자로서 인증을 해야 Imange를 push/pull 가능
주요 기능
•
이미지 스캔(Image Scanning)
◦
ECR은 이미지의 보안 취약점을 검사하는 기능을 제공한다.
◦
이는 이미지가 배포되기 전 보안 점검을 통해 안전성을 확보할 수 있게 해준다.
◦
이미지 스캔은 Amazon Inspector와 통합되어 있으며, 자동 또는 수동으로 취약점을 검사할 수 있다.
•
이미지 태그 및 버전 관리
◦
ECR은 이미지를 태그별로 관리하여 애플리케이션의 다양한 버전을 관리할 수 있다.
▪
예를 들어, "latest" 태그는 최신 이미지를 가리키고, "stable" 태그는 안정화된 버전을 가리키는 등 태그를 사용하여 환경에 맞게 버전을 지정할 수 있다.
◦
이를 통해 동일한 리포지토리에서 여러 버전의 이미지를 효율적으로 관리할 수 있다.
•
권한 및 액세스 관리
◦
ECR은 AWS IAM과 연동되어, 사용자 또는 역할에 따라 레지스트리와 리포지토리에 대한 접근 권한을 설정할 수 있다.
◦
이를 통해 이미지의 읽기, 쓰기 권한을 세분화할 수 있다.
◦
프라이빗 레지스트리 외에도 퍼블릭 리포지토리를 생성하여, 외부에서 이미지 접근을 허용할 수도 있다.
•
라이프사이클 정책(Lifecycle Policy)
◦
라이프사이클 정책을 통해 오래된 이미지나 필요 없는 이미지를 자동으로 삭제할 수 있어 저장 공간을 효율적으로 관리할 수 있다.
◦
예를 들어, 특정 조건에 맞는 오래된 이미지를 자동으로 제거하여 비용을 절감할 수 있다.
•
다른 AWS 서비스와의 통합
◦
Amazon ECR은 Amazon ECS, EKS와 같은 컨테이너 오케스트레이션 서비스와 통합되어 있어, 이미지 배포와 관리가 간편하다.
◦
AWS CLI 및 SDK와 통합되어 DevOps 파이프라인에서 자동화된 이미지 배포를 지원한다.