Amazon ECS 관리형 인스턴스에 대한 작업을 생성하는 방법에 대해 알아봅니다. - Amazon Elastic Container Service

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단계: 클러스터 생성

  1. https://console.aws.amazon.com/ecs/v2에서 Amazon ECS 콘솔을 엽니다.

  2. 탐색 모음에서 사용할 리전을 선택합니다.

  3. 탐색 창에서 클러스터를 선택합니다.

  4. 클러스터(Clusters) 페이지에서 클러스터 생성(Create cluster)을 선택합니다.

  5. 클러스터 구성 아래의 클러스터 이름에 고유한 이름을 입력합니다.

  6. 인프라에서 Fargate 및 관리형 EC2를 선택합니다.

  7. 관리형 인스턴스 설정을 구성합니다.

    1. 인프라 역할에서 관리형 인스턴스 인프라 관리를 위해 생성한 IAM 역할을 선택합니다.

    2. 인스턴스 프로파일에서 사용자가 생성한 ecsInstanceRole을 선택합니다.

    3. 인스턴스 속성에서 ECS 기본값 사용을 선택합니다.

  8. 네트워킹에서 관리형 인스턴스의 VPC 및 서브넷을 구성합니다.

    1. VPC에서 관리형 인스턴스를 호스팅하는 VPC를 선택합니다.

    2. 서브넷에서 관리형 인스턴스가 시작될 서브넷을 하나 이상 선택합니다.

    3. 보안 그룹(Security groups)에서 하나 이상의 보안 그룹을 선택합니다.

  9. (선택 사항) 클러스터에 태그를 추가하려면 태그를 펼친 다음, 태그를 구성합니다.

  10. 생성(Create)을 선택합니다.

2단계: 태스크 정의 생성

작업 정의는 애플리케이션에 대한 청사진과 같습니다. Amazon ECS에서 태스크를 시작할 때마다 태스크 정의를 지정합니다. 그래야만 컨테이너에 사용할 도커 이미지, 작업에서 사용할 컨테이너 수, 각 컨테이너의 리소스 할당을 서비스가 알 수 있습니다. 이 단계에 따라 태스크 정의를 생성합니다.

  1. 탐색 창에서 태스크 정의를 선택합니다.

  2. 새 태스크 정의 생성(Create new task definition), JSON으로 새 태스크 정의 생성(Create new task definition with JSON)을 선택합니다.

  3. 다음 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" }
  4. 생성(Create)을 선택합니다.

3단계: 서비스 생성

Amazon ECS 서비스를 사용하면 Amazon ECS 클러스터에서 지정된 수의 태스크 정의 인스턴스를 동시에 실행하고 관리할 수 있습니다. 이 단계를 따라 서비스를 생성합니다.

  1. 탐색 창에서 클러스터를 선택하고 managed-instance-tutorial 클러스터를 선택합니다.

  2. Services(서비스) 탭에서 Create(생성)를 선택합니다.

  3. 태스크 정의 패밀리에서 managed-instance-tutorial을 선택합니다.

  4. 서비스 이름managed-instance-tutorial-service를 입력합니다.

  5. 환경에서 용량 공급자 전략을 선택합니다.

  6. 네트워킹에서 다음을 구성합니다.

    1. 기존 API를 선택하거나 새로 를 생성합니다.

    2. 서브넷에서 사용할 서브넷을 선택합니다.

    3. 보안 그룹에서 기존 보안 그룹을 선택하거나 포트 80에서 인바운드 트래픽을 허용하는 새 보안 그룹을 생성합니다.

  7. 생성(Create)을 선택합니다.

4단계: 서비스 보기

서비스가 시작된 후 이를 보고 이에 대해 자세히 알아보고 테스트할 수 있습니다.

  1. managed-instance-tutorial-service 서비스를 선택합니다.

  2. 태스크 탭에서 실행 중인 태스크의 태스크 ID를 선택합니다.

  3. 네트워크퍼블릭 IP에서 주소 열기를 선택합니다.

  4. 웹 서버가 제대로 실행되고 있음을 확인하는 Apache HTTP Server 테스트 페이지가 표시됩니다.

5단계: 정리

이 자습서를 완료하면 사용하지 않는 리소스에 대해 요금이 발생하지 않도록 연결된 리소스를 정리해야 합니다.

  1. 탐색 창에서 클러스터를 선택합니다.

  2. 클러스터 페이지에서 managed-instance-tutorial 클러스터를 선택합니다.

  3. 서비스 탭을 선택합니다.

  4. managed-instance-tutorial-service 서비스를 선택한 다음 삭제를 선택합니다.

  5. 확인 프롬프트에서 delete를 입력한 다음, 삭제를 선택합니다.

  6. 서비스가 삭제된 후 탐색 창에서 클러스터를 선택합니다.

  7. 클러스터 페이지에서 managed-instance-tutorial 클러스터를 선택한 다음 클러스터 삭제를 선택합니다.

  8. 확인 프롬프트에서 delete managed-instance-tutorial를 입력한 다음, 삭제를 선택합니다.