현대 Cloud Native 환경에서는 Application을 Container Image 형태로 패키징하여 배포하는 방식이 일반화되었습니다.
하지만 Container를 운영하려면 생성된 Image를 안전하게 저장하고 관리할 Registry가 필요합니다.
기존에는 Docker Hub 같은 Public Registry를 사용했지만, 기업 환경에서는 보안과 권한 관리를 위해 Private Container Registry를 사용합니다.
AWS에서는 이를 위해 Amazon ECR(Elastic Container Registry)을 제공합니다.
예:
Developer
↓
Docker Image Build
↓
ECR 저장
↓
EKS Kubernetes 배포
↓
Container 실행
ECR은 AWS 환경에서 Container Image를 저장하고 관리하는 핵심 서비스입니다.
| 구성 요소 | 역할 |
|---|---|
| ECR Repository | Image 저장 공간 |
| Container Image | Application Package |
| IAM Permission | 접근 권한 관리 |
| Image Scan | 취약점 검사 |
| EKS Integration | Kubernetes 배포 연결 |
AWS ECR 구조를 이해하면 Docker, Kubernetes, DevOps Pipeline을 연결하는 Container 운영 Architecture를 구축할 수 있습니다.
AWS ECR이란?
Amazon ECR(Elastic Container Registry)은 AWS에서 제공하는 Managed Container Registry 서비스입니다.
주요 기능:
- Docker Image 저장
- Private Registry 제공
- IAM 기반 접근 제어
- Image Vulnerability Scan
- EKS 연동
Container 기반 Application 운영의 핵심 서비스입니다.
AWS ECR Architecture
기본 구조:
Developer
↓
Docker Build
↓
Container Image
↓
AWS ECR Repository
↓
EKS Cluster
↓
Pod
Container Delivery Pipeline의 중심 역할을 합니다.
AWS ECR Repository란?
Repository는 Container Image를 저장하는 공간입니다.
구조:
ECR
↓
Repository
↓
Image
↓
Tag
↓
Layer
Application별로 Repository를 분리하여 관리할 수 있습니다.
AWS ECR Private Registry
기업 환경에서는 Private Registry 사용이 일반적입니다.
구성:
Developer
↓
IAM 인증
↓
Private ECR
↓
Authorized User만 접근
Image 보안을 강화할 수 있습니다.
AWS ECR Image Push 과정
일반적인 흐름:
Docker Image 생성
↓
ECR Login
↓
Image Tag 설정
↓
Image Push
↓
Repository 저장
예:
docker build -t app-image .
Image를 생성합니다.
AWS ECR Image Pull 과정
Kubernetes 환경:
Pod 생성 요청
↓
ECR 인증
↓
Image Pull
↓
Container 실행
EKS에서 자동으로 Image를 가져올 수 있습니다.
AWS ECR과 IAM 권한 관리
ECR 접근은 IAM 기반으로 관리합니다.
권한:
- Push 권한
- Pull 권한
- Repository 관리 권한
최소 권한 원칙을 적용합니다.
AWS ECR Image Scan
ECR은 Container Image 취약점 검사를 지원합니다.
검사 대상:
- OS Package
- Library
- Dependency
- Vulnerability
Production 배포 전 보안 검증에 활용합니다.
AWS ECR Image Lifecycle Policy
Lifecycle Policy는 오래된 Image를 자동 관리하는 기능입니다.
예:
최근 10개 Image 유지
↓
오래된 Image 삭제
Storage 비용을 절감합니다.
AWS ECR과 Kubernetes EKS 연결
기존 Kubernetes와 연결하면:
AWS ECR
↓
EKS Authentication
↓
Worker Node
↓
Pod
↓
Container Image
AWS Cloud Native 환경의 기본 구조입니다.
AWS ECR과 Kubernetes Image Pull Secret
Private Registry 접근을 위해 인증 정보가 필요합니다.
방식:
IAM Permission
↓
EKS Node Role
↓
ECR Access
↓
Image Pull
안전한 Image 배포가 가능합니다.
AWS ECR과 CI/CD Pipeline
DevOps 구조:
Developer
↓
Git Repository
↓
CI Build
↓
Docker Image
↓
ECR Push
↓
EKS Deploy
자동화된 Container Delivery 환경을 구성합니다.
AWS ECR과 GitOps 연결
GitOps 환경:
Code 변경
↓
CI Pipeline
↓
Image Build
↓
ECR 저장
↓
Argo CD
↓
EKS 배포
현대적인 Cloud Native 운영 방식입니다.
AWS ECR Security Best Practice
권장:
- Private Repository 사용
- IAM Role 적용
- Image Scan 활성화
- Lifecycle Policy 설정
- Tag 관리
- 불필요 Image 삭제
안전한 Container 운영 환경을 구축합니다.
AWS ECR 장애 분석
Repository 확인:
aws ecr describe-repositories
Image 확인:
aws ecr list-images
Login 확인:
aws ecr get-login-password
확인:
- IAM Permission
- Repository 존재 여부
- Image Tag 오류
- Authentication 문제
AWS ECR 비용 관리
비용 요소:
- 저장 Image 용량
- 데이터 전송
- Image 개수
최적화:
- 오래된 Image 삭제
- Lifecycle Policy 적용
- 불필요한 Layer 제거
AWS ECR 장점
| 장점 | 설명 |
|---|---|
| 보안 | Private Registry |
| 통합성 | AWS 서비스 연결 |
| 자동화 | CI/CD 지원 |
| 확장성 | 대규모 Image 관리 |
ECR은 AWS Container Architecture의 핵심 Registry 서비스입니다.
자주 묻는 질문
ECR과 Docker Hub 차이는 무엇인가요?
ECR은 AWS IAM과 VPC 환경에 통합되어 기업용 Private Registry로 활용하기 좋습니다.
Kubernetes에서 ECR을 사용할 수 있나요?
가능합니다.
AWS EKS 환경에서는 ECR을 기본 Container Image 저장소로 많이 사용합니다.
ECR은 Container를 실행하는 서비스인가요?
아닙니다.
ECR은 Image 저장 서비스이며 Container 실행은 ECS, EKS, EC2 등이 담당합니다.
마무리
AWS ECR은 Container Image를 안전하게 저장하고 관리하는 Managed Registry 서비스이며, Docker, Kubernetes EKS, CI/CD Pipeline을 연결하는 핵심 Cloud Native 구성 요소입니다.
| 구성 요소 | 역할 |
|---|---|
| Repository | Image 저장 |
| Image | Application Package |
| IAM | 접근 제어 |
| Image Scan | 취약점 검사 |
| Lifecycle | Image 관리 |
AWS ECR 구조를 이해하면 Docker 기반 Application을 Kubernetes와 연결하는 Enterprise Container Delivery Architecture를 구축할 수 있습니다.