아마존 ECR

IT 위키

Amazon ECR(Amazon Elastic Container Registry)은 AWS가 제공하는 완전관리형 컨테이너 이미지 레지스트리 서비스로, Docker 이미지, OCI(Open Container Initiative) 이미지 및 OCI 호환 아티팩트를 저장·배포·관리하는 데 사용된다.[1]

Amazon ECR은 컨테이너 기반 애플리케이션 배포 파이프라인에서 이미지 저장소 역할을 하는 AWS 서비스이다. 사용자는 Docker CLI, AWS CLI, AWS SDK, CI/CD 도구 등을 이용해 컨테이너 이미지를 Amazon ECR 리포지토리에 푸시하고, Amazon ECS, Amazon EKS, AWS Lambda, AWS App Runner 또는 온프레미스 실행 환경에서 이미지를 풀하여 사용할 수 있다.[2]

Amazon ECR은 기본적으로 계정과 리전에 연결된 프라이빗 레지스트리를 제공하며, 하나의 레지스트리 안에 여러 리포지토리를 생성할 수 있다. 각 리포지토리는 이미지 태그와 이미지 다이제스트를 기준으로 Docker 이미지, OCI 이미지, OCI 호환 아티팩트를 관리한다.[3][4]

주요 구성 요소

[편집 | 원본 편집]
구성 요소 설명
레지스트리 AWS 계정AWS 리전에 연결된 컨테이너 이미지 저장 영역이다. 프라이빗 레지스트리는 계정별로 제공되며 여러 리포지토리를 포함할 수 있다.
리포지토리 특정 애플리케이션 또는 이미지 계열을 저장하는 논리적 단위이다. Docker 이미지, OCI 이미지, OCI 호환 아티팩트를 저장할 수 있다.
이미지 컨테이너 실행에 필요한 파일 시스템과 메타데이터를 포함한 산출물이다. 일반적으로 태그 또는 다이제스트로 식별한다.
이미지 태그 사람이 읽기 쉬운 이미지 식별자이다. 예를 들어 latest, v1.0.0 같은 값이 사용된다.
이미지 다이제스트 이미지 콘텐츠를 기준으로 생성되는 고유 식별자이다. 동일 태그가 변경될 수 있는 것과 달리 다이제스트는 특정 이미지 버전을 식별하는 데 유용하다.
리포지토리 정책 리포지토리 단위로 접근 권한을 제어하는 리소스 기반 정책이다.

주요 기능

[편집 | 원본 편집]
  • 프라이빗 컨테이너 이미지 저장소: 조직 내부 또는 특정 AWS 계정에서 사용하는 컨테이너 이미지를 안전하게 저장한다.
  • 퍼블릭 레지스트리: Amazon ECR Public을 통해 공개 컨테이너 이미지를 배포할 수 있다.[5]
  • AWS IAM 기반 접근 제어: AWS IAM 사용자, 역할, 서비스, 다른 AWS 계정에 대해 푸시·풀·관리 권한을 세밀하게 부여할 수 있다.[6]
  • 리포지토리 정책: 리포지토리 단위의 리소스 기반 정책을 설정해 특정 주체의 접근을 허용하거나 제한할 수 있다.[7]
  • 취약점 스캔: 컨테이너 이미지의 소프트웨어 취약점을 식별한다. 기본 스캔과 Amazon Inspector 연동 기반의 향상된 스캔을 제공한다.[8]
  • 수명 주기 정책: 오래되었거나 사용하지 않는 이미지를 조건에 따라 만료 또는 아카이브하여 저장소를 관리한다.[9]
  • 이미지 복제: 리전 간 또는 계정 간 프라이빗 이미지 복제를 지원한다.[10]
  • 풀 스루 캐시: 외부 업스트림 레지스트리의 이미지를 Amazon ECR 프라이빗 레지스트리로 캐시해 반복적인 이미지 풀을 단순화할 수 있다.[11]
  • AWS PrivateLink 연동: 인터페이스 VPC 엔드포인트를 사용해 Amazon VPC 내부에서 Amazon ECR API에 비공개로 접근할 수 있다.[12]

동작 방식

[편집 | 원본 편집]

일반적인 사용 흐름은 다음과 같다.

  1. Amazon ECR 리포지토리를 생성한다.
  2. AWS CLI 또는 Docker CLI로 Amazon ECR 레지스트리에 인증한다.
  3. 로컬에서 빌드한 컨테이너 이미지에 Amazon ECR 리포지토리 주소를 태그로 지정한다.
  4. 이미지를 Amazon ECR 리포지토리에 푸시한다.
  5. Amazon ECS, Amazon EKS, AWS Lambda, AWS App Runner 또는 배포 파이프라인에서 해당 이미지를 풀하여 실행한다.
aws ecr get-login-password --region ap-northeast-2 \
  | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-northeast-2.amazonaws.com

docker build -t sample-app .
docker tag sample-app:latest 123456789012.dkr.ecr.ap-northeast-2.amazonaws.com/sample-app:latest
docker push 123456789012.dkr.ecr.ap-northeast-2.amazonaws.com/sample-app:latest

Amazon ECR에 인증하려면 일반적으로 ecr:GetAuthorizationToken 권한이 필요하다. 인증 후에는 부여된 AWS IAM 권한과 리포지토리 정책에 따라 이미지 푸시, 풀, 삭제, 리포지토리 관리 작업을 수행한다.[13]

Amazon ECR의 접근 제어는 AWS IAM과 리포지토리 정책을 중심으로 구성된다. AWS IAM 정책은 사용자나 역할이 Amazon ECR API를 호출할 수 있는 권한을 정의하고, 리포지토리 정책은 특정 리포지토리에 대한 리소스 기반 권한을 정의한다.[6][7]

이미지 취약점 관리는 Amazon ECR의 핵심 보안 기능 중 하나이다. 기본 스캔은 컨테이너 이미지의 알려진 취약점을 식별하는 데 사용되며, 향상된 스캔은 Amazon Inspector와 통합되어 운영체제 패키지와 프로그래밍 언어 패키지 취약점까지 분석할 수 있다.[14]

네트워크 측면에서는 AWS PrivateLink 기반 인터페이스 VPC 엔드포인트를 구성해 인터넷 게이트웨이, NAT 디바이스, 가상 프라이빗 게이트웨이를 사용하지 않고 Amazon VPC에서 Amazon ECR API에 접근하도록 설계할 수 있다.[12]

운영 관리

[편집 | 원본 편집]

Amazon ECR 저장소는 이미지가 누적되기 쉬우므로 운영 환경에서는 수명 주기 정책을 함께 사용하는 것이 일반적이다. 수명 주기 정책은 태그 상태, 이미지 개수, 이미지 나이, 마지막 풀 시점 등의 조건을 기준으로 이미지를 정리할 수 있으며, 정책 적용 전 미리보기 기능을 사용해 영향을 확인할 수 있다.[9][15]

멀티 리전 또는 다중 계정 환경에서는 이미지 복제를 사용해 배포 지연을 줄이고 장애 대응성을 높일 수 있다. Amazon ECR은 리전 간 복제와 계정 간 복제를 지원하며, 계정 간 복제의 경우 대상 계정의 레지스트리 권한 정책 설정이 필요하다.[10]

풀 스루 캐시는 Docker Hub, GitLab Container Registry 등 외부 업스트림 레지스트리 이미지를 Amazon ECR을 통해 가져오고 캐시하는 기능이다. 캐시된 태그 이미지는 이후 풀 요청에서 업스트림 변경 여부를 확인해 갱신을 시도한다.[11]

Amazon ECR은 주로 저장된 이미지 데이터 용량과 데이터 전송량을 기준으로 과금된다. 같은 리전 내에서 AWS 서비스가 Amazon ECR 이미지를 풀하는 경우와 리전 간 전송, 인터넷 전송 등은 과금 조건이 달라질 수 있으므로 운영 전 공식 요금표와 사용 리전을 확인해야 한다.[16]

활용 사례

[편집 | 원본 편집]
  • CI/CD 파이프라인: 빌드 서버에서 생성한 컨테이너 이미지를 Amazon ECR에 저장하고 배포 단계에서 동일 이미지를 사용한다.
  • Amazon ECS·Amazon EKS 배포: Amazon ECS 태스크나 Amazon EKS 파드에서 Amazon ECR 이미지를 참조해 컨테이너를 실행한다.
  • 서버리스 컨테이너 배포: AWS Lambda 컨테이너 이미지 또는 AWS App Runner 서비스의 이미지 저장소로 활용한다.
  • 멀티 리전 배포: 이미지 복제를 이용해 여러 AWS 리전에 동일한 컨테이너 이미지를 배포한다.
  • 외부 이미지 캐시: 풀 스루 캐시를 이용해 외부 레지스트리 의존도를 낮추고 이미지 풀 경로를 표준화한다.

장점과 한계

[편집 | 원본 편집]
구분 내용
장점 AWS IAM, Amazon ECS, Amazon EKS, AWS Lambda, AWS App RunnerAWS 서비스와 통합성이 높고, 관리형 서비스이므로 별도 레지스트리 서버 운영 부담이 작다.
장점 취약점 스캔, 수명 주기 정책, 이미지 복제, 풀 스루 캐시, AWS PrivateLink 연동 등 운영 기능을 제공한다.
한계 AWS 계정AWS 리전 구조에 종속되므로 멀티 클라우드 또는 온프레미스 중심 환경에서는 접근 경로, 인증 방식, 비용 구조를 별도로 설계해야 한다.
한계 저장 이미지가 계속 누적될 경우 비용이 증가할 수 있어 이미지 태그 전략, 수명 주기 정책, 저장소 권한 관리를 함께 설계해야 한다.

같이 보기

[편집 | 원본 편집]
  1. Amazon Web Services, "What is Amazon Elastic Container Registry?", https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html, 확인일: 2026-06-26.
  2. Amazon Web Services, "Amazon Elastic Container Registry Documentation", https://docs.aws.amazon.com/ecr/, 확인일: 2026-06-26.
  3. Amazon Web Services, "Amazon ECR private registry", https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html, 확인일: 2026-06-26.
  4. Amazon Web Services, "Amazon ECR private repositories", https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html, 확인일: 2026-06-26.
  5. Amazon Web Services, "What Is Amazon Elastic Container Registry Public?", https://docs.aws.amazon.com/AmazonECR/latest/public/what-is-ecr.html, 확인일: 2026-06-26.
  6. 6.0 6.1 Amazon Web Services, "How Amazon Elastic Container Registry works with IAM", https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_service-with-iam.html, 확인일: 2026-06-26.
  7. 7.0 7.1 Amazon Web Services, "Private repository policies in Amazon ECR", https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policies.html, 확인일: 2026-06-26.
  8. Amazon Web Services, "Scan images for software vulnerabilities in Amazon ECR", https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html, 확인일: 2026-06-26.
  9. 9.0 9.1 Amazon Web Services, "Automate the cleanup of images by using lifecycle policies in Amazon ECR", https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html, 확인일: 2026-06-26.
  10. 10.0 10.1 Amazon Web Services, "Private image replication in Amazon ECR", https://docs.aws.amazon.com/AmazonECR/latest/userguide/replication.html, 확인일: 2026-06-26.
  11. 11.0 11.1 Amazon Web Services, "Sync an upstream registry with an Amazon ECR private registry", https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache.html, 확인일: 2026-06-26.
  12. Amazon Web Services, "Pulling an image to your local environment from an Amazon ECR private repository", https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-pull-ecr-image.html, 확인일: 2026-06-26.
  13. Amazon Web Services, "Scan images for OS and programming language package vulnerabilities in Amazon ECR", https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning-enhanced.html, 확인일: 2026-06-26.
  14. Amazon Web Services, "Creating a lifecycle policy preview in Amazon ECR", https://docs.aws.amazon.com/AmazonECR/latest/userguide/lpp_creation.html, 확인일: 2026-06-26.
  15. Amazon Web Services, "Amazon ECR Pricing", https://aws.amazon.com/ecr/pricing/, 확인일: 2026-06-26.