본문 바로가기
클라우드/AWS

[AWS] Amazon ECR(Elastic Container Registry)이 궁금해요(feat.도커)

by 클레어몬트 2025. 3. 7.

https://claremont.tistory.com/entry/%EB%8F%84%EC%BB%A4-%EB%8F%84%EC%BB%A4docker%EB%9E%80

 

[도커] 도커(docker)란?

ㅇ도커(docker): LXC(리눅스 컨테이너스)라는 커널 컨테이너 기술을 이용하여 만든 컨테이너 기술 중 하나Go언어로 개발된 오픈소스 프로젝트이며(아파치 라이선스 2.0) 사실상 업계 표준이 되어가

claremont.tistory.com

 

 

 

ㅁAmazon ECR(Elastic Container Registry): AWS에서 제공하는 완전관리형 Docker 컨테이너 레지스트리 서비스

자세히 보면 '컨테이너' 느낌이 난다


Amazon ECR을 통해 사용자는 컨테이너 이미지를 저장, 관리, 배포할 수 있으며, AWS의 다양한 서비스(ECS, EKS, Lambda 등)와 쉽게 통합할 수 있다!

  • 완전관리형 서비스: 운영 및 유지보수 부담 없이 컨테이너 이미지를 저장 가능
  • 보안 및 접근 제어 지원: AWS IAM을 활용한 세부적인 권한 설정 가능
  • 고가용성 및 성능 최적화: AWS 글로벌 인프라를 활용한 신속한 이미지 전송
  • 비용 효율성: 사용한 만큼만 비용을 지불하는 종량제 과금 시스템

(Amazon ECR의 주요 기능)

1. 프라이빗 및 퍼블릭 레포지토리 지원

AWS ECR에서 프라이빗 레포지토리(Private Repository)를 생성하는 화면

 

ECR은 프라이빗 레포지토리 퍼블릭 레포지토리를 지원한다

  • 프라이빗 레포지토리: 개인 또는 조직이 외부에 노출되지 않도록 컨테이너 이미지를 저장
  • 퍼블릭 레포지토리: 누구나 접근 가능하도록 공개된 컨테이너 이미지 저장

👉 프라이빗 레포지토리는 IAM을 통해 접근 제어가 가능하며, 퍼블릭 레포지토리는 누구나 접근할 수 있다

 

2. IAM을 활용한 보안 정책 관리

https://claremont.tistory.com/entry/AWS-IAMIdentity-and-Access-Management-%EB%A1%A4-%ED%94%8C%EB%A0%88%EC%9D%B4

 

[AWS] IAM(Identity and Access Management): 롤 플레이

ㅁAWS IAM(Identity and Access Management): AWS 클라우드 리소스에 대한 접근을 제어하는 보안 및 권한 관리 서비스IAM을 사용하면 사용자, 그룹, 역할(Role), 정책(Policy)을 생성하여 AWS 서비스에 대한 접근 권

claremont.tistory.com

 

ECR은 AWS IAM(Identity and Access Management)을 활용하여 세부적인 권한 제어가 가능하다(롤 플레이)

  • 특정 사용자가 ECR 리포지토리를 읽기(Read)만 가능하도록 설정 가능
  • 특정 사용자에게 쓰기(Push) 권한을 부여하여 이미지 업로드 가능
  • AWS 서비스(ECS, EKS) 등이 ECR에서 이미지를 가져올 수 있도록 역할(Role) 할당 가능

🛡 보안 모범 사례:

  • 최소 권한 원칙 적용(Least Privilege)
  • IAM 정책을 활용하여 사용자 및 서비스 접근을 제한
  • 암호화(AES-256, AWS KMS) 사용

 

3. 이미지 암호화 및 서명 기능 제공

 

ECR은 저장된 컨테이너 이미지를 자동으로 암호화한다!

  • 기본적으로 AES-256 표준 암호화를 지원
  • 추가적으로 AWS KMS(Key Management Service)와 통합하여 관리형 키로 암호화 가능

👉 암호화된 이미지는 해킹이나 데이터 유출로부터 보호될 수 있다

 

4. 컨테이너 이미지 스캔 (보안 취약점 분석)

ECR은 컨테이너 이미지에 대해 보안 취약점(known vulnerabilities) 스캔 기능을 제공한다

  • 이미지를 업로드(push)할 때 자동으로 취약점 분석 수행
  • Common Vulnerabilities and Exposures(CVE) 데이터베이스를 활용하여 보안 문제 감지

 현재 이미지 스캔 기능은 deprecated(지원 종료 예정)
→ 보안 점검이 필요한 경우, AWS Inspector 또는 서드파티 보안 스캐너 (Trivy, Clair 등) 사용 추천

 

[Amazon ECR 사용 방법]

1) ECR 리포지토리 생성

AWS Management Console 또는 CLI를 사용하여 ECR 리포지토리를 생성할 수 있다

aws ecr create-repository --repository-name my-container-repo

 

my-container-repo: 생성할 리포지토리 이름

👉 AWS 콘솔에서도 쉽게 생성 가능
1️⃣ AWS 콘솔에서 ECR > 리포지토리 생성 클릭
2️⃣ 리포지토리 이름 입력
3️⃣ 퍼블릭/프라이빗 설정 선택
4️⃣ 이미지 태그 변경 가능 여부 설정
5️⃣ 암호화 방식(AES-256, KMS) 선택 후 생성 클릭

 

2) Docker 컨테이너 이미지 push (업로드)

ECR에 컨테이너 이미지를 업로드하려면 먼저 로그인해야 한다

aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin <ECR_REGISTRY_URL>

 

그런 다음, 컨테이너 이미지를 빌드하고 업로드한다

docker build -t my-container .
docker tag my-container:latest <ECR_REGISTRY_URL>/my-container:latest
docker push <ECR_REGISTRY_URL>/my-container:latest

 ECR_REGISTRY_URL = <AWS_ACCOUNT_ID>.dkr.ecr.<region>.amazonaws.com
(예: 123456789012.dkr.ecr.ap-northeast-2.amazonaws.com)

 

3) Docker 컨테이너 이미지 pull (다운로드)

ECR에 저장된 컨테이너 이미지를 가져와 실행할 수도 있다

docker pull <ECR_REGISTRY_URL>/my-container:latest
docker run -d -p 8080:80 <ECR_REGISTRY_URL>/my-container:latest

👉 EKS, ECS와 연동하여 컨테이너 실행 가능

  • Amazon ECS (Fargate, EC2)
  • Amazon EKS (Kubernetes 기반)
  • AWS Lambda 컨테이너 실행

 

※ Amazon ECR 요금 체계

ECR은 저장된 데이터와 이미지 전송량에 따라 과금된다

  • 저장 비용: 컨테이너 이미지 저장 공간 (GB 단위)
  • 데이터 전송 비용: ECR에서 이미지 다운로드 시 네트워크 트래픽 발생

 무료 요금제 (AWS Free Tier)

  • 500MB까지 무료 저장 가능
  • AWS 내부에서 ECR → ECS/EKS로 이미지 전송은 무료
  • 외부로 전송할 경우 요금 부과 (CloudFront 사용하면 비용 절감 가능)

 

 

Amazon ECR vs 기타 컨테이너 레지스트리

고래(container)가 머무는 항구(harbor)

 

👉 Harbor는 오픈소스 컨테이너 레지스트리로, 자체 구축이 필요하지만 강력한 RBAC 및 보안 기능을 제공함
👉 기업에서는 ECR을 퍼블릭 이미지는 Docker Hub를, 자체 호스팅 환경에서는 Harbor를 활용 가능

 

[정리]

 Amazon ECR은 AWS에서 제공하는 완전관리형 컨테이너 이미지 저장소
 IAM, 암호화, 보안 스캔 등 강력한 보안 기능 제공
 EKS, ECS 등 AWS 서비스와 원활한 통합 가능
 기업 환경에서 확장성과 보안성을 고려할 때 유용한 서비스

🚀 Amazon ECR을 활용하면 AWS 내에서 컨테이너 운영을 보다 안전하고 효율적으로 관리할 수 있다!