middlemoon

AWS ECR(Elastic Container Registry) 생성하기 본문

DevOps/AWS

AWS ECR(Elastic Container Registry) 생성하기

중대경 2026. 1. 6. 16:27

 

 

 

 

AWS ECRAmazon Elastic Container Registry의 줄임말로,
Docker 컨테이너 이미지를 저장·관리·배포하기 위한 AWS의 관리형 컨테이너 이미지 레지스트리입니다.

 

 

draw.io로 나타낸 도식화입니다. 먼저 VPC는 기존 테스트용 VPC가 있습니다.

하나의 Region안에 EC2를 생성했던 곳에서 ECR Repository를 생성해주었습니다.

 

hello-world라는 퍼블릭한 이미지를 ECR를 거쳐 이름을 변경합니다.

 

그 과정은 아래와 같이 정리했습니다.

 

 

이미지 푸쉬

 

push 를 하기위해서는 이미지를 우선 Registry로부터 가져오게됩니다. 

이미지는 물론 Public 한, 누구나 외부에서 접근이 가능한 이미지들을 가져올 수 있도록 합니다.

 

 

 

 

 

 

정책 추가

 


terraform-ec2-role에 ECR 권한이 들어갈 수 있게끔 정책을 추가해줍니다.

(저는 기존 EC2와 IAM Role 기존에 있던것을 활용할 수 있도록 추가했습니다.)

 

ECR에서 이미지 pull과, push를 모두 진행해야하기 때문에 2개의 권한을 추가해주었습니다.

 

 

terraform-ec2-role에 ECR 권한이 들어갈 수 있게끔 정책을 추가해줍니다.

 

ECR에서 이미지 pull과, push를 모두 진행해야하기 때문에 2개의 권한을 추가해주었습니다.

 

 

 

 

Test-Image Pull

 

 

Public Registry에서 hello-wolrd라는 이미지를 pull로 가져옵니다.

 

 

docker images를 통해 pull 한 이미지가 제대로 가져왔는지 확인합니다.

 

 

 

 

실제 등록된 AWS ECR의 경로를 포함해 images 조회한 목록입니다.

 

 

 

 

서버 -> AWS ECR로 Push 과정

(+날짜/빌드번호/버전으로 태그하는 예시)

 

[root@ip-192-168-100-19 ~]# TAG=$(date +%Y%m%d-%H%M)
[root@ip-192-168-100-19 ~]# docker tag hello-world:latest 890742611047.dkr.ecr.ap-northeast-2.amazonaws.com/mun-test:$TAG
[root@ip-192-168-100-19 ~]# docker push 890742611047.dkr.ecr.ap-northeast-2.amazonaws.com/mun-test:$TAG
The push refers to repository [890742611047.dkr.ecr.ap-northeast-2.amazonaws.com/mun-test]
53d204b3dc5d: Layer already exists
20260106-0654: digest: sha256:19459a6bbefb63f83f137f08c1df645f8846e2cd1f44fe209294ebc505e6495e size: 524
[root@ip-192-168-100-19 ~]#

 

 

 

최종 결과

 

 

 

 

ECR 자체를 생성하는 건 어렵지않았습니다. 실무에서는 자세히 어떤식으로 사용하는지 알아볼 필요가 있습니다.

 

다음 시간에는 ECR 을 기반으로 ECS 를 사용하게 컨테이너에 이미지를 구축하여 서비스 배포까지 해보는 시간을 가져보겠습니다.

 

 

 

 

https://middlemoon.tistory.com/134

 

AWS ECS 로 배포하기

이전 시간 AWS ECR 생성을 이어서, ECS 쪽 관련된 설정부분을 확인하고 있습니다. 로그를 보니 내 앱이 아니라, 도커 설치 확인용 샘플인 hello-world 이미지로 확인이 되어지고 있네요. ECS의 태스크를

middlemoon.tistory.com

 

Comments