Amazon ECR(Elastic Container Registry)

아로롱·2025년 1월 25일

AWS

목록 보기
2/4

📍Amazon ECR(Elastic Container Registry)

  • Docker 컨테이너 이미지를 저장, 공유 및 배포할 수 있는 완전 관리형 컨테이너 레지스트리 서비스.
  • 컨테이너화된 애플리케이션을 쉽게 관리할 수 있는 중앙 저장소.

💡 컨테이너 기반 애플리케이션 개발 및 배포 워크플로우를 간소화하는 강력한 도구 !
AWS 의 다른 서비스들과 통합되어 있다.

🚩 ECR 의 핵심 기능

1. 레지스트리(Registry)

  • AWS 계정에 제공되는 프라이빗 레포지토리.
  • 여러 개의 레포지토리를 생성하며 Docker Image 등을 저장할 수 있다.

2. 권한 관리

  • AWS IAM(Identity and Access Management)을 사용하여 레포지토리에 대한 액세스를 제어한다.
  • 특정 사용자나 역할에게 이미지 push, pull, 삭제 등의 권한을 부여할 수 있다.

3. 이미지 스캐닝

  • 저장된 컨테이너 이미지의 취약점을 자동으로 스캔한다.
  • 새로운 이미지가 푸시될 때마다 스캔을 실행하도록 설정할 수 있다.
  • 이미지 수명 주기(라이프 사이클 정책)를 관리할 수 있다.

🚩 Dockerfile 을 통한 배포 프로세스

💡 GitHub Actions 를 통해 CI/CD 파이프라인을 구축했다.

FROM openjdk:11-jre-slim as builder
EXPOSE yyyy
ARG JAR_FILE=target/*.jar
WORKDIR application
COPY ${JAR_FILE} application.jar
ENTRYPOINT ["java", "-jar", "application.jar"]

1. 이미지 빌드

  • GitHub Actions 에서 레포지토리의 코드를 가져온다.
  • Java 프로젝트를 빌드하여 jar 파일을 생성한다.
  • Dockerfile 을 사용하여 jar 파일이 포함된 Docker 이미지가 생성된다.

2. ECR 로 푸시

  • 따로 작성한 .yml 파일을 통해 ECR 에 로그인 됨.
  • 빌드된 이미지를 Amazon ECR 로 push한다.

3. 클러스터로 배포

  • ECR 에 저장된 이미지는 k8s 클러스터에 배포된다.
  • depl.yml 에 ecr 정의하였다.
        spec:
        containers:
          - name: zzzz
          # AWS의 ECR를 사용 
            image: xxx.dkr.ecr.axx.amazonaws.com/zzzz:latest
            ports: 
              - containerPort: yyyy
profile
Dilige, et fac quod vis

0개의 댓글