ECR 정의
Amazon에서 제공하는 컨테이너 이미지 저장소 입니다. ECR 리포지토리에서 이미지 URI를 이용해 빌드한 이미지를 푸쉬하고 가져올 수 있습니다.
ECR에 이미지 업로드
ECR 레포지토리 생성
Elastic Container repository -> 리포지토리
목적에 맞게 리포지토리 이름을 생성합니다.
저 같은 경우에 cli-manager라는 이름으로 생성해보았습니다.
ECR에 자격증명
linux에 aws cli 설치
ecr에 컨테이너 이미지를 올리기 위해서는 먼저 aws cli 자격증명이 필요합니다.
curl "<https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip>" -o "awscliv2.zip"
apt install unzip
unzip awscliv2.zip
sudo ./aws/install
aws --version
aws-cli/2.7.9 Python/3.9.11 Linux/5.13.0-51-generic exe/x86_64.ubuntu.20 prompt/off
제가 처음 배울때는 이렇게 설치 했는데 그냥 간단하게 ubuntu라면 아래의 한줄 명령어로도 설치 가능합니다.
apt install awscli
Window에 aws cli 설치
https://awscli.amazonaws.com/AWSCLIV2.msi ← 링크로 파일 다운로드
exe 파일 다운로드 후 실행하면 알아서 정상적으로 설치됩니다.
AWS CLI 계정 인증
AWS IAM으로 이동하여 사용자 -> 보안 자격 증명 , 에서 액세스 키를 발급받습니다.
aws configure
AWS Access Key ID [None] : [발급받은 IAM의 Access Key ID]
AWS Secret Access Key [None] : [발급받은 IAM의 Secret Access Key]
Default region name [None] : [리전]
Default output format [None] : #공백으로 남겨두고 엔터
발급받은 액세스키를 이용하여 AWS CLI 인증 설정이 모두 끝났습니다. 이제 ECR에 docker client를 인증하고 접근하기 위해서 ECR 로그인 과정이 필요합니다.
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
aws ecr get-login --no-include-email --region <region>
위 두 명령어 중 하나를 택해서 로그인 하시면 됩니다. 위의 명령어를 통해서 로그인하면 login succeeded가 출력되고 아래 명령어로 로그인 하시면 공유된 키 내용이 출력됩니다. 유효기간은 12시간으로 지나고 나면 다시 증명해줘야 하는 것 같습니다.
ECR에 업로드
이미 업로드할 이미지를 빌드 했다는 가정하에서 서술하겠습니다.
docker images를 통해 이미지를 확인합니다. test 이미지를 예로 들어서 설명하겠습니다. 일단 생성한 리포지토리에 tag를 지정해주어야 합니다.
docker tag test 486721145340.dkr.ecr.us-east-1.amazonaws.com/cli-container:ubuntu-test
#docker tag [업로드할 이미지 명] [리포지토리 URI]:[새로 지정할 tag]
tag 명령어 다음에 업로드할 이미지를 선택해주는 겁니다. 사진의 ubuntu로 예를 한번 더 들자면 ubuntu:22.04 이런식으로 태그를 통해서 더 자세하게 지정해줄 수 있습니다.
docker push 486721145340.dkr.ecr.us-east-1.amazonaws.com/cli-container:ubuntu-test
#docker push [리포지토리 URI]:[지정했던 tag]
이제 간단하게 위 명령어 형식으로 업로드 할 수 있습니다.
같은 이미지의 다른 태그로 두번 실습했더니 같은 이미지로 업로드 된 모습인데 아무튼 이런식으로 리포지토리에 이미지가 업로드 된 것을 확인할 수 있습니다.
주의할 점은 업로드될때 패키지를 설치할때 처럼 그래프가 채워지는 형식의(무슨 느낌인지 아시죠,,,?ㅎㅎ) 화면이 나와야 성공한겁니다.
ECR에서 host로 이미지 pull 해오기
aws ecr describe-repositories
이 내용은 사실 번외지만 위 명령어를 통해서 구축되어 있는 레포지토리의 정보와 리스트를 볼 수 있습니다.
다시 본론으로 돌아와서 아래의 형식으로 docker pull 명령어를 이용하시면 ECR에 저장된 이미지를 저장할 수 있습니다.
docker pull [리포지토리 URI]:[다운받으려는 이미지 태그]
'네트워크 > 클라우드 컴퓨팅' 카테고리의 다른 글
ECS,ECR을 이용한 Flask web 배포 (0) | 2023.04.09 |
---|---|
Lambda와 Event Bridge 이용해서 EC2 실행,종료 제어 (0) | 2023.03.16 |
AWS GuardDuty (0) | 2023.03.09 |
AWS Accelerator (0) | 2023.03.07 |
EC2 배치 그룹 (0) | 2023.03.07 |