Amazon ECS 관리형 인스턴스에 대한 작업을 생성하는 방법에 대해 알아봅니다.
Amazon ECS 관리형 인스턴스에서 Amazon ECS를 사용하여 컨테이너화된 애플리케이션을 실행하는 방법에 대해 알아봅니다.
사전 조건
자습서를 시작하기 전에 다음을 완료합니다.
-
Amazon ECS 설정에 나와 있는 단계를 완료했습니다.
-
Amazon ECS 사용 설정의 단계가 완료되었습니다.
-
Amazon ECS 관리형 인스턴스에 필요한 IAM 역할이 있습니다. 여기에는 다음이 포함됩니다.
-
인프라 역할 - Amazon ECS가 사용자를 대신해 AWS 서비스를 직접 호출하여 Amazon ECS 관리형 인스턴스 인프라를 관리하도록 허용합니다.
자세한 내용은 Amazon ECS 인프라 IAM 역할 섹션을 참조하세요.
-
인스턴스 프로파일 - 관리형 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트 및 Docker 대몬에 대한 권한을 제공합니다.
인스턴스 역할 이름에는 인프라 역할의
iam:PassRole작업과 일치하도록 접두사로ecsInstanceRole이 포함되어야 합니다.자세한 내용은 Amazon ECS 관리형 인스턴스의 인스턴스 프로파일 섹션을 참조하세요.
-
-
사용할 VPC 및 보안 그룹이 생성되었습니다. 이 자습서에서는 Amazon ECR Public에서 호스팅되는 컨테이너 이미지를 사용하므로 인스턴스에서 인터넷에 액세스할 수 있어야 합니다. 인스턴스에 인터넷 경로를 제공하려면 다음 옵션 중 하나를 사용합니다.
-
탄력적 IP 주소가 있는 NAT 게이트웨이와 함께 프라이빗 서브넷을 사용합니다.
-
퍼블릭 서브넷을 사용하고 퍼블릭 IP 주소를 인스턴스에 할당합니다.
자세한 내용은 Virtual Private Cloud 생성 섹션을 참조하세요.
보안 그룹 및 규칙에 대한 자세한 내용은 Amazon Virtual Private Cloud 사용 설명서의 VPC에 대한 기본 보안 그룹과 규칙 예를 참조하세요.
-
-
(선택 사항) AWS CloudShell은 고객에게 자체 EC2 인스턴스를 생성할 필요 없이 명령줄을 제공하는 도구입니다. 자세한 내용은 AWS CloudShell 사용 설명서의 What is AWS CloudShell?을 참조하세요.
1단계: 클러스터 생성
-
https://console.aws.amazon.com/ecs/v2
에서 Amazon ECS 콘솔을 엽니다. -
탐색 모음에서 사용할 리전을 선택합니다.
-
탐색 창에서 클러스터를 선택합니다.
-
클러스터(Clusters) 페이지에서 클러스터 생성(Create cluster)을 선택합니다.
-
클러스터 구성 아래의 클러스터 이름에 고유한 이름을 입력합니다.
-
인프라에서 Fargate 및 관리형 EC2를 선택합니다.
-
관리형 인스턴스 설정을 구성합니다.
-
인프라 역할에서 관리형 인스턴스 인프라 관리를 위해 생성한 IAM 역할을 선택합니다.
-
인스턴스 프로파일에서 사용자가 생성한
ecsInstanceRole을 선택합니다. -
인스턴스 속성에서 ECS 기본값 사용을 선택합니다.
-
-
네트워킹에서 관리형 인스턴스의 VPC 및 서브넷을 구성합니다.
-
VPC에서 관리형 인스턴스를 호스팅하는 VPC를 선택합니다.
-
서브넷에서 관리형 인스턴스가 시작될 서브넷을 하나 이상 선택합니다.
-
보안 그룹(Security groups)에서 하나 이상의 보안 그룹을 선택합니다.
-
-
(선택 사항) 클러스터에 태그를 추가하려면 태그를 펼친 다음, 태그를 구성합니다.
-
생성(Create)을 선택합니다.
2단계: 태스크 정의 생성
작업 정의는 애플리케이션에 대한 청사진과 같습니다. Amazon ECS에서 태스크를 시작할 때마다 태스크 정의를 지정합니다. 그래야만 컨테이너에 사용할 도커 이미지, 작업에서 사용할 컨테이너 수, 각 컨테이너의 리소스 할당을 서비스가 알 수 있습니다. 이 단계에 따라 태스크 정의를 생성합니다.
-
탐색 창에서 태스크 정의를 선택합니다.
새 태스크 정의 생성(Create new task definition), JSON으로 새 태스크 정의 생성(Create new task definition with JSON)을 선택합니다.
-
다음 JSON을 복사하여 편집기에 붙여넣고 미리 채워진 JSON을 바꿉니다.
account-id를 AWS 계정 ID로 바꾸고,region을 사용자가 사용하는 리전으로 바꿉니다.{ "family": "managed-instance-tutorial", "networkMode": "awsvpc", "executionRoleArn": "arn:aws:iam::account-id:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "sample-app", "image": "public.ecr.aws/docker/library/httpd:latest", "essential": true, "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/managed-instance-tutorial", "awslogs-region": "region", "awslogs-stream-prefix": "ecs" } } } ], "requiresCompatibilities": [ "MANAGED_INSTANCES" ], "cpu": "1024", "memory": "2048" } -
생성(Create)을 선택합니다.
3단계: 서비스 생성
Amazon ECS 서비스를 사용하면 Amazon ECS 클러스터에서 지정된 수의 태스크 정의 인스턴스를 동시에 실행하고 관리할 수 있습니다. 이 단계를 따라 서비스를 생성합니다.
-
탐색 창에서 클러스터를 선택하고
managed-instance-tutorial클러스터를 선택합니다. -
Services(서비스) 탭에서 Create(생성)를 선택합니다.
-
태스크 정의 패밀리에서 managed-instance-tutorial을 선택합니다.
서비스 이름에
managed-instance-tutorial-service를 입력합니다.-
환경에서 용량 공급자 전략을 선택합니다.
-
네트워킹에서 다음을 구성합니다.
기존 API를 선택하거나 새로 를 생성합니다.
-
서브넷에서 사용할 서브넷을 선택합니다.
보안 그룹에서 기존 보안 그룹을 선택하거나 포트 80에서 인바운드 트래픽을 허용하는 새 보안 그룹을 생성합니다.
-
생성(Create)을 선택합니다.
4단계: 서비스 보기
서비스가 시작된 후 이를 보고 이에 대해 자세히 알아보고 테스트할 수 있습니다.
-
managed-instance-tutorial-service서비스를 선택합니다. -
태스크 탭에서 실행 중인 태스크의 태스크 ID를 선택합니다.
-
네트워크의 퍼블릭 IP에서 주소 열기를 선택합니다.
-
웹 서버가 제대로 실행되고 있음을 확인하는 Apache HTTP Server 테스트 페이지가 표시됩니다.
5단계: 정리
이 자습서를 완료하면 사용하지 않는 리소스에 대해 요금이 발생하지 않도록 연결된 리소스를 정리해야 합니다.
-
탐색 창에서 클러스터를 선택합니다.
-
클러스터 페이지에서
managed-instance-tutorial클러스터를 선택합니다. -
서비스 탭을 선택합니다.
-
managed-instance-tutorial-service서비스를 선택한 다음 삭제를 선택합니다. -
확인 프롬프트에서
delete를 입력한 다음, 삭제를 선택합니다. -
서비스가 삭제된 후 탐색 창에서 클러스터를 선택합니다.
-
클러스터 페이지에서
managed-instance-tutorial클러스터를 선택한 다음 클러스터 삭제를 선택합니다. -
확인 프롬프트에서
delete managed-instance-tutorial를 입력한 다음, 삭제를 선택합니다.