-
[AWS] AWS Elastic Container Registry 간단한 실습해보기Cloud/AWS 2021. 5. 6. 14:38728x90반응형
ECR 이란 무엇일까?Amazon Elastic Container Registry (Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스입니다.
Amazon ECR는 AWS IAM를 사용하여 리소스 기반 권한으로 프라이빗 컨테이너 이미지 리포지토리를 지원합니다. 이렇게 하면 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 액세스할 수 있습니다.
선호하는 CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트를 푸시, 풀 및 관리할 수 있습니다.AWS 공식문서에서 ECR은 위와 같이 정의하고 있습니다. 간단하게 요약하면..?
Private Docker Hub와 비슷하다고 생각이 듭니다.ECR 요금Amazon ECR 신규 고객은 프라이빗 리포지토리에 대해 AWS 프리 티어의 일부로서 1년 동안 월 500MB의 스토리지를 받습니다.
신규 또는 기존의 Amazon ECR 고객은 퍼블릭 리포지토리에 대해 월 50GB의 상시 무료 스토리지를 제공합니다. 매월 퍼블릭 리포지토리에서 (AWS 계정을 사용하지 않고) 익명으로 500GB의 데이터를 인터넷으로 전송할 수 있습니다.
AWS 계정에 가입하거나 기존 AWS 계정으로 ECR에 인증하는 경우에는 매달 무료로 5TB의 데이터를 퍼블릭 리포지토리에서 인터넷으로 전송할 수 있으며, 모든 AWS 리전의 퍼블릭 리포지토리에서부터 AWS 컴퓨팅 리소스로 데이터를 전송하는 경우에 무제한 대역폭을 무료로 얻을 수 있습니다.
무료 사용량은 모든 리전에서 매월 계산되어 청구서에 자동으로 적용됩니다. 무료 사용량은 누적되지 않습니다.어느 정도 용량의 제한이 있지만 그 용량만 넘어가지 않으면 프리티어 기간 동안은 무료로 사용할 수 있는 거 같습니다. 자세한 내용은 여기 를 참고해주세요.
ECR IAM 권한 추가
ECR 서비스를 이용하려면
IAM사용자에게 ECR 접근 권한을 주어야 합니다. 그래서 IAM 사용자에게AmazonEC2ContainerRegistryFullAccess의 권한을 주겠습니다.ECR Repository 생성하기
AWS에서 ECR 서비스에 들어가서
Repository 생성을 누르겠습니다. 그러면 위의 화면 같이 선택을 한 후에 나머지 설명은Default로 놓고 레포지토리를 만들겠습니다.
그리고 오른쪽 위를 보면
레포지토리이름 푸시 명령이라는 것이 있습니다. 이것을 누르면 위와 같은 화면을 볼 수 있는데요. 이것을 통해서Docker Image를 ECR에다 push 할 수 있습니다.EC2에서 위의 명령을 통해서ECR에 push 하는 간단한 실습을 해보겠습니다.EC2 Docker 설치sudo yum update -y sudo amazon-linux-extras install -y docker sudo service docker start참고로 저는
AWS EC2 Linux2버전을 사용하고 있습니다. 설치와 관련해서 자세히 내용은 여기 를 참고하시면 됩니다.그리고 위의
푸시 명령에 있는 것들을 하나씩 EC2에서 입력하면 됩니다.
첫 번째 명령을 그대로 복사해서 EC2에 입력하면 위와 같이
로그인 성공을 볼 수 있습니다.
그리고
Dockerfile이 위치해있는 곳에서두 번째 명령을 치겠습니다. 지금은 이미지를 만들기 위함이기 때문에Dockerfile은 어떤 것이든 상관 없습니다. 예제의 Dockerfile이 필요하다면 여기 를 참고하면 좋을 거 같습니다.docker tag gyunny:latest {number}.dkr.ecr.ap-northeast-2.amazonaws.com/gyunny:latest docker push {number}.dkr.ecr.ap-northeast-2.amazonaws.com/gyunny:latest그리고 3, 4번째에 존재하는 명령어도 복사해도 그대로 EC2에 입력하겠습니다. 그러면 이미지의 태그가 정해지고 해당 이미지가
AWS ECR로 push가 됩니다.
그러면 위와 같이
ECR에 Docker Image가 push된 것을 볼 수 있습니다. ECR에 존재하는 이미지를 pull 받는 것도 push -> pull로 명령어 하나만 바꿔주면 됩니다.docker pull {number}.dkr.ecr.ap-northeast-2.amazonaws.com/gyunny:latest
그러면 위와 같이 Image가 잘 다운되는 것도 확인할 수 있습니다.
반응형'Cloud > AWS' 카테고리의 다른 글
[AWS] EC2 Nginx Access log를 CloudWatch로 전송하는 법 (1) 2021.05.12 [AWS] Lambda로 Thumbnail 이미지 자동 생성하기 (11) 2021.05.11 [AWS] Spring, Nginx, Docker로 무중단 배포하기 - 2탄 (2) 2021.04.28 [AWS] Spring Boot로 ElastiCache 간단한 실습해보기 (4) 2021.04.26 [AWS] Spring Boot,Travis CI, CodeDeploy, Nginx로 무중단 배포하기 (1) 2021.04.22