Amazon Web Services 한국 블로그

EC2 Container Registry 정식 출시

Andrew Thomas가 신규 EC2 Container Registry 출시 소식을 전해 주였습니다. 아래에서 자세하게 소개해 드리고자 합니다.

— Jeff;


Amazon EC2 Container Registry (ECR)가 오늘 일반 이용이 가능하게 되었음을 알려 수 있어 매우 기쁘게 생각합니다. Amazon ECR는 관리형 Docker 컨테이너 레지스트리로서 개발자는 Docker 컨테이너 이미지를 쉽게 저장하고 관리하고 배포할 수 있습니다. 지난 AWS re:Invent 사전 공지한 후, 많은 개발자로부터 관심을 받아 왔습니다.

Amazon ECR을 개발 한 이유는 많은 고객분들이 자신의 개인 Docker 이미지 레지스트리를 만들고, 이를 손쉽게 관리하면서 한 번에 수백개 이미지 보내는(Pull) 대규모 배포를 해야 등 많은 과제를 가지고 있기 때문입니다. 셀프 호스트라고 불리는 방식은 두 개 이상의 AWS 리전에 걸쳐 클러스터에 컨테이너 이미지를 배포하는 것이 특히 어렵습니다. 또한, 인증서 및 인증 정보를 관리하지 않아도 저장소 및 이미지 접근을 제어해야 합니다.

Amazon ECR은 이러한 모든 요구 사항에 맞게 있도록 설계되었습니다. 또한, 콘테이너 레지스트리의 인프라에 대한 설치 및 운영을 할 필요가 없습니다. Amazon ECR은 고객의 이미지를 높은 가용성과 확장 가능한 구조로 저장하고 앱플리케이션 컨테이너로 안정 배포 할 수 있도록 합니다. 또한, Amazon ECR은 매우 안전합니다. 각 이미지는 HTTPS에서 암호화 된 레지스트리 경로로 전송되며, 자동으로 암호화되어 S3에 저장됩니다. AWS Identity and Access Management (IAM) 사용자 및 역할을 활용하여, EC2 인스턴스에서 직접 인증 정보를 관리 할 필요도 없고, 권한 관리 정책과 이미지에 대한 접근 제어를 설정 할 수 있습니다. 이에 따라 특정 사용자 및 AWS 계정과 이미지를 공유 할 수 있습니다.

Amazon EC2 Container Registry는 Amazon ECS와 Docker CLI를 기반으로 하고 있기 때문에 개발 및 워크 플로우를 간소화 할 수 있습니다. 개발자 PC에서 Docker CLI를 사용하여 Amazon ECR에 컨테이너 이미지를 쉽게 가져올(push) 수도 있고 Amazon ECS에서 직접 보낼(pull) 수 있습니다.

이제 Amazon ECR과 Amazon ECS를 사용하여 Docker 컨테이너 저장, 관리, 배포가 얼마나 쉽게 할 수 있는지를 살펴 봅시다.

Amazon ECR 관리 콘솔
Amazon ECR 콘솔에서는 이미지 관리 및 저장소의 권한 설정을 쉽게 할 수 있습니다. 콘솔에 액세스하려면 Amazon ECS 콘솔 안에 있는 “Repositories”섹션을 클릭합니다. 여기에서는 예로 간단한 PHP 컨테이너 이미지를 Amazon ECR에 push하고 권한을 설정하고 Amazon ECS 클러스터에 이미지를 배포 해 봅니다.

Amazon ECR 콘솔에서 “Get Started”를 선택합니다. 다음과 같이 간단한 마법사에서 저장소를 만들고 구성 할 수 있습니다.

저장소 이름을 입력하면 Amazon ECR에 접근할 때 사용하는 엔드 포인트 URL을 볼 수 있습니다. 기본적으로 저장소에 대한 접근 권한을 가지고 있기 때문에 나중에 ECR 콘솔에서 설정할 수 있습니다.

Next step을 클릭하면 지금 만든 저장소에 Docker 이미지를 터미널에서 빌드(build)하고 전달(push)하는 데 필요한 명령을 볼 수 있습니다. Dockerfile은 ECS Docker basics tutorial에 있는 샘플을 사용할 수 있습니다. 여기 있는 명령은 AWS Command Line Interface (CLI)Docker CLI를 개발 PC에 설치했는지 여부가 필요합니다. 그런 다음, 각 명령을 복사하여 실행합니다. 즉, login 및 ECR URI에서 이미지에 tag를 붙여 리포지터리에 이미지를 보내는(push) 명령 실행이 가능합니다.

이 단계가 완료되면 Done을​​ 이미지를 관리할 저장소의 화면으로 이동합니다.

레지스트리 권한 설정
Amazon ECR은 AWS Identity and Access Management를 사용하여 누가 어떤 컨테이너 이미지에 접근할 수 있는지를 제어하고 감시할 수 있습니다. 또한, Amazon ECR 콘솔에서 저장소에 대한 자원 기반 정책을 쉽게 만들 수 있도록 권한 도구를 개발했습니다.

이 도구를 사용하려면 저장소 페이지에서 Permissions 탭을 클릭하고 Add를 선택합니다. 그러면, IAM에 대응한 양식 필드가 나옵니다. ID를 입력 한 후, 명시적으로 접근 거부 또는 허용 여부를 선택합니다. 그리고, AWS 계정 번호를 입력하거나 엔티티 테이블의 사용자 및 역할을 선택하여 누가 이를 실행할 지 설정할 수 있습니다.

필요한 엔티티를 선택한 후 접근 정책을 설정할 수 있습니다. 여기에서 왼쪽 토글을 사용하여 push/pull, 그리고 관리자 권한을 위해 필요한 조치를 쉽게 선택할 수 있습니다.

Amazon ECS와의 연계
레포지토리를 생성하고 이미지를 푸시(push)하고 권한을 설정 하면, ECS에 이미지를 배포 할 준비가 되었습니다.

ECS 콘솔에서 Task Definitions를 선택하고 새로운 Task Definition 작성 페이지에서 Image 필드에 Amazon ECR 저장소를 지정합니다. Task Definition을 설정하면, 콘솔 Clusters 페이지에 Task Definition을 위한 새로운 Service를 만듭니다. Service를 만들면 ECS Agent가 자동으로 ECR에서 이미지를 가져오고 실행합니다.

First-Run 업데이트
Amazon ECS 마법사를 통해 Amazon ECR에서 자신의 이미지를 ECS에 배포 할 수 있도록 업데이트했습니다.

ECS 파트너 지원
re:Invent에서 ECS에 컨테이너 배포 자동화를 도와주는 다수의 지속적 통합(CI) 및 배포(CD) 서비스 개발사와 제휴를 발표했습니다. 이제 AWS 파트너 역시 Amazon ECR 지원을 시작하여, 이미지를 AWS에서 자동으로 빌드, 저장 및 배포하기 위한 엔드 포인트간 컨테이너 파이프 라인을 쉽게 개발자가 만들고 작동할 수 있습니다. Shippable, Codeship, Solano Labs, CloudBeesCircleCI 솔루션을 확인해보십시오.

또한, ECR에 저장된 이미지의 취약점 탐색을 위해 TwistLock와 파트너십을 발표합니다. 이를 통해 개발자는 Amazon ECR에 푸시하기 전에 다양한 보안 위협을 보다 쉽게​​ 평가할 수 있고, 정식 서비스 환경에서 실행되는 컨테이너를 모니터링 할 수 있습니다. 우리의 파트너십에 대한 자세한 정보는 Container Partners Page를 참조하십시오.

서비스 가능 리전 및 가격
Amazon ECR은 오늘부터 US East (Northern Virginia)에서 사용 가능합니다. Amazon ECR 이미지가 사용하고 있는 스토리지 및 Amazon ECR에서 인터넷이나 다른 리전으로 데이터 전송 요금 만 부과됩니다. 자세한 내용은 ECR Pricing를 참조하십시오.

Amazon ECR에 대한 더 자세한 사항은 Getting Started with EC2 Container Registry 문서를 참고하시기 바랍니다.

Andrew Thomas, Senior Product Manager

이 글은 EC2 Container Registry – Now Generally Available 한국어 번역입니다.