Infra/Cloud

ECR

baek-dev 2025. 4. 11. 18:32

ECR (Elastic Container Registry)란 무엇인가

ECR은 AWS에서 제공하는 완전관리형 도커 컨테이너 이미지 저장소임.
Docker Hub처럼 컨테이너 이미지를 저장, 관리, 배포하는 역할을 하지만, AWS 인프라와 통합되어 AWS 서비스들과 쉽게 연동할 수 있음.

애플리케이션을 컨테이너화한 후 ECR에 이미지를 저장하고, 이를 ECS, EKS, EC2 등 AWS 서비스에서 사용할 수 있음.


1. ECR의 주요 특징

  • 완전 관리형 서비스
    • 인프라 관리가 필요 없으며 AWS에서 자동으로 확장 및 관리함.
  • 고가용성 및 내구성
    • AWS 인프라를 기반으로 고가용성 및 높은 데이터 내구성을 보장함.
  • IAM 기반 권한 제어
    • AWS IAM(Identity and Access Management)을 통해 세밀한 권한 제어가 가능함.
  • 자동 이미지 스캔
    • 저장된 이미지에 대해 취약점 스캔을 자동으로 수행할 수 있음.
  • 라이프사이클 정책 지원
    • 사용하지 않는 오래된 이미지를 자동으로 정리할 수 있도록 지원함.
  • 다양한 AWS 서비스 연동
    • ECS, EKS, EC2, CodePipeline, CodeBuild 등과 연동하여 CI/CD 파이프라인을 구성할 수 있음.

2. ECR 동작 방식

ECR은 Docker Hub와 유사한 흐름으로 동작하지만, AWS 서비스들과 유기적으로 연결되어 있음.

Docker Build → Docker Tag → Docker Push (ECR) → AWS 서비스에서 Pull
  • Docker Build
    • 애플리케이션을 Docker 이미지로 빌드함.
  • Docker Tag
    • 이미지를 ECR 저장소로 푸시하기 위해 태그를 지정함.
  • Docker Push
    • ECR 저장소로 이미지를 업로드함.
  • AWS 서비스에서 Pull
    • ECS, EKS 등에서 컨테이너 실행 시 이미지를 ECR에서 가져다 사용함.

3. ECR 사용 방법

1) ECR 저장소 생성

AWS 콘솔 또는 AWS CLI를 통해 저장소를 생성할 수 있음.

aws ecr create-repository --repository-name my-app

2) 로그인

ECR은 Docker Hub와 달리 AWS 인증이 필요하므로, 로그인 과정을 거쳐야 함.

aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.ap-northeast-2.amazonaws.com

3) Docker 이미지 빌드 및 태그

docker build -t my-app .
docker tag my-app:latest <aws_account_id>.dkr.ecr.ap-northeast-2.amazonaws.com/my-app:latest

4) Docker 이미지 푸시

docker push <aws_account_id>.dkr.ecr.ap-northeast-2.amazonaws.com/my-app:latest

5) AWS 서비스에서 이미지 사용

ECS, EKS, Lambda 등에서 ECR 이미지를 Pull하여 애플리케이션을 실행할 수 있음.


4. ECR의 장단점

장점 단점
AWS 서비스와 자연스럽게 연동됨 AWS 사용자가 아닌 경우 접근성이 낮음
자동 확장 및 고가용성 제공 저장소당 이미지 수가 많아지면 관리가 복잡해질 수 있음
IAM 기반으로 보안과 접근 제어가 뛰어남 타 퍼블릭 레지스트리에 비해 요금이 발생함
자동 취약점 스캔 및 라이프사이클 관리 기능 제공 멀티 클라우드 환경에서는 활용이 제한적임

5. 실무 활용 사례

  • CI/CD 파이프라인 구축
    • CodePipeline, CodeBuild와 연동하여 애플리케이션 이미지를 자동으로 빌드하고 ECR에 저장함.
  • EKS, ECS 배포
    • Kubernetes 기반의 EKS나 ECS에서 컨테이너 이미지를 ECR에서 가져와 배포함.
  • 이미지 버전 관리
    • 이미지 태그를 통해 버전을 관리하고, 라이프사이클 정책으로 오래된 이미지를 자동 삭제함.
  • 보안 및 컴플라이언스 준수
    • 자동 이미지 스캔 기능을 통해 취약점을 사전에 식별하고 대응할 수 있음.

정리

ECR은 AWS에서 제공하는 관리형 컨테이너 이미지 저장소로, AWS 생태계와 자연스럽게 연동됨.
CI/CD 파이프라인과 연결하여 자동으로 이미지를 빌드하고 배포할 수 있으며, ECS, EKS, Lambda 등에서 바로 사용할 수 있음.
보안적으로도 IAM을 통한 접근 제어, 자동 이미지 스캔 기능 등을 제공하여 안전하게 이미지 관리를 할 수 있음.
AWS 기반 인프라를 사용하는 프로젝트에서는 필수적으로 고려해야 할 이미지 저장소임.

 

 

 

 

출처 : ChatGPT

'Infra > Cloud' 카테고리의 다른 글

AWS Lambda  (0) 2025.04.12
[AWS] AWS S3(Simple Storage Service)  (0) 2025.03.10