ECR (Elastic Container Registry)
- AWS ECR은 컨테이너 이미지를 저장, 관리, 공유 및 배포할 수 있는 완전관리형 컨테이너 레지스트리입니다.
- AWS ECR을 사용하면 자체 컨테이너 레포지토리를 운영하거나 기본 인프라 확장에 대해 걱정할 필요 없이 애플리케이션을 이미지화 시켜서 프라이빗 및 퍼블릭 저장소에서 관리합니다.
- Docker hub의 역할을 ECR이 해줍니다. 운영자는 Docker CLI를 사용하여 이미지를 Push, Pull 하며 관리할 수 있다.
ECR 레포지토리에 Push 되어있는 이미지들을 사용해서 ECS나 EKS에서 좀 더 효율적으로 컨테이너 애플리케이션을 관리 및 배포할 수 있습니다.
그러면 한번 구성해 보도록 하겠습니다.
1. IAM 사용자 권한 추가
1.1 AWS 사용자가 ECR 서비스에 액세스를 위해 권한 추가작업 필요.
2. AWS CLI 설치
2.1 ECR 레포지토리에 이미지 Push하기 위해서 AWS CLI를 설치해줍니다.
docs.aws.amazon.com/ko_kr/cli/latest/userguide/install-cliv2.html
2.2 aws configure 명령어를 통해 사용자를 등록해줍니다.
3. 도커 설치
Docker CLI 를 사용해 이미지를 관리하기 때문에 도커를 설치해 주어야 합니다.
3.1 sudo yum -y update 명령어로 현재 인스턴스에 설치되어 있는 패키지들을 업데이트합니다.
3.2 amazon-linux-extras 레포지토리에서 docker를 설치해줍시다.
3.3 설치된 도커를 실행시켜 줍시다.
4. 도커 이미지 생성하기
ECR 레포지토리에 Push할 수 있게 해줄 웹 애플리케이션 도커 이미지를 만들어줍시다.
4.1 Dockerfile을 새로 생성해줍시다.
4.2 이미지화 시킬 Apache 웹 애플리케이션. index.html
도커파일 생성
4.3 작성한 Dockerfile에서 도커 이미지를 빌드해줍시다.
도커파일 이미지 빌드
4.4 docker images 명령어로 이미지가 제대로 생성 되었는지 확인해봅시다.
docker images 확인
4.5 빌드된 도커 이미지를 실행시켜줍시다.
-p 80:80 옵션으로 컨테이너에 노출된 80 포트를 호스트 80 포트로 매핑합니다.
-it 옵션은 컨테이너안에서 터미널을 실행 가능하게 합니다.
5. ECR에 도커 CLI 인증
ECR에 Docker CLI을 인증하는 과정을 거쳐야 Docker명령을 통해 ECR에 이미지를 Push 할 수 있습니다.
aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com는
ECR의 URL 주소입니다.
5.1 AWS 계정 id 12자리 숫자와 리전으로 ECR에 인증해주어야 합니다.
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
6. 프라이빗 레포지토리 생성
도커 이미지를 관리 및 배포해줄 레포지토리를 생성해봅시다.
6.1 ECR 콘솔에 접속하여프라이빗 레포지토리를 생성해줍니다.
6.2 CLI 명령어로 레포지토리를 생성하는 방법도 있습니다.
aws ecr create-repository \
--repository-name TEST1 \
--image-scanning-configuration scanOnPush=true \
--region ap-northeast-2 \
6.3 potato 레포지토리가 생성을 확인해 줍시다.
7. ECR에 레포지토리 이미지 Push
7.1 docker images 명령어로 저장되어 있는 이미지 확인
$docker image
7.2 docker tag TEST1:latest aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/TEST1:DAE
도커 이미지는 Tag로 식별하기 때문에 Tag를 달아주는게 좋습니다.
7.3 docker push aws_account_id.dkr.ecr.ap-northeast-2.amazonaws.com/TEST1:DAE
TEST1 레포지토리에 docker push 명령어로 DAE 라는 이미지를 Push합니다.
7.4 TEST1 레포지토리에 DAE 이라는 이미지가 Push 되는 것을 확인 할 수 있습니다.
8. ECR 레포지토리에서 이미지 Pull
8.1 docker pull 명령어를 통해서 ECR 프라이빗 레포지토리에 있는 이미지를 로컬로 받아올 수 있습니다.
'CSP (Cloud Service Provider) > AWS' 카테고리의 다른 글
[AWS] 키페어 (0) | 2022.07.15 |
---|---|
AWS Inspector (0) | 2022.07.15 |
AWS MediaConvert란? (0) | 2022.07.13 |
쿠버네티스 Docker build & Docker hub (0) | 2022.07.08 |
[AWS] Security Groups (0) | 2022.07.08 |
댓글