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. 프라이빗 및 퍼블릭 레포지토리 지원

ECR은 프라이빗 레포지토리와 퍼블릭 레포지토리를 지원한다
- 프라이빗 레포지토리: 개인 또는 조직이 외부에 노출되지 않도록 컨테이너 이미지를 저장
- 퍼블릭 레포지토리: 누구나 접근 가능하도록 공개된 컨테이너 이미지 저장
👉 프라이빗 레포지토리는 IAM을 통해 접근 제어가 가능하며, 퍼블릭 레포지토리는 누구나 접근할 수 있다
2. IAM을 활용한 보안 정책 관리
[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 기타 컨테이너 레지스트리

👉 Harbor는 오픈소스 컨테이너 레지스트리로, 자체 구축이 필요하지만 강력한 RBAC 및 보안 기능을 제공함
👉 기업에서는 ECR을 퍼블릭 이미지는 Docker Hub를, 자체 호스팅 환경에서는 Harbor를 활용 가능
[정리]
✅ Amazon ECR은 AWS에서 제공하는 완전관리형 컨테이너 이미지 저장소
✅ IAM, 암호화, 보안 스캔 등 강력한 보안 기능 제공
✅ EKS, ECS 등 AWS 서비스와 원활한 통합 가능
✅ 기업 환경에서 확장성과 보안성을 고려할 때 유용한 서비스
🚀 Amazon ECR을 활용하면 AWS 내에서 컨테이너 운영을 보다 안전하고 효율적으로 관리할 수 있다!
'클라우드 > AWS' 카테고리의 다른 글
[AWS] Fargate: 서버리스 컨테이너 실행 서비스 (0) | 2025.03.07 |
---|---|
[AWS] Storage - EFS, EBS (0) | 2025.03.07 |
[AWS] IAM(Identity and Access Management): 롤 플레이 (0) | 2025.03.06 |
[AWS] Amazon EKS가 궁금해요(feat.쿠버네티스) (0) | 2025.03.06 |
[AWS] ELB(Elastic Load Balancer)란? (1) | 2025.03.06 |