‘인스턴트’ 유형의 EC2 플릿 사용 - Amazon Elastic Compute Cloud

‘인스턴트’ 유형의 EC2 플릿 사용

인스턴트 유형의 EC2 플릿은 원하는 용량을 시작하는 시도를 단 한 번만 하는 동기식 일회성 요청입니다. API 응답에는 시작할 수 없는 인스턴스에 대한 오류와 함께 시작된 인스턴스가 나열됩니다. 인스턴스 유형의 EC2 플릿을 사용하면 몇 가지 이점이 있으며, 이 문서에서는 그러한 이점을 설명합니다. 예제 구성은 문서 끝 부분에 나와 있습니다.

EC2 인스턴스를 시작하기 위해 시작 전용 API가 필요한 워크로드의 경우 RunInstances API를 사용할 수 있습니다. 하지만 RunInstances를 사용할 경우 온디맨드 인스턴스 또는 스팟 인스턴스만 시작할 수 있으며 동일한 요청으로 둘 다 시작할 수는 없습니다. 또한 RunInstances를 사용하여 스팟 인스턴스를 시작할 경우 하나의 인스턴스 유형과 하나의 가용 영역으로 스팟 인스턴스 요청이 제한됩니다. 이는 단일 스팟 용량 풀(인스턴스 유형과 가용 영역이 동일한 미사용 인스턴스의 집합)을 대상으로 합니다. 스팟 용량 풀에 요청을 처리하기에 충분한 스팟 인스턴스 용량이 없는 경우 RunInstances 호출이 실패합니다.

RunInstances를 사용하여 스팟 인스턴스를 시작하는 대신, type 파라미터를 instant로 설정하여 CreateFleet API를 사용하면 다음과 같은 이점을 얻을 수 있습니다.

  • 한 번의 요청으로 온디맨드 인스턴스와 스팟 인스턴스를 모두 시작합니다. EC2 플릿은 온디맨드 인스턴스, 스팟 인스턴스 또는 둘 모두를 시작할 수 있습니다. 스팟 인스턴스에 대한 요청은 요청의 시간당 최대 가격이 현재 스팟 가격을 초과하고 사용 가능한 용량이 있으면 수행됩니다.

  • 스팟 인스턴스의 가용성이 높아집니다. instant 유형의 EC2 플릿을 사용하여 스팟 모범 사례에 따라 스팟 인스턴스를 시작하면 다음과 같은 이점이 있습니다.

    • 스팟 모범 사례: 인스턴스 유형 및 가용 영역에 대한 유연성 유지.

      이점: 여러 인스턴스 유형 및 가용 영역을 지정하면 스팟 용량 풀 수가 늘어납니다. 이렇게 하면 스팟 서비스에서 원하는 스팟 컴퓨팅 용량을 찾고 할당하게 될 가능성이 더 높아집니다. 일반적으로 각 워크로드에 대해 최소 10개의 인스턴스 유형을 유연하게 선택할 수 있어야 하고, 모든 가용 영역이 VPC에 사용하도록 구성되어야 합니다.

    • 스팟 모범 사례: price-capacity-optimized할당 전략 사용

      이점: price-capacity-optimized 할당 전략은 가장 적합한 스팟 용량 풀에서 인스턴스를 식별한 후 이 풀 중에서 가격이 가장 낮은 것에서 인스턴스를 자동으로 프로비저닝합니다. 스팟 인스턴스 용량이 최적의 용량을 가진 풀에서 소싱되기 때문에 Amazon EC2에서 해당 용량을 다시 필요로 하여 스팟 인스턴스가 중지될 가능성이 줄어듭니다.

  • 더욱 다양한 기능 세트에 액세스할 수 있습니다. 시작 전용 API가 필요한 워크로드의 경우나 EC2 플릿이 인스턴스를 관리하도록 하지 않고 인스턴스의 수명 주기를 직접 관리하려는 경우, RunInstances API 대신 instant 유형의 EC2 플릿을 사용합니다. 다음 예에서 보듯이 EC2 플릿은 RunInstances보다 다양한 기능 세트를 제공합니다. 다른 모든 워크로드의 경우, ELB 지원 애플리케이션, 컨테이너화된 워크로드, 대기열 처리 작업 등 다양한 워크로드를 위한 보다 포괄적인 기능 세트를 제공하는 Amazon EC2 Auto Scaling을 사용해야 합니다.

유형이 인스턴트인 EC2 플릿을 사용하여 인스턴스를 용량 블록으로 내보낼 수 있습니다. 자세한 내용은 자습서: 용량 블록으로 인스턴스 내보내기 단원을 참조하십시오.

Amazon EC2 Auto Scaling 및 Amazon EMR과 같은 AWS 서비스는 인스턴트 유형의 EC2 플릿을 사용하여 EC2 인스턴스를 시작합니다.

인스턴트 유형 EC2 플릿의 사전 조건

EC2 플릿 생성을 위한 사전 조건은 EC2 집합 사전 조건 섹션을 참조하세요.

인스턴트 EC2 플릿의 작동 방식

instant 유형의 EC2 플릿으로 작업할 때 발생하는 이벤트 순서는 다음과 같습니다.

  1. CreateFleet 요청 유형을 instant로 구성합니다. 자세한 내용은 EC2 집합 생성 섹션을 참조하세요. API 호출을 한 후에는 수정할 수 없습니다.

  2. API 호출 시 EC2 플릿이 원하는 용량을 얻기 위한 동기식 일회성 요청을 합니다.

  3. API 응답에는 시작할 수 없는 인스턴스에 대한 오류와 함께 시작된 인스턴스가 나열됩니다.

  4. EC2 플릿을 설명하고, EC2 플릿과 연결된 인스턴스를 나열하고, EC2 플릿의 기록을 확인할 수 있습니다.

  5. 인스턴스가 시작된 후 플릿 요청을 삭제할 수 있습니다. 플릿 요청을 삭제할 때 연결된 인스턴스를 종료하거나 실행 상태로 두도록 선택할 수도 있습니다.

  6. 언제든지 인스턴스를 종료할 수 있습니다.

다음 예에서는 다양한 사용 사례에서 instant 유형의 EC2 플릿을 사용하는 방법을 보여줍니다. EC2 CreateFleet API 파라미터 사용에 대한 자세한 내용은 Amazon EC2 API 참조에서 CreateFleet을 참조하세요.

예 1: 용량 최적화 할당 전략을 사용하여 여러 스팟 인스턴스 시작

다음 예에서는 instant 유형의 EC2 플릿에 필요한 파라미터, 즉 시작 템플릿, 목표 용량, 기본 구매 옵션, 시작 템플릿 재정의를 지정합니다.

  • 시작 템플릿은 시작 템플릿 이름과 버전 번호로 식별됩니다.

  • 12개의 시작 템플릿 재정의는 각각 별도의 가용 영역에 있는 4개의 서로 다른 인스턴스 유형과 3개의 서브넷을 지정합니다. 각 인스턴스 유형 및 서브넷 조합은 스팟 용량 풀을 정의하여 12개의 스팟 용량 풀을 생성합니다.

  • 플릿의 목표 용량은 인스턴스 20개입니다.

  • 기본 구매 옵션은 spot으로, 이 옵션을 사용하면 플릿은 시작하는 인스턴스의 수에 대한 최적의 용량을 가진 스팟 용량 풀로 스팟 인스턴스 20개를 시작하려고 시도합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 2: 용량 최적화 할당 전략을 사용하여 단일 스팟 인스턴스 시작

TotalTargetCapacity를 1로 설정하여 instant 유형의 여러 EC2 플릿에 대해 API 호출을 수행하면 한 번에 하나의 스팟 인스턴스를 최적의 용량으로 시작할 수 있습니다.

다음 예에서는 인스턴트 유형의 EC2 플릿에 필요한 파라미터, 즉 시작 템플릿, 목표 용량, 기본 구매 옵션 및 시작 템플릿 재정의를 지정합니다. 시작 템플릿은 시작 템플릿 이름과 버전 번호로 식별됩니다. 12개의 시작 템플릿 재정의는 각각 별도의 가용 영역에 있는 4개의 서로 다른 인스턴스 유형과 3개의 서브넷을 사용합니다. 플릿의 목표 용량이 인스턴스 1개이고 기본 구매 옵션은 스팟입니다. 이 경우 플릿이 용량 최적화 할당 전략에 따라 12개의 스팟 용량 풀 중 하나에서 스팟 인스턴스를 시작함으로써 최적의 용량 풀에서 스팟 인스턴스를 시작하려고 시도합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 3: 인스턴스 가중치를 사용하여 스팟 인스턴스 시작

다음 예제에서는 인스턴스 가중치를 사용하는데, 이는 곧 인스턴스 시간이 기준이 아니라 단위 시간을 기준으로 한 가격이라는 의미입니다. 각 시작 구성에는 한 단위의 워크로드에 15GB의 메모리와 4개의 vCPU가 필요하다고 가정할 때 인스턴스에서 실행할 수 있는 워크로드 단위 수에 따라 서로 다른 인스턴스 유형과 가중치가 나열됩니다. 예를 들어 m5.xlarge(vCPU 4개와 16GB 메모리)는 한 단위를 실행할 수 있으며 가중치가 1이고, m5.2xlarge(vCPU 8개와 32GB 메모리)는 두 단위를 실행할 수 있으며 가중치가 2인 식입니다. 총 목표 용량은 40단위로 설정됩니다. 기본 구매 옵션은 스팟이며 할당 전략은 용량 최적화입니다. 이 경우 용량 최적화 할당 전략에 따라 40개의 m5.xlarge(40 나누기 1), 20개의 m5.2xlarge(40 나누기 2), 10개의 m5.4xlarge(40 나누기 4), 5개의 m5.8xlarge(40 나누기 8) 또는 원하는 용량까지 가중치가 적용된 인스턴스 유형의 조합이 사용됩니다.

자세한 내용은 EC2 집합 인스턴스 가중치 부여 섹션을 참조하세요.

{ "SpotOptions":{ "AllocationStrategy":"capacity-optimized" }, "LaunchTemplateConfigs":[ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"m5.xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":1 }, { "InstanceType":"m5.xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":1 }, { "InstanceType":"m5.xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":1 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":2 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":2 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":2 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":4 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":4 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":4 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":8 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":8 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":8 } ] } ], "TargetCapacitySpecification":{ "TotalTargetCapacity":40, "DefaultTargetCapacityType":"spot" }, "Type":"instant" }

예 4: 단일 가용 영역 내에서 스팟 인스턴스 시작

스팟 옵션 SingleAvailabilityZone을 true로 설정하여 단일 가용 영역에서 모든 인스턴스를 시작하도록 플릿을 구성할 수 있습니다.

12개의 시작 템플릿 재정의는 각각 별도의 가용 영역에 있는 서로 다른 인스턴스 유형과 서브넷을 사용하지만 가중치가 적용된 용량은 동일합니다. 총 목표 용량은 인스턴스 20개이고, 기본 구매 옵션은 스팟이며, 스팟 할당 전략은 용량 최적화입니다. EC2 플릿은 시작 사양을 사용하여 최적의 용량을 가진 스팟 용량 풀에서 단일 AZ의 스팟 인스턴스 20개를 모두 시작합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleAvailabilityZone": true }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 5: 단일 가용 영역 내에서 단일 인스턴스 유형의 스팟 인스턴스 시작

SpotOptions SingleInstanceType을 true로 설정하고, SingleAvailabilityZone을 true로 설정하여 단일 가용 영역에서 동일한 인스턴스 유형의 인스턴스를 모두 시작하도록 플릿을 구성할 수 있습니다.

12개의 시작 템플릿 재정의는 각각 별도의 가용 영역에 있는 서로 다른 인스턴스 유형과 서브넷을 사용하지만 가중치가 적용된 용량은 동일합니다. 총 목표 용량은 인스턴스 20개이고, 기본 구매 옵션은 스팟이며, 스팟 할당 전략은 용량 최적화입니다. EC2 플릿은 시작 사양을 사용하여 최적의 용량을 가진 스팟 인스턴스 풀에서 단일 AZ의 인스턴스 유형이 동일한 스팟 인스턴스 20개를 시작합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "SingleAvailabilityZone": true }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 6: 최소 목표 용량을 시작할 수 있는 경우에만 스팟 인스턴스 시작

스팟 옵션 MinTargetCapacity를 한 번에 시작할 최소 목표 용량으로 설정함으로써 최소 목표 용량을 시작할 수 있는 경우에만 인스턴스를 시작하도록 플릿을 구성할 수 있습니다.

12개의 시작 템플릿 재정의는 각각 별도의 가용 영역에 있는 서로 다른 인스턴스 유형과 서브넷을 사용하지만 가중치가 적용된 용량은 동일합니다. 총 목표 용량과 최소 목표 용량이 모두 인스턴스 20개이고, 기본 구매 옵션은 스팟이며, 스팟 할당 전략은 용량 최적화입니다. EC2 플릿은 20개의 인스턴스를 동시에 시작할 수 있는 경우에만 시작 템플릿 재정의를 사용하여 최적의 용량을 가진 스팟 용량 풀에서 20개의 스팟 인스턴스를 시작합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "MinTargetCapacity": 20 }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 7: 단일 가용 영역에서 동일한 인스턴스 유형으로 최소 목표 용량을 시작할 수 있는 경우에만 스팟 인스턴스 시작

스팟 옵션 MinTargetCapacity를 한 번에 시작할 최소 목표 용량으로 설정하고 SingleInstanceType 및 SingleAvailabilityZone 옵션을 사용함으로써 단일 가용 영역에서 단일 인스턴스 유형으로 최소 목표 용량을 시작할 수 있는 경우에만 인스턴스를 시작하도록 플릿을 구성할 수 있습니다.

시작 템플릿을 재정의하는 12개의 시작 사양은 각각 별도의 가용 영역에 있는 서로 다른 인스턴스 유형과 서브넷을 사용하지만 가중치가 적용된 용량은 동일합니다. 총 목표 용량과 최소 목표 용량이 모두 인스턴스 20개이고, 기본 구매 옵션은 스팟이며, 스팟 할당 전략은 용량 최적화이고, SingleInstanceType과 SingleAvailabilityZone이 true입니다. EC2 플릿은 20개의 인스턴스를 동시에 시작할 수 있는 경우에만 시작 사양을 사용하여 최적의 용량을 가진 스팟 용량 풀에서 단일 AZ의 인스턴스 유형이 동일한 스팟 인스턴스 20개를 시작합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "SingleAvailabilityZone": true, "MinTargetCapacity": 20 }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 8: 여러 시작 템플릿을 사용하여 인스턴스 시작

여러 시작 템플릿을 지정하여 인스턴스 유형 또는 인스턴스 유형 그룹에 따라 서로 다른 시작 사양으로 인스턴스를 시작하도록 플릿을 구성할 수 있습니다. 이 예에서는 인스턴스 유형에 따라 서로 다른 EBS 볼륨 크기를 원하며, 이는 시작 템플릿 ec2-fleet-lt-4xl, ec2-fleet-lt-9xl, ec2-fleet-lt-18xl에 구성되어 있습니다.

이 예에서는 크기에 따라 3개의 인스턴스 유형에 3개의 서로 다른 시작 템플릿을 사용하고 있습니다. 모든 시작 템플릿의 시작 사양 재정의에는 인스턴스 유형의 vCPU 수에 따라 인스턴스 가중치를 사용합니다. 총 목표 용량은 144 단위이고, 기본 구매 옵션은 스팟이며, 스팟 할당 전략은 용량 최적화입니다. EC2 플릿은 용량 최적화 할당 전략에 따라 시작 템플릿 ec2-fleet-4xl을 사용하여 9개의 c5n.4xlarge(144 나누기 16)를 시작하거나, 시작 템플릿 ec2-fleet-9xl을 사용하여 4개의 c5n.9xlarge(144 나누기 36)를 시작하거나, 시작 템플릿 ec2-fleet-18xl을 사용하여 2개의 c5n.18xlarge(144 나누기 72)를 시작하거나, 원하는 용량까지 가중치가 적용된 인스턴스 유형의 조합을 시작할 수 있습니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-18xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":72 }, { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":72 }, { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":72 } ] }, { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-9xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":36 }, { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":36 }, { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":36 } ] }, { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-4xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":16 }, { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":16 }, { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":16 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 144, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 9: 기본 온디맨드 인스턴스를 사용하여 스팟 인스턴스 시작

다음 예제에서는 총 목표 용량인 인스턴스 20개를 플릿에 지정하고 목표 용량은 온디맨드 인스턴스 5개로 지정합니다. 기본 구매 옵션은 스팟입니다. 지정한 대로 플릿은 온디맨드 인스턴스 5개를 시작하지만 총 목표 용량을 충족하려면 인스턴스를 15개 더 시작해야 합니다. 차이에 대한 구매 옵션이 TotalTargetCapacity – OnDemandTargetCapacity = DefaultTargetCapacityType으로 계산되어 플릿이 용량 최적화 할당 전략에 따라 12개의 스팟 용량 풀 중 하나에서 15개의 스팟 인스턴스를 시작합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "OnDemandTargetCapacity": 5, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

예 10: 용량 예약 및 우선 순위별 할당 전략을 사용한 온디맨드 인스턴스를 기반으로 용량 최적화 할당 전략을 사용하여 스팟 인스턴스 시작

용량 예약에 대한 사용 전략을 use-capacity-reservations-first로 설정하여 기본 목표 용량 유형이 스팟인 온디맨드 인스턴스의 기반을 시작할 때 온디맨드 용량 예약부터 사용하도록 플릿을 구성할 수 있습니다. 그리고 여러 인스턴스 풀에 미사용 용량 예약이 있는 경우, 선택한 온디맨드 할당 전략이 적용됩니다. 이 예에서 온디맨드 할당 전략은 우선 순위별입니다.

이 예에서는 사용할 수 있는 미사용 용량 예약이 6개 있습니다. 이는 플릿의 목표 온디맨드 용량인 온디맨드 인스턴스 10개보다 적습니다.

이 계정은 2개의 풀에 다음과 같은 미사용 용량 예약 6개를 가지고 있습니다. 각 풀의 용량 예약 수는 AvailableInstanceCount로 표시됩니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" }

다음 플릿 구성에서는 이 예제와 관련된 구성만 보여 줍니다. 온디맨드 할당 전략은 우선 순위별이고, 용량 예약의 사용 전략은 use-capacity-reservations-first입니다. 스팟 할당 전략은 용량 최적화입니다. 총 목표 용량은 20이고, 온디맨드 목표 용량은 10이며, 기본 목표 용량 유형은 스팟입니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "OnDemandOptions":{ "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" }, "AllocationStrategy":"prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab", "Priority": 2.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922", "Priority": 3.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380", "Priority": 4.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab", "Priority": 5.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922", "Priority": 6.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380", "Priority": 7.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab", "Priority": 8.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922", "Priority": 9.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380", "Priority": 10.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab", "Priority": 11.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922", "Priority": 12.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "OnDemandTargetCapacity": 10, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

이전 구성을 사용하여 인스턴트 플릿을 생성하면 목표 용량을 충족하기 위해 다음 20개의 인스턴스가 시작됩니다.

  • us-east-1a의 c5.large 온디맨드 인스턴스 7개 – us-east-1a의 c5.large가 첫 번째 우선 순위이고 사용 가능한 미사용 c5.large 용량 예약은 3개입니다. 먼저 용량 예약을 사용하여 온디맨드 인스턴스 3개를 시작하고, 온디맨드 할당 전략(이 예에서는 우선 순위별)에 따라 4개의 온디맨드 인스턴스를 추가로 시작합니다.

  • us-east-1a의 m5.large 온디맨드 인스턴스 3개 – us-east-1a의 m5.large가 두 번째 우선 순위이고 사용 가능한 미사용 c3.large 용량 예약은 3개입니다.

  • 용량 최적화 할당 전략에 따라 최적의 용량을 가진 12개의 스팟 용량 풀 중 하나에서 10개의 스팟 인스턴스를 시작합니다.

플릿이 시작된 후, describe-capacity-reservations를 실행하여 미사용 용량 예약이 몇 개나 남아 있는지 확인할 수 있습니다. 이 예에서는 c5.large 및 m5.large 용량 예약이 모두 사용되었음을 보여주는 다음과 같은 응답이 나타납니다.

{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "AvailableInstanceCount": 0 }

예 11: capacity-optimized-prioritized 할당 전략을 사용하여 스팟 인스턴스 시작

다음 예에서는 인스턴트 유형의 EC2 플릿에 필요한 파라미터, 즉 시작 템플릿, 목표 용량, 기본 구매 옵션 및 시작 템플릿 재정의를 지정합니다. 시작 템플릿은 시작 템플릿 이름과 버전 번호로 식별됩니다. 시작 템플릿을 재정의하는 12개의 시작 사양은 각각 별도의 가용 영역에 있는 4개의 서로 다른 인스턴스 유형(우선 순위가 서로 다름)과 3개의 서브넷을 사용합니다. 플릿의 목표 용량이 20개의 인스턴스이고 기본 구매 옵션은 스팟이므로, 플릿이 최선을 다해 우선 순위를 구현하지만 용량을 최우선으로 하는 capacity-optimized-prioritized 할당 전략에 따라 12개의 스팟 용량 풀 중 하나에서 20개의 스팟 인스턴스를 시작하려고 시도합니다.

{ "SpotOptions": { "AllocationStrategy": "capacity-optimized-prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922", "Priority": 1.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380", "Priority": 2.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab", "Priority": 2.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922", "Priority": 2.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380", "Priority": 3.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab", "Priority": 3.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922", "Priority": 3.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380", "Priority": 4.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab", "Priority": 4.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922", "Priority": 4.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }