EC2 시작 유형에 대한 Amazon ECS Windows 작업을 생성하는 방법 알아보기 - Amazon Elastic Container Service

EC2 시작 유형에 대한 Amazon ECS Windows 작업을 생성하는 방법 알아보기

작업 정의를 등록하고 클러스터를 생성하며 콘솔에서 서비스를 생성하여 EC2 시작 유형으로 Amazon ECS를 시작합니다.

EC2 시작 유형을 사용하여 Amazon ECS를 시작하려면 다음 단계를 완료합니다.

사전 조건

시작하기 전에 Amazon ECS 사용 설정의 단계를 완료하고 AWS 사용자에게 AdministratorAccess IAM 정책 예제에서 지정된 권한이 있는지 확인합니다.

콘솔에서는 Fargate 작업에 필요한 작업 실행 IAM 역할을 자동으로 생성하려고 합니다. 콘솔에서 이 IAM 역할을 생성할 수 있으려면 다음 중 하나가 충족되어야 합니다.

중요

작업 정의를 사용하여 서비스를 생성할 때 선택하는 보안 그룹에는 인바운드 트래픽을 위해 포트 80이 열려 있어야 합니다. 다음 인바운드 규칙을 보안 그룹에 추가합니다. 보안 그룹을 생성하는 방법에 대한 자세한 내용은 Amazon EC2 사용 설명서Amazon EC2 인스턴스에 대한 보안 그룹 생성을 참조하세요.

  • 유형: HTTP

  • 프로토콜: TCP

  • 포트 범위: 80

  • 출처: 모든 소스(0.0.0.0/0)

1단계: 클러스터 생성

Amazon ECS 클러스터는 작업, 서비스 및 컨테이너 인스턴스의 논리적 그룹입니다.

다음 단계에서는 하나의 Amazon EC2 인스턴스가 등록되어 있는 클러스터를 생성하는 절차를 단계별로 살펴봅니다. 생성된 클러스터에서 태스크를 실행할 수 있습니다. 특정 필드가 언급되지 않은 경우 콘솔 기본값은 그대로 둡니다.

새 클러스터 생성(Amazon ECS 콘솔)

시작하기 전에 적절한 IAM 권한을 할당합니다. 자세한 내용은 Amazon ECS 클러스터 예제 단원을 참조하십시오.

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

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

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

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

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

    이름은 최대 255자(대/소문자), 숫자 및 하이픈을 포함할 수 있습니다.

  6. (선택 사항) 태스크와 서비스가 시작되는 VPC와 서브넷을 변경하려면 네트워킹(Networking)에서 다음 태스크 중 하나를 수행합니다.

    • 서브넷을 제거하려면서브넷(Subnets)에서 제거하려는 각 서브넷에 대해 X를 선택합니다.

    • 기본(default) VPC가 아닌 다른 VPC로 변경하려면 VPC에서 기존 VPC를 선택한 다음 서브넷(Subnets)에서 각 서브넷을 선택합니다.

  7. Amazon EC2 인스턴스를 클러스터에 추가하려면 인프라를 확장한 다음 Amazon EC2 인스턴스스를 선택합니다. 다음으로 용량 공급자 역할을 하는 Auto Scaling 그룹을 구성합니다.

    1. 기존 Auto Scaling 그룹을 사용하려면 Auto Scaling 그룹(ASG)(Auto Scaling group (ASG))에서 해당 그룹을 선택합니다.

    2. Auto Scaling 그룹을 생성하려면 Auto Scaling 그룹(ASG)(Auto Scaling group (ASG))에서 새 그룹 생성(Create new group)을 선택한 후 그룹에 대한 다음 세부 정보를 제공합니다.

      • 운영 체제/아키텍처(Operating system/Architecture)에서 Auto Scaling 그룹 인스턴스에 대한 Amazon ECS 최적화 AMI를 선택합니다.

      • EC2 인스턴스 유형(EC2 instance type)에서 워크로드의 인스턴스 유형을 선택합니다. 지원되는 인스턴스 유형에 대한 자세한 내용은 Amazon EC2 인스턴스 유형을 참조하세요.

        관리형 확장은 Auto Scaling 그룹에서 동일하거나 유사한 인스턴스 유형을 사용해야 가장 효과적입니다.

      • SSH 키 페어(SSH key pair)에서 인스턴스에 연결할 때 자격 증명을 증명하는 페어를 선택합니다.

      • 용량(Capacity)에 Auto Scaling 그룹에서 시작할 최소 인스턴스 수와 최대 인스턴스 수를 입력합니다. Amazon EC2 인스턴스가 AWS 리소스에 존재하는 동안에는 비용이 발생합니다. 자세한 내용은 Amazon EC2 요금을 참조하세요.

  8. (선택 사항) Container Insights를 설정하려면 모니터링(Monitoring)을 확장한 다음 Container Insights 사용(Use Container Insights)을 설정합니다.

  9. (선택 사항) 클러스터 태그를 관리하려면 태그(Tags)를 확장하고 다음 작업 중 하나를 수행합니다.

    [태그 추가] 태그 추가(Add tag)를 선택하고 다음을 수행합니다.

    • 키(Key)에 키 이름을 입력합니다.

    • 에 키 값을 입력합니다.

    [태그 제거] 태그의 키와 값 오른쪽에 있는 제거를 선택합니다.

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

2단계: 태스크 정의 등록

AWS Management Console을 사용하여 샘플 태스크 정의를 등록하려면
  1. 탐색 창에서 태스크 정의를 선택합니다.

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

  3. 다음 예제 작업 정의를 복사하여 상자에 붙여 넣은 다음 저장을 선택합니다.

    { "containerDefinitions": [ { "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "name": "sample_windows_app", "portMappings": [ { "hostPort": 443, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"}, "requiresCompatibilities": ["EC2"] }
  4. 정보를 확인한 후 생성(Create)을 선택합니다.

3단계: 서비스 생성

Amazon ECS 서비스를 사용하면 Amazon ECS 클러스터에서 지정된 수의 태스크 정의 인스턴스를 동시에 실행하고 관리할 수 있습니다. 어떤 이유로 작업이 실패 또는 중지되는 경우 Amazon ECS 서비스 스케줄러가 태스크 정의의 다른 인스턴스를 시작하여 이를 대체하고 서비스의 원하는 작업 수를 유지합니다. 서비스에 대한 자세한 내용은 Amazon ECS 서비스 섹션을 참조하세요.

서비스를 생성하려면
  1. 탐색 창에서 클러스터(Clusters)를 선택합니다.

  2. 1단계: 클러스터 생성에서 생성한 클러스터를 선택합니다.

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

  4. 환경(Environment) 섹션에서 다음 작업을 수행합니다.

    1. 컴퓨팅 옵션(Compute options)에서 시작 유형(Launch type)을 선택합니다.

    2. 시작 유형(Launch type)에서 EC2를 선택합니다.

  5. 배포 구성(Deployment configuration) 섹션에서 다음을 수행합니다.

    1. 패밀리(Family)2단계: 태스크 정의 등록에서 생성한 태스크 정의를 선택합니다.

    2. 서비스 이름(Service name)에 서비스의 이름을 입력합니다.

    3. 원하는 태스크(Desired tasks)1을 입력합니다.

  6. 옵션을 검토하고 Create(생성)를 선택합니다.

  7. 서비스 보기(View service)를 선택하여 서비스를 검토합니다.

4단계: 서비스 보기

이 서비스는 웹 기반 애플리케이션이므로 웹 브라우저에서 컨테이너를 볼 수 있습니다.

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

  2. 탐색 창에서 클러스터(Clusters)를 선택합니다.

  3. 서비스를 실행한 클러스터를 선택합니다.

  4. 서비스 탭의 서비스 이름에서 3단계: 서비스 생성에서 생성한 서비스를 선택합니다.

  5. 작업 탭을 선택한 다음 서비스의 작업을 선택합니다.

  6. 작업 페이지의 구성 섹션에 있는 퍼블릭 IP에서 공개 주소를 선택합니다. 아래 스크린샷은 예상 출력입니다.

    Amazon ECS 샘플 애플리케이션의 스크린샷. 출력에 “애플리케이션이 현재 Amazon ECS에서 실행 중입니다"로 표시됩니다.

5단계: 정리

Amazon ECS 클러스터 사용을 완료를 한 후에 사용하지 않는 리소스에 대해 요금이 발생하는 것을 방지하기 위해 연결된 리소스를 정리해야 합니다.

작업, 서비스, 클러스터, 컨테이너 인스턴스 같은 일부 Amazon ECS 서비스는 Amazon ECS 콘솔을 사용하여 정리됩니다. Amazon EC2 인스턴스, Elastic Load Balancing 로드 밸런서, Auto Scaling 그룹 같은 일부 리소스는 Amazon EC2 콘솔에서 수동으로 정리하거나 리소스를 만든 AWS CloudFormation 스택을 삭제하여 정리해야 합니다.

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

  2. 클러스터 페이지에서 이 자습서용으로 생성한 클러스터를 선택합니다.

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

  4. 서비스를 선택한 다음 삭제를 선택합니다.

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

    서비스가 삭제될 때까지 기다립니다.

  6. 클러스터 삭제(Delete Cluster)를 선택합니다. 확인 프롬프트에서 delete cluster-name을 입력한 다음 삭제(Delete)를 선택합니다. 클러스터를 삭제하면 Auto Scaling 그룹, VPC 또는 로드 밸런서를 포함하여 클러스터로 생성된 관련 리소스가 정리됩니다.