Amazon ECS Managed Instances용 capacity provider 생성

Amazon ECS Managed Instances용 capacity provider 생성

Amazon ECS Managed Instances는 capacity provider를 사용해 워크로드의 컴퓨트 용량을 관리합니다. 이 글에서는 콘솔과 AWS CLI로 Managed Instances용 capacity provider를 만드는 방법을 알아봅니다.

출처: 문서

본문

Amazon ECS Managed Instances는 capacity provider를 사용해 워크로드의 컴퓨트 용량을 관리합니다. instanceRequirements를 지정하지 않고 capacity provider를 만들면 Amazon ECS는 자동으로 가장 비용 최적화된 범용(general-purpose) 인스턴스 유형을 선택합니다. instanceRequirements를 사용해 인스턴스 유형, CPU 제조사, 가속기 유형 및 기타 요구 사항 같은 인스턴스 속성을 지정하는 capacity provider를 만들 수 있어요.

사용자 지정 capacity provider는 속성 기반 인스턴스 유형 선택(attribute-based instance type selection)을 사용하므로 인스턴스 요구 사항을 속성 집합으로 표현할 수 있습니다. 이러한 요구 사항은 일치하는 모든 Amazon EC2 인스턴스 유형으로 자동 변환되어 인스턴스 유형 구성의 생성과 유지보수를 단순화합니다. 인스턴스 요구 사항과 속성 기반 선택에 대해 자세히 알아보려면 Amazon EC2 사용자 가이드의 Amazon EC2 Fleet 속성 기반 인스턴스 유형 선택 문서를 참고하세요.

사전 요구 사항 (Prerequisites)

시작하기 전에 다음을 완료했는지 확인하세요:

  • 사용할 모니터링 유형을 결정합니다. 자세한 내용은 Amazon ECS Managed Instances 상세 모니터링 문서를 참고하세요.
  • 기존 클러스터가 있거나 새 클러스터를 만들 계획이 있어야 합니다. 자세한 내용은 Amazon ECS Managed Instances용 클러스터 생성 문서를 참고하세요.
  • Amazon ECS Managed Instances에 필요한 IAM 역할이 있어야 합니다. 여기에는 다음이 포함됩니다:
    • Infrastructure role — Amazon ECS가 사용자를 대신해 AWS 서비스를 호출하여 Amazon ECS Managed Instances 인프라를 관리할 수 있게 합니다. 자세한 내용은 Amazon ECS 인프라 IAM 역할 문서를 참고하세요.
    • Instance profile — 관리형 인스턴스에서 실행되는 Amazon ECS 컨테이너 에이전트와 Docker 데몬에 권한을 제공합니다. 자세한 내용은 Amazon ECS Managed Instances 인스턴스 프로파일 문서를 참고하세요.
  • 인스턴스를 선택하는 방법을 이해합니다. 자세한 내용은 Amazon ECS Managed Instances 인스턴스 선택 모범 사례 문서를 참고하세요.

콘솔 절차 (Console procedure)

Amazon ECS Managed Instances용 capacity provider를 만들려면 (Amazon ECS 콘솔)

  1. 콘솔을 https://console.aws.amazon.com/ecs/v2 에서 엽니다.
  2. 탐색 표시줄에서 사용할 리전을 선택합니다.
  3. 탐색 창에서 Clusters를 선택합니다.
  4. Clusters 페이지에서 클러스터 이름을 선택합니다.
  5. 클러스터 페이지에서 Infrastructure 탭을 선택합니다.
  6. Capacity providers 섹션에서 Create capacity provider를 선택합니다.
  7. Capacity provider configuration 아래에서 다음을 구성합니다:
    • Capacity provider name에 capacity provider의 고유한 이름을 입력합니다.
    • Capacity provider type에서 Amazon ECS Managed Instances를 선택합니다.
  8. Instance configuration 아래에서 다음을 구성합니다:
    • Instance profile에서 Amazon ECS Managed Instances용으로 만든 인스턴스 프로파일 역할을 선택합니다.
    • Infrastructure role에서 Amazon ECS Managed Instances용으로 만든 인프라 역할을 선택합니다.
  9. Instance requirements 아래에서 인스턴스의 속성을 지정합니다. 다음 중 원하는 조합을 구성할 수 있어요:
    • vCPU count — vCPU 수를 지정합니다(예: 4 또는 범위로 8-16).
    • Memory (MiB) — MiB 단위로 메모리 양을 지정합니다(예: 8192 또는 범위로 16384-32768).
    • Instance types — 특정 인스턴스 유형을 지정합니다(예: m5.large,m5.xlarge,c5.large).
    • CPU manufacturers — intel, amd, amazon-web-services 중에서 선택합니다.
    • Accelerator types — gpu, fpga, inference 같은 가속기 유형을 지정합니다.
    • Accelerator count — 가속기 수를 지정합니다(예: 1 또는 범위로 2-4).
  10. Advanced configuration 아래에서 다음 모니터링 옵션 중 하나를 선택합니다:
    • CloudWatch가 상태 확인 지표를 보내게 하려면 Basic을 선택합니다.
    • CloudWatch가 모든 지표를 보내게 하려면 Detailed를 선택합니다.
  11. (선택 사항) capacity provider를 식별하는 데 도움이 되도록 Tags를 확장하고 태그를 구성합니다. capacity provider에서 시작한 인스턴스 같은 관리형 리소스로 태그 전파를 활성화하려면 Propagate tags from에서 Capacity provider를 선택합니다.
    • Add tag를 선택하고 다음을 수행합니다:
      • Key에 키 이름을 입력합니다.
      • Value에 키 값을 입력합니다.
  12. Create를 선택합니다.

AWS CLI 절차 (AWS CLI procedure)

AWS CLI를 사용해 Amazon ECS Managed Instances용 capacity provider를 만들 수 있습니다. 최신 버전의 AWS CLI를 사용하세요. 최신 버전으로 업그레이드하는 방법에 대한 자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트 문서를 참고하세요.

Amazon ECS Managed Instances용 capacity provider를 만들려면 (AWS CLI)

다음 명령을 실행합니다:

aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.json

다음 capacity-provider-definition.json은 기본 인스턴스 요구 사항, 인스턴스 스토리지 크기를 지정하고 태그 전파를 활성화하는 데 사용할 수 있습니다:

{
    "name": "my-managed-instances-provider",
    "cluster": "my-cluster",
    "tags": [ 
        { 
            "key": "version",
            "value": "test"
        }
    ],    
    "managedInstancesProvider": {
        "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
        "instanceLaunchTemplate": {
            "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceRole",
            "instanceRequirements": {
                "vCpuCount": {
                    "min": 4,
                    "max": 8
                },
                "memoryMiB": {
                    "min": 8192,
                    "max": 16384
                }
            },
            "networkConfiguration": {
                "subnets": [
                    "subnet-abcdef01234567",
                    "subnet-bcdefa98765432"
                ],
                "securityGroups": [
                    "sg-0123456789abcdef"
                ]
            },
            "storageConfiguration": {
                "storageSizeGiB": 100
            },
            "monitoring": "basic"
        },
        "propagateTags": "CAPACITY_PROVIDER"
    }
}

capacity provider가 성공적으로 생성되었는지 확인합니다:

aws ecs describe-capacity-providers \
    --capacity-providers my-managed-instances-provider

다음 단계 (Next steps)

capacity provider를 만든 후 서비스를 만들거나 태스크를 실행할 때 사용할 수 있습니다:

  • 서비스와 함께 capacity provider를 사용하려면 Amazon ECS 롤링 업데이트 배포 생성 문서를 참고하세요.
  • 독립 실행형 태스크와 함께 capacity provider를 사용하려면 Amazon ECS 태스크로 애플리케이션 실행 문서를 참고하세요.

더 알아보기 (Learn more)

  • Amazon ECS Managed Instances 인스턴스 요구 사항과 capacity provider 구성에 대한 자세한 내용은 AWS 개발자 가이드의 관련 문서를 참고하세요.