ECR
ECR은 Docker의 Dockerhub와 같이 AWS에서 제공하는 이미지 저장공간(레포지토리)이다. ECR을 통해 컨테이너 이미지를 공개 또는 비공개적으로 공유할 수 있다. 해당 메뉴는 ECS 내에 존재한다.
ECS
ECR에 저장되어 있는 이미지를 기반으로 가상화된 서비스를 제공한다.
ECR 생성
기본 레포지토리 생성 방법은 간단하다. 레포지토리 이름만 적은 뒤 생성을 눌러주면 된다.
아직은 이미지가 없는 빈 레포지토리인 것을 볼 수 있다. 오른쪽 상단 '푸시 명령 보기'를 누르면 이미지를 업로드할 수 있는 방법을 알려준다.
위 순서대로 준비한 Dockerfile을 업로드해줄 수 있다. 하지만 그 전에 ECR에 접근할 수 있는 권한을 먼저 설정해줄 필요가 있다. IAM에서 ecr-fullaccess 권한을 추가해주자.
이후 위 명령어를 따라 실행해보면 위와 같이 이미지가 업로드된 것을 볼 수 있다. 이제 이 이미지를 원하는 서버에서 pull한 뒤 컨테이너를 실행시킬 수 있다. EC2 또는 ElasticeBeanstalk 등을 이용할 수 있지만, 별도의 서버없이 이 이미지를 실행시키고 이용할 수 있는 서비스가 있다. 바로 ECS다.
ECS 실행
ECS는 클러스터 단위로 실행된다. 먼저 클러스터를 생성해주자. 기본적으로 이름을 제외하고는 따로 입력할 것이 없다.
클러스터가 생성되었다면, 이제 이 클러스터에 '태스크'를 정의하고 컨테이너를 구성해주어야 한다. 좌측 메뉴 바에 '태스크 정의' 항목에 진입해보자.
'새 태스크 정의 생성'을 클릭한다.
원하는 OS 환경 등을 지정한 뒤, 필수 컨테이너에 자신이 실행할 이미지 URI를 복사해 붙여넣고 생성한다. (ECR에서 확인 가능하다.)
이제 다시 클러스터로 돌아와 위에서 등록한 태스크를 클러스터에서 실행한다. 태스크 탭의 '새 태스크 실행'을 눌러 해당 태스크를 실행시켜준다.
태스크가 실행 완료되었다면, 이제는 서비스를 생성할 차례다. 서비스 탭으로 이동해 서비스를 생성해보자.
태스크에서 지정한 패밀리와 똑같이 지정해 준 다음 서비스를 생성한다.
서비스까지 완성되었다면 해당 이미지가 컨테이너로 정상 실행되었는지 확인해봐야 한다. 확인은 별도의 ELB를 만들어 이를 통해 확인할 수 있다.
'Minding's Programming > AWS' 카테고리의 다른 글
[AWS] ApiGateway (0) | 2024.10.28 |
---|---|
[AWS] Lambda (2) | 2024.10.28 |
[AWS] AWS CLI (Command Line Interface) (0) | 2024.10.25 |
[AWS] CI / CD (CodeCommit, CodeBuild, CodeDeploy, CodePipeline) (2) | 2024.10.25 |
[AWS] S3 (0) | 2024.10.25 |