속성 기반 인스턴스 유형 선택을 사용하여 혼합 인스턴스 그룹 생성 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

속성 기반 인스턴스 유형 선택을 사용하여 혼합 인스턴스 그룹 생성

혼합 인스턴스 그룹을 위한 인스턴스 유형을 수작업으로 선택하는 대신 컴퓨팅 요건을 기술하는 인스턴스 속성 집합을 지정할 수 있습니다. Amazon EC2 Auto Scaling이 인스턴스를 시작할 때 Auto Scaling 그룹에서 사용하는 모든 인스턴스 유형은 필요한 인스턴스 속성과 일치해야 합니다. 이를 속성 기반 인스턴스 유형 선택이라고 합니다.

이 접근 방식은 컨테이너, 빅 데이터 및 CI/CD와 같이 사용하는 인스턴스 유형에 대해 유연한 워크로드 및 프레임워크에 이상적입니다.

속성 기반 인스턴스 유형을 선택하면 다음과 같은 이점이 있습니다.

  • 스팟 인스턴스를 위한 최적의 유연성 - Amazon EC2 Auto Scaling은 스팟 인스턴스를 시작하기 위해 다양한 인스턴스 유형 중에서 선택할 수 있습니다. 이렇게 하면 인스턴스 유형에 대해 유연하게 대처하는 스팟 모범 사례를 충족하므로 Amazon EC2 Spot 서비스에서 필요한 컴퓨팅 용량을 찾고 할당할 수 있는 더 나은 기회를 얻을 수 있습니다.

  • 쉽게 올바른 인스턴스 유형 사용 - 사용 가능한 인스턴스 유형이 너무 많기 때문에 워크로드에 적합한 인스턴스 유형을 찾는 데 시간이 많이 걸릴 수 있습니다. 인스턴스 속성을 지정하면 인스턴스 유형에는 워크로드에 필요한 속성이 자동으로 포함됩니다.

  • 새로운 인스턴스 유형 자동 사용 - Auto Scaling 그룹은 릴리스되는 최신 세대 인스턴스 유형을 사용할 수 있습니다. 최신 세대 인스턴스 유형은 요건과 일치하고 Auto Scaling 그룹에 대해 선택한 할당 전략과 일치하면 자동으로 사용됩니다.

속성 기반 인스턴스 유형 선택 작동 방법

속성 기반 인스턴스 유형 선택을 통해 특정 인스턴스 유형 목록을 제공하는 대신 인스턴스에 필요한 다음과 같은 인스턴스 속성 목록을 제공합니다.

  • vCPU 수 - 인스턴스당 최소 및 최대 vCPUs 수입니다.

  • 메모리 - 인스턴스당 메모리의 최소 및 최대 GiBs 입니다.

  • 로컬 스토리지 - 로컬 스토리지에 EBS 또는 인스턴스 스토어 볼륨을 사용할지 여부입니다.

  • 성능 버스트 기능 – T4g, T3a, T3 및 T2 유형을 포함한 T 인스턴스 패밀리를 사용할지 여부입니다.

인스턴스 요구 사항을 정의하는 데 사용할 수 있는 옵션이 많이 있습니다. 각 옵션 및 기본값에 대한 설명은 Amazon InstanceRequirements Auto Scaling Word 참조의 Word를 참조하세요. EC2 Auto Scaling API

Auto Scaling 그룹이 인스턴스를 시작해야 하는 경우 지정된 속성과 일치하고 해당 가용 영역에서 사용할 수 있는 인스턴스 유형을 검색합니다. 할당 전략에 따라 매칭 인스턴스 중에서 시작할 인스턴스 유형이 결정됩니다. 기본적으로 속성 기반 인스턴스 유형 선택에는 Auto Scaling 그룹이 예산 임곗값을 초과하는 인스턴스 유형을 시작하지 못하도록 가격 보호 기능이 활성화되어 있습니다.

기본적으로 Auto Scaling 그룹의 원하는 용량을 설정할 때 인스턴스 수를 측정 단위로 사용합니다. 즉, 각 인스턴스는 하나의 단위로 계산됩니다.

또는 원하는 용량의 값을 vCPUs 수 또는 메모리 양으로 설정할 수 있습니다. 이렇게 하려면에서 원하는 용량 유형 드롭다운 필드를 사용하고 AWS Management Console 또는 CreateAutoScalingGroup UpdateAutoScalingGroup API 작업에서 DesiredCapacityType 속성을 사용합니다. 그런 다음 Amazon EC2 Auto Scaling은 원하는 vCPU 또는 메모리 용량을 충족하는 데 필요한 인스턴스 수를 시작합니다. 예를 들어, 원하는 용량 유형으로 vCPUs 를 사용하고 각각 2 vCPUs 가 있는 인스턴스를 사용하는 경우 원하는 용량인 10 vCPUs 가 인스턴스 5개를 시작합니다. 이는 인스턴스 가중치에 대한 유용한 대안입니다.

가격 보호

가격 보호를 사용하면 Auto Scaling 그룹에서 시작한 EC2 인스턴스에 대해 지불할 최대 가격을 지정할 수 있습니다. 가격 보호는 Auto Scaling 그룹이 사용자가 지정한 속성에 적합하더라도 너무 비싼 인스턴스 유형을 사용하지 못하게 방지하는 기능입니다.

가격 보호는 기본적으로 활성화되어 있으며 온디맨드 인스턴스와 스팟 인스턴스에 대해 별도의 가격 임곗값이 있습니다. Amazon EC2 Auto Scaling에서 새 인스턴스를 시작해야 하는 경우 관련 임계값을 초과하는 인스턴스 유형은 시작되지 않습니다.

온디맨드 가격 보호

온디맨드 인스턴스의 경우 식별된 온디맨드 가격보다 더 높은 비율로 지불할 최대 온디맨드 가격을 정의합니다. 식별된 온디맨드 가격은 지정된 속성이 있는 최저 가격의 현재 세대 C, M 또는 R 인스턴스 유형의 가격입니다.

온디맨드 가격 보호 값이 명시적으로 정의되지 않은 경우, 식별된 온디맨드 가격보다 20% 높은 기본 최대 온디맨드 가격이 사용됩니다.

스팟 가격 보호

기본적으로 Amazon EC2 Auto Scaling은 최적의 스팟 인스턴스 가격 보호를 자동으로 적용하여 다양한 인스턴스 유형에서 일관되게 선택합니다. 가격 보호를 직접 수동으로 설정할 수도 있습니다. 하지만 Amazon EC2 Auto Scaling을 사용하면 스팟 용량이 충족될 가능성을 높일 수 있습니다.

다음 옵션 중 하나를 사용하여 가격 보호를 수동으로 지정할 수 있습니다. 가격 보호를 수동으로 설정하는 경우 첫 번째 옵션을 사용하는 것이 좋습니다.

  • 식별된 온디맨드 가격의 비율 - 식별된 온디맨드 가격은 지정된 속성이 있는 최저 가격의 현재 세대 C, M 또는 R 인스턴스 유형의 가격입니다.

  • 식별된 스팟 가격보다 높은 비율 - 식별된 스팟 가격은 지정된 속성이 있는 최저 가격의 현재 세대 C, M 또는 R 인스턴스 유형의 가격입니다. 스팟 가격은 변동될 수 있어 가격 보호 기준도 변동될 수 있으므로 이 옵션을 사용하지 않는 것이 좋습니다.

가격 보호 사용자 지정

Amazon EC2 Auto Scaling 콘솔 또는 AWS CLI 또는 SDKs를 사용하여 가격 보호 임계값을 사용자 지정할 수 있습니다.

  • 콘솔에서 추가 인스턴스 속성온디맨드 가격 보호스팟 가격 보호 설정을 사용합니다.

  • InstanceRequirements 구조에서 온디맨드 인스턴스 가격 보호 임계값을 지정하려면 OnDemandMaxPricePercentageOverLowestPrice 속성을 사용합니다. 스팟 인스턴스 가격 보호 임곗값을 지정하려면 MaxSpotPriceAsPercentageOfOptimalOnDemandPrice 또는 SpotMaxPricePercentageOverLowestPrice 속성을 사용합니다.

원하는 용량 유형(DesiredCapacityType)을 vCPUs 또는 메모리 GiB로 설정하면 인스턴스당 가격 대신 vCPU당 또는 메모리당 가격을 기준으로 가격 보호가 적용됩니다.

가격 보호를 끌 수도 있습니다. 가격 보호 기준이 없음을 나타내려면 999999와 같은 높은 백분율 값을 지정합니다.

참고

현재 세대 C, M 또는 R 인스턴스 유형이 지정된 속성과 일치하지 않는 경우에도 가격 보호가 적용됩니다. 일치하는 항목이 없는 경우 식별된 가격은 가장 저렴한 현재 세대 인스턴스 유형에서 가져온 것이거나 속성과 일치하는 가장 저렴한 이전 세대 인스턴스 유형에서 가져온 것입니다.

성능 보호

성능 보호는 Auto Scaling 그룹이 지정된 성능 기준과 비슷하거나 초과하는 인스턴스 유형을 사용하도록 하는 기능입니다. 성능 보호를 사용하려면 인스턴스 패밀리를 기준 참조로 지정합니다. 지정된 인스턴스 패밀리의 기능은 허용 가능한 최저 수준의 성능을 설정합니다. Auto Scaling이 인스턴스 유형을 선택하면 지정된 속성과 성능 기준을 고려합니다. 성능 기준보다 낮은 인스턴스 유형은 다른 지정된 속성과 일치하는 경우에도 선택에서 자동으로 제외됩니다. 이렇게 하면 선택한 모든 인스턴스 유형이 지정된 인스턴스 패밀리에서 설정한 기준과 비슷하거나 더 나은 성능을 제공할 수 있습니다. Auto Scaling은이 기준을 사용하여 인스턴스 유형 선택을 안내하지만 선택한 인스턴스 유형이 모든 애플리케이션의 기준을 항상 초과한다는 보장은 없습니다.

현재이 기능은 CPU 성능만 기준 성능 인자로 지원합니다. 지정된 인스턴스 패밀리의 CPU 성능은 성능 기준 역할을 하여 선택한 인스턴스 유형이이 기준과 유사하거나 이를 초과하도록 합니다. 동일한 CPU 프로세서를 사용하는 인스턴스 패밀리는 네트워크 또는 디스크 성능이 다르더라도 동일한 필터링 결과를 가져옵니다. 예를 들어 c6in 또는를 기준 참조c6i로 지정하면 두 인스턴스 패밀리가 동일한 CPU 프로세서를 사용하기 때문에 동일한 성능 기반 필터링 결과가 생성됩니다.

지원되지 않는 인스턴스 패밀리

다음 인스턴스 패밀리는 성능 보호에 지원되지 않습니다.

  • c1

  • g3 | g3s

  • hpc7g

  • m1 | m2

  • mac1 | mac2 | mac2-m1ultra | mac2-m2 | mac2-m2pro

  • p3dn | p4d | p5

  • t1

  • u-12tb1 | u-18tb1 | u-24tb1 | u-3tb1 | u-6tb1 | u-9tb1 | u7i-12tb | u7in-16tb | u7in-24tb | u7in-32tb

지원되는 인스턴스 패밀리를 지정하여 성능 보호를 활성화하면 반환된 인스턴스 유형은 지원되지 않는 위의 인스턴스 패밀리를 제외합니다.

예: CPU 성능 기준 설정

다음 예제에서 인스턴스 요구 사항은 인스턴스 패밀리만큼 성능이 뛰어난 CPU 코어가 있는 c6i 인스턴스 유형으로 시작하는 것입니다. 이렇게 하면 CPU 수와 같은 다른 지정된 인스턴스 요구 사항을 충족하더라도 성능이 낮은 vCPUs 프로세서로 인스턴스 유형을 필터링합니다. 예를 들어 지정된 인스턴스 속성에 4 vCPUs 및 16GB 메모리가 포함된 경우 이러한 속성이 있지만 CPU 성능이 낮은 인스턴스 유형은 선택에서 c6i 제외됩니다.

"BaselinePerformanceFactors": { "Cpu": { "References": [ { "InstanceFamily": "c6i" } ] }
고려 사항

성능 보호를 사용할 때는 다음 사항을 고려하세요.

  • 인스턴스 유형 또는 인스턴스 속성을 지정할 수 있지만 둘 다 동시에 지정할 수는 없습니다.

  • 요청 구성에서 최대 4개의 InstanceRequirements 구조를 지정할 수 있습니다.

사전 조건

속성 기반 인스턴스 유형 선택을 사용하여 혼합 인스턴스 그룹 생성(콘솔)

속성 기반 인스턴스 유형 선택을 사용하여 혼합 인스턴스 그룹을 만들려면 다음 절차를 따르세요. 단계를 효율적으로 진행하는 데 도움이 되도록 일부 선택 사항 섹션은 생략했습니다.

대부분의 범용 워크로드의 경우 필요한 vCPUs 및 메모리 수를 지정하는 것으로 충분합니다. 고급 사용 사례의 경우 스토리지 유형, 네트워크 인터페이스, CPU 제조업체 및 액셀러레이터 유형과 같은 속성을 지정할 수 있습니다.

혼합 인스턴스 그룹의 모범 사례를 검토하려면 혼합 인스턴스 그룹 생성을 위한 설정 개요 섹션을 참조하세요.

혼합 인스턴스 그룹을 생성하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling Groups를 선택합니다.

  2. 화면 상단의 탐색 모음에서 시작 템플릿을 만들 때 사용한 지역과 동일한 AWS 리전 을 선택합니다.

  3. Create an Auto Scaling group(Auto Scaling 그룹 생성)을 선택합니다.

  4. 시작 템플릿 또는 구성 선택 페이지에서 Auto Scaling group name(Auto Scaling 그룹 명칭)에 Auto Scaling 그룹의 이름을 입력합니다.

  5. 시작 템플릿을 선택하려면 다음을 수행하십시오:

    1. 시작 템플릿에서 기존 시작 템플릿을 선택합니다.

    2. Launch template version(시작 템플릿 버전)에서 Auto Scaling 그룹이 스케일 아웃 시 시작 템플릿의 기본 버전을 사용할지, 최신 버전을 사용할지, 아니면 특정 버전을 사용할지를 선택합니다.

    3. 시작 템플릿이 사용하려는 모든 옵션을 지원하는지 확인한 후 다음을 선택합니다.

  6. 인스턴스 시작 옵션 선택 페이지에서 다음을 선택합니다:

    1. 인스턴스 유형 요건(Instance type requirements)에서 시작 템플릿 재정의(Override launch template)를 선택합니다.

      참고

      vCPUs 및 메모리와 같은 인스턴스 속성 집합이 이미 포함된 시작 템플릿을 선택하면 인스턴스 속성이 표시됩니다. 이러한 속성은 Auto Scaling 그룹 속성에 추가되며, Amazon EC2 Auto Scaling 콘솔에서 언제든지 업데이트할 수 있습니다.

    2. 인스턴스 속성 지정에서 먼저 vCPUs 및 메모리 요구 사항을 입력합니다.

      • vCPUs에 원하는 최소 및 최대 vCPUs 수를 입력합니다. 무한을 지정하려면 최소 없음(No minimum), 최대 없음(No maximum) 또는 둘 다 선택합니다.

      • 메모리(GiB)(Memory (GiB))에 원하는 최소 및 최대 메모리 양을 입력합니다. 무한을 지정하려면 최소 없음(No minimum), 최대 없음(No maximum) 또는 둘 다 선택합니다.

    3. (선택 사항) 추가 인스턴스 속성(Additional instance attributes)에서 필요에 따라 하나 이상의 속성을 지정하여 컴퓨팅 요구 사항을 더 자세히 표현할 수 있습니다. 각 추가 속성은 요청에 제약 조건을 추가합니다.

    4. 지정한 속성을 가진 인스턴스 유형을 보려면 일치하는 인스턴스 유형 미리 보기를 확장합니다.

    5. 인스턴스 구매 옵션에서 인스턴스 배포에 대해 각각 온디맨드 인스턴스로 및 스팟 인스턴스로 시작시킬 그룹의 백분율을 지정합니다. 귀하의 애플리케이션이 무상태이고 내결함성이 있으며 중단되는 인스턴스를 처리할 수 있는 경우, 귀하는 더 높은 백분율의 스팟 인스턴스를 지정할 수 있습니다.

    6. (옵션) 스팟 인스턴스를 위한 백분율을 지정할 때 온디맨드 기본 용량 포함란을 선택한 다음 온디맨드 인스턴스가 충족해야 하는 Auto Scaling 그룹 초기 용량의 최소량을 지정하십시오. 기본 용량을 초과하는 용량은 인스턴스 배치(Instances distribution) 설정을 사용하여 시작할 온디맨드 인스턴스 및 스팟 인스턴스 수를 결정합니다.

    7. 할당 전략(Allocation strategies) 아래에서 온디맨드 할당 전략(On-Demand allocation strategy)에 대해 최저가(Lowest price)가 자동으로 선택되며 변경할 수 없습니다.

    8. 스팟 할당 전략(Spot allocation strategy)에서 할당 전략을 선택합니다. Price capacity optimized(가격 용량 최적화)가 기본적으로 선택됩니다. Lowest price(최저가)는 기본적으로 숨겨져 있으며 Show all strategies(모든 전략 보기)를 선택한 경우에만 표시됩니다. 최저가를 선택한 경우, 최저가 풀의 수를 입력하여 최저가 풀을 분산합니다.

    9. 용량 재조정에서 용량 재조정을 활성화 또는 비활성화할지 선택합니다. 용량 재조정을 사용하여 스팟 중단으로 인해 스팟 인스턴스가 해지되려 할 때 자동화를 통해 대응하십시오. 자세한 내용은 용량 재조정을 사용하여 Amazon EC2 스팟 중단 처리 단원을 참조하십시오.

    10. 네트워크, VPC에서 VPC를 선택합니다. Auto Scaling 그룹은 시작 템플릿에 지정한 보안 그룹과 동일한 VPC로 생성해야 합니다.

    11. 가용 영역 및 서브넷에서 지정된 VPC에서 하나 이상의 서브넷을 선택합니다. 여러 가용 영역의 서브넷을 사용하여 가용성을 높일 수 있습니다. 자세한 설명은 VPC 서브넷 선택 시 고려 사항 섹션을 참조하세요.

    12. 다음, 다음을 선택합니다.

  7. 그룹 크기 및 조정 정책 구성 단계에서는 다음을 수행하십시오:

    1. 원하는 용량을 인스턴스 이외의 다른 단위로 측정하려면, 그룹 크기, 원하는 용량 유형에서 적절한 옵션을 선택합니다. 단위, vCPUs메모리 GiB가 지원됩니다. 기본적으로 Amazon EC2 Auto Scaling은 인스턴스 수로 변환되는 단위를 지정합니다.

    2. 원하는 용량이란 Auto Scaling 그룹의 최초 크기입니다.

    3. 스케일링 섹션의 스케일링 제한에서 희망 용량에 대한 새 값이 최소 희망 용량최대 희망 용량보다 큰 경우, 최대 희망 용량은 자동으로 새 희망 용량 값으로 증가합니다. 필요에 따라 이러한 한도를 변경할 수 있습니다. 자세한 설명은 Auto Scaling 그룹에 대한 스케일링 제한 설정 섹션을 참조하세요.

  8. Skip to review(검토로 건너뛰기)를 선택합니다.

  9. 검토(Review) 페이지에서 Auto Scaling 그룹 생성(Create Auto Scaling group)을 선택합니다.

속성 기반 인스턴스 유형 선택을 사용하여 혼합 인스턴스 그룹 생성(AWS CLI)

명령행을 사용하여 혼합 인스턴스 그룹을 생성하려면

다음 명령 중 하나를 사용합니다.

구성의 예

를 사용하여 속성 기반 인스턴스 유형 선택으로 Auto Scaling 그룹을 생성하려면 다음 create-auto-scaling-group 명령을 AWS CLI사용합니다.

다음과 같은 인스턴스 속성이 지정됩니다.

  • VCpuCount - 인스턴스 유형에는 최소 4개의 vCPUs와 최대 8개의 vCPUs가 있어야 합니다.

  • MemoryMiB - 인스턴스 유형에 최소 16,384MiB의 메모리가 있어야 새 시작 템플릿 버전을 생성하지 않은 경우합니다.

  • CpuManufacturers - 인스턴스 유형에 Intel에서 제조한 CPU가 있어야 합니다.

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

다음은 예 config.json 파일입니다.

{ "AutoScalingGroupName": "my-asg", "DesiredCapacityType": "units", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": {"Min": 4, "Max": 8}, "MemoryMiB": {"Min": 16384}, "CpuManufacturers": ["intel"] } }] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 4, "DesiredCapacityType": "units", "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" }

원하는 용량의 값을 vCPUs 수 또는 메모리 양으로 설정하려면 파일"DesiredCapacityType": "memory-mib"에서 "DesiredCapacityType": "vcpu" 또는를 지정합니다. 기본 원하는 용량 유형은 원하는 용량 값을 인스턴스 수로 설정하는 units입니다.

또는 다음 create-auto-scaling-group 명령을 사용하여 Auto Scaling 그룹을 생성할 수 있습니다. 이는 YAML 파일을 Auto Scaling 그룹의 유일한 파라미터로 참조합니다.

aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml

다음은 예 config.yaml 파일입니다.

--- AutoScalingGroupName: my-asg DesiredCapacityType: units MixedInstancesPolicy: LaunchTemplate: LaunchTemplateSpecification: LaunchTemplateName: my-launch-template Version: $Default Overrides: - InstanceRequirements: VCpuCount: Min: 2 Max: 4 MemoryMiB: Min: 2048 CpuManufacturers: - intel InstancesDistribution: OnDemandPercentageAboveBaseCapacity: 50 SpotAllocationStrategy: price-capacity-optimized MinSize: 0 MaxSize: 100 DesiredCapacity: 4 DesiredCapacityType: units VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782

원하는 용량의 값을 vCPUs 수 또는 메모리 양으로 설정하려면 파일DesiredCapacityType: memory-mib에서 DesiredCapacityType: vcpu 또는를 지정합니다. 기본 원하는 용량 유형은 원하는 용량 값을 인스턴스 수로 설정하는 units입니다.

인스턴스 유형 미리 보기

컴퓨팅 요건과 일치하는 인스턴스 유형을 시작하지 않고 미리 보고 필요한 경우, 요건을 조정할 수 있습니다. Amazon EC2 Auto Scaling 콘솔에서 Auto Scaling 그룹을 생성할 때 인스턴스 시작 옵션 선택 페이지의 일치하는 인스턴스 유형 미리 보기 섹션에 인스턴스 유형 미리 보기가 나타납니다.

또는 AWS CLI 또는 Word를 사용하여 Amazon EC2 GetInstanceTypesFromInstanceRequirementsAPI 직접 호출하여 인스턴스 유형을 미리 볼 수 있습니다SDK. Auto Scaling 그룹을 생성하거나 업데이트하는 데 사용할 정확한 형식으로 InstanceRequirements 파라미터를 요청에 전달합니다. 자세한 내용은 Amazon EC2 사용 설명서지정된 속성이 있는 인스턴스 유형 미리 보기를 참조하세요.

속성 기반 인스턴스 유형 선택에 대한 자세한 내용은 AWS 블로그의 EC2 Auto Scaling 및 EC2 Fleet에 대한 속성 기반 인스턴스 유형 선택을 참조하세요.

AWS CloudFormation을 사용하여 Auto Scaling 그룹을 생성할 때 속성 기반 인스턴스 유형 선택을 선언할 수 있습니다. 자세한 설명은 AWS CloudFormation 사용자 가이드Auto Scaling 템플릿 스니펫에서 예 스니펫을 참조하세요.