CLIBeispielkonfigurationen Spot Fleet - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CLIBeispielkonfigurationen Spot Fleet

Sie können Ihre Spot-Flotte-Konfiguration in einer JSON Datei definieren und dann mithilfe der Datei auf diese Datei verweisen request-spot-fleet AWS CLI Befehl, um Ihre Flotte wie folgt zu erstellen:

aws ec2 request-spot-fleet --spot-fleet-request-config file://file_name.json

Die folgenden Beispiele veranschaulichen Startkonfigurationen für verschiedene Anwendungsfälle von Spot Fleet. Weitere Informationen zu den Konfigurationsparametern finden Sie request-spot-fleetin der AWS CLI Befehlsreferenz. Weitere Informationen zum Erstellen einer Spot-Flotte finden Sie unterErstellen einer Spot-Flotte.

Anmerkung

Für eine Spot-Flotte können Sie in einer Startvorlage oder Startspezifikation keine Netzwerkschnittstellen-ID angeben. Achten Sie darauf, dass Sie den NetworkInterfaceID-Parameter in Ihrer Startvorlage oder -spezifikation weglassen.

Beispiel 1: Starten von Spot-Instances mit der kostengünstigsten Availability Zone oder dem kostengünstigsten Subnetz in der Region

Das folgende Beispiel gibt eine einzelne Startspezifikation ohne eine Availability Zone oder ein Subnetz an. Die Spot-Flotte startet die Instances in der kostengünstigsten Availability Zone mit einem Standard-Subnetz. Der Preis, den Sie zahlen, wird den On-Demand-Preis nicht überschreiten.

{ "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

Beispiel 2: Starten von Spot-Instances mit der kostengünstigsten Availability Zone oder dem kostengünstigsten Subnetz in einer angegebenen Liste

In den folgenden Beispielen werden zwei Startspezifikationen mit unterschiedlichen Availability Zones oder Subnetzen, aber demselben Instance-Typ und AMI angegeben.

Availability Zones

Die Spot-Flotte startet die Instances in dem Standard-Subnetz der kostengünstigsten Availability Zone, die Sie angegeben haben.

{ "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a, us-west-2b" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

Subnets

Sie können Standardsubnetze oder nicht standardmäßige Subnetze angeben, und bei den nicht standardmäßigen Subnetzen kann es sich um Standardsubnetze oder nicht standardmäßige Subnetze handeln. VPC VPC Der Spot-Service startet die Instances in dem Subnetz in der kostengünstigsten Availability Zone.

Sie können in einer Spot-Flotten-Anforderung nicht verschiedene Subnetze in derselben Availability Zone angeben.

{ "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "SubnetId": "subnet-a61dafcf, subnet-65ea5f08", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

Wenn die Instances standardmäßig gestartet werdenVPC, erhalten sie standardmäßig eine öffentliche Adresse. IPv4 Wenn die Instances nicht standardmäßig gestartet werdenVPC, erhalten sie standardmäßig keine öffentliche IPv4 Adresse. Verwenden Sie eine Netzwerkschnittstelle in der Startspezifikation, um Instances, die nicht VPC standardmäßig gestartet wurden, eine öffentliche IPv4 Adresse zuzuweisen. Wenn Sie eine Netzwerkschnittstelle angeben, müssen Sie die Subnetz-ID und die Sicherheitsgruppen-ID mithilfe der Netzwerkschnittstelle angeben.

... { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "DeviceIndex": 0, "SubnetId": "subnet-1a2b3c4d", "Groups": [ "sg-1a2b3c4d" ], "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" } } ...

Beispiel 3: Starten von Spot-Instances mit dem kostengünstigsten Instance-Typ in einer angegebenen Liste

Die folgenden Beispiele spezifizieren zwei Startkonfigurationen mit unterschiedlichen, aber identischen Instance-Typen AMI und Availability Zone oder Subnetz. Die Spot-Flotte startet die Instances mit dem angegebenen Instance-Typ mit dem niedrigsten Preis.

Availability Zone

{ "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "c5.4xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "r3.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] }

Subnetz

{ "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "c5.4xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "r3.8xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

Beispiel 4. Außerkraftsetzen des Preises für die Anforderung

Es wird empfohlen, den Standard-Höchstpreis zu verwenden, bei dem es sich um den On-Demand-Preis handelt. Wenn Sie es vorziehen, können Sie einen Höchstpreis für die Flottenanforderung und Höchstpreise für einzelne Startspezifikationen angeben.

Die folgenden Beispiele geben einen Höchstpreis für die Flottenanforderung und Höchstpreise für zwei oder drei Startspezifikationen an. Der Höchstpreis für die Flottenanforderung wird für alle Startspezifikationen verwendet, die keinen Höchstpreis angeben. Die Spot-Flotte startet die Instances mit dem Instance-Typ mit dem niedrigsten Preis.

Availability Zone

{ "SpotPrice": "1.00", "TargetCapacity": 30, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "SpotPrice": "0.10" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.4xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "SpotPrice": "0.20" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.8xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] }

Subnetz

{ "SpotPrice": "1.00", "TargetCapacity": 30, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.2xlarge", "SubnetId": "subnet-1a2b3c4d", "SpotPrice": "0.10" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.4xlarge", "SubnetId": "subnet-1a2b3c4d", "SpotPrice": "0.20" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.8xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

Beispiel 5: Starten einer Spot-Flotte mit der diversifizierten Zuweisungsstrategie

Im folgenden Beispiel wird die Zuweisungsstrategie diversified verwendet. Die Startspezifikationen haben unterschiedliche Instance-Typen, aber dieselben Instance-Typen AMI und Availability Zone oder Subnetz. Die Spot-Flotte verteilt die 30 Instances auf die drei Startspezifikationen, sodass 10 Instances von jedem Typ vorhanden sind. Weitere Informationen finden Sie unter Ermitteln Sie anhand von Zuweisungsstrategien, wie EC2 Fleet oder Spot-Flotte die Spot- und On-Demand-Kapazitäten ausschöpfen.

Availability Zone

{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] }

Subnetz

{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

Eine bewährte Methode, um die Wahrscheinlichkeit zu erhöhen, dass eine Spot-Anfrage bei einem Ausfall in einer der Availability Zones anhand der EC2 Kapazität erfüllt werden kann, besteht darin, die einzelnen Zonen zu diversifizieren. Für dieses Szenario müssen Sie jede verfügbare Availability Zone in die Startspezifikation einfügen. Und anstatt jedes Mal dasselbe Subnetz zu verwenden, sollten Sie drei eindeutige Subnetze verwenden (die jeweils einer anderen Zone zugeordnet sind).

Availability Zone

{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2c" } } ] }

Subnetz

{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "SubnetId": "subnet-2a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-3a2b3c4d" } ] }

Beispiel 6: Starten einer Spot-Flotte mit Instance-Gewichtung

Die folgenden Beispiele verwenden die Instance-Gewichtung, d. h. der Preis versteht sich pro Einheitsstunde anstatt pro Instance-Stunde. Jede Startkonfigurationen listet einen anderen Instance-Typ und eine andere Gewichtung auf. Die Spot-Flotte wählt den Instance-Typ mit dem niedrigsten Preis pro Einheitsstunde aus. Die Spot-Flotte berechnet die Anzahl der zu startenden Spot-Instances, indem die Zielkapazität durch die Instance-Gewichtung dividiert wird. Wenn es sich beim Ergebnis nicht um eine Ganzzahl handelt, rundet die Spot-Flotte es auf die nächste Ganzzahl auf, damit die Größe Ihrer Flotte nicht unter der Zielkapazität liegt.

Wenn die r3.2xlarge-Anforderung erfolgreich ist, stellt Spot 4 dieser Instances bereit. 20 geteilt durch 6 ergibt insgesamt 3,33 Instances; dies wird auf 4 Instances aufgerundet.

Wenn die c3.xlarge-Anforderung erfolgreich ist, stellt Spot 7 dieser Instances bereit. 20 geteilt durch 3 ergibt insgesamt 6,66 Instances; dies wird auf 7 Instances aufgerundet.

Weitere Informationen finden Sie unter Verwenden Sie die Instance-Gewichtung, um die Kosten und die Leistung Ihrer EC2 Flotte oder Spot-Flotte zu verwalten.

Availability Zone

{ "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "WeightedCapacity": 6 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, "WeightedCapacity": 3 } ] }

Subnetz

{ "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d", "WeightedCapacity": 6 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "c3.xlarge", "SubnetId": "subnet-1a2b3c4d", "WeightedCapacity": 3 } ] }

Beispiel 7: Starten einer Spot-Flotte mit On-Demand-Kapazität

Um sicherzustellen, dass Sie immer über Instance-Kapazität verfügen, können Sie eine Anforderung nach On-Demand-Kapazität in Ihre Spot-Flotten-Anforderung aufnehmen. Wenn Kapazität vorhanden ist, ist die On-Demand-Anfrage immer erfüllt. Der Saldo der Zielkapazität wird als Spot erfüllt, wenn Kapazität und Verfügbarkeit vorhanden sind.

Das folgende Beispiel gibt die gewünschte Zielkapazität als 10 an, von denen 5 On-Demand-Kapazität sein müssen. Die Spot-Kapazität wird nicht angegeben; sie ergibt sich aus dem Betrag der Zielkapazität abzüglich der On-Demand-Kapazität. Amazon EC2 bringt 5 Kapazitätseinheiten als On-Demand-Version und 5 Kapazitätseinheiten (10-5=5) als Spot-Version auf den Markt, sofern EC2 Amazon-Kapazität und -Verfügbarkeit verfügbar sind.

{ "IamFleetRole": "arn:aws:iam::781603563322:role/aws-ec2-spot-fleet-tagging-role", "AllocationStrategy": "lowestPrice", "TargetCapacity": 10, "SpotPrice": null, "ValidFrom": "2018-04-04T15:58:13Z", "ValidUntil": "2019-04-04T15:58:13Z", "TerminateInstancesWithExpiration": true, "LaunchSpecifications": [], "Type": "maintain", "OnDemandTargetCapacity": 5, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0dbb04d4a6cca5ad1", "Version": "2" }, "Overrides": [ { "InstanceType": "t2.medium", "WeightedCapacity": 1, "SubnetId": "subnet-d0dc51fb" } ] } ] }

Beispiel 8: Konfigurieren des Kapazitätsneuausgleichs, um den Ersatz Spot-Instances zu starten

Im folgenden Beispiel wird die Spot-Flotte so konfiguriert, dass sie eine Ersatz-Spot-Instance startet, wenn Amazon eine Neugewichtsempfehlung für eine Spot-Instance in der Flotte EC2 ausgibt. Um die automatische Ersetzung von Spot-Instances zu konfigurieren, geben Sie für ReplacementStrategy launch-before-terminate an. Um die Zeitverzögerung vom Start der neuen Ersatz-Spot-Instances bis zum automatischen Löschen der alten Spot-Instances zu konfigurieren, geben Sie für termination-delay einen Wert in Sekunden an. Weitere Informationen finden Sie unter Konfigurationsoptionen.

Anmerkung

Wir empfehlen die Verwendung von launch-before-terminate nur, wenn Sie vorhersagen können, wie lange Ihre Verfahren zum Herunterfahren der Instances dauern werden. Dadurch wird sichergestellt, dass die alten Instances erst beendet werden, wenn die Verfahren zum Herunterfahren abgeschlossen sind. Ihnen werden alle Instances in Rechnung gestellt, während sie ausgeführt werden.

Die Wirksamkeit der Kapazitätsneuausgleichsstrategie hängt von der Anzahl der in der Spot-Flotten-Anforderung angegebenen Spot-Kapazitätspools ab. Wir empfehlen, dass Sie die Flotte mit einem diversifizierten Satz von Instance-Typen und Availability Zones konfigurieren und für AllocationStrategy capacityOptimized angeben. Weitere Informationen darüber, was Sie bei der Konfiguration einer Spot-Flotte für einen Kapazitätsneuausgleich beachten sollten, finden Sie unter Verwenden Sie den Kapazitätsausgleich in der EC2 Flotte und der Spot-Flotte, um gefährdete Spot-Instances zu ersetzen.

{ "SpotFleetRequestConfig": { "AllocationStrategy": "capacityOptimized", "IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceType": "c3.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c4.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c5.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } } ] } ], "TargetCapacity": 5, "SpotMaintenanceStrategies": { "CapacityRebalance": { "ReplacementStrategy": "launch-before-terminate", "TerminationDelay": "720" } } } }

Beispiel 9: Starten von Spot-Instances in einer kapazitätsoptimierten Flotte

Im folgenden Beispiel wird veranschaulicht, wie eine Spot-Flotte mit einer Spot-Zuweisungsstrategie konfiguriert wird, die die Kapazität optimiert. Um die Kapazität zu optimieren, müssen Sie AllocationStrategy auf capacityOptimized festlegen.

Im folgenden Beispiel geben die drei Startspezifikationen drei Spot-Kapazitätspools an. Die Zielkapazität beträgt 50 Spot-Instances. Die Spot-Flotte versucht, 50 Spot-Instances in dem Spot-Kapazitätspool zu starten, der über die optimale Kapazität für die Anzahl der zu startenden Instances verfügt.

{ "TargetCapacity": "50", "SpotFleetRequestConfig": { "AllocationStrategy": "capacityOptimized", }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "AvailabilityZone": "us-west-2a" }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-west-2b" }, { "InstanceType": "c5.2xlarge", "AvailabilityZone": "us-west-2b" } ] } ] }

Beispiel 10: Starten von Spot-Instances in einer kapazitätsoptimierten Flotte mit Prioritäten

Im folgenden Beispiel wird veranschaulicht, wie eine Spot-Flotte mit einer Spot-Zuweisungsstrategie konfiguriert wird, die die Kapazität optimiert und dabei die Priorität so weit wie möglich berücksichtigt.

Bei Verwendung der capacityOptimizedPrioritized-Zuweisungsstrategie können Sie den Priority-Parameter verwenden, um die Prioritäten der Spot-Kapazitätspools anzugeben. Je niedriger die Zahl ist, desto höher ist die Priorität. Sie können die gleiche Priorität auch für mehrere Spot-Kapazitätspools festlegen, wenn sie für Sie die gleiche Priorität haben. Wenn Sie keine Priorität für einen Pool festlegen, wird für den Pool die niedrigste Priorität angenommen.

Um Spot-Kapazitätspools zu priorisieren, müssen Sie AllocationStrategy auf capacityOptimizedPrioritized festlegen. Die Spot-Flotte wird zuerst für die Kapazität optimiert, berücksichtigt jedoch so gut wie möglich die Prioritäten (wenn z. B. die Berücksichtigung der Prioritäten keinen wesentlichen Einfluss auf die Fähigkeit der Spot-Flotte zur Bereitstellung optimaler Kapazität hat). Dies ist eine gute Option für Workloads, bei denen die Möglichkeit von Unterbrechungen minimiert werden muss und die Präferenz für bestimmte Instance-Typen wichtig ist.

Im folgenden Beispiel geben die drei Startspezifikationen drei Spot-Kapazitätspools an. Jeder Pool wird priorisiert. Je niedriger die Zahl ist, desto höher ist die Priorität. Die Zielkapazität beträgt 50 Spot-Instances. Die Spot-Flotte versucht nach Möglichkeit, 50 Spot-Instances in dem Spot-Kapazitätspool mit der höchsten Priorität zu starten. Zuerst optimiert sie jedoch die Kapazität.

{ "TargetCapacity": "50", "SpotFleetRequestConfig": { "AllocationStrategy": "capacityOptimizedPrioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Priority": 1, "AvailabilityZone": "us-west-2a" }, { "InstanceType": "m4.2xlarge", "Priority": 2, "AvailabilityZone": "us-west-2b" }, { "InstanceType": "c5.2xlarge", "Priority": 3, "AvailabilityZone": "us-west-2b" } ] } ] }

Beispiel 11: Spot-Instances in einer Flotte starten priceCapacityOptimized

Im folgenden Beispiel wird veranschaulicht, wie eine Spot-Flotte mit einer Spot-Zuweisungsstrategie konfiguriert wird, die sowohl die Kapazität als auch den Preis optimiert. Um die Kapazität zu optimieren und gleichzeitig den Preis zu berücksichtigen, müssen Sie den Spot AllocationStrategy auf priceCapacityOptimized setzen.

Im folgenden Beispiel geben die drei Startspezifikationen drei Spot-Kapazitätspools an. Die Zielkapazität beträgt 50 Spot-Instances. Die Spot-Flotte versucht, 50 Spot Instances in dem Spot-Kapazitätspool zu starten, der über die optimale Kapazität für die Anzahl der zu startenden Instances verfügt und gleichzeitig den günstigsten Pool auszuwählen.

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "OnDemandAllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111111111111:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0123456789example", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "AvailabilityZone": "us-west-2a" }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-west-2b" }, { "InstanceType": "c5.2xlarge", "AvailabilityZone": "us-west-2b" } ] } ], "TargetCapacity": 50, "Type": "request" } }

Beispiel 12: Konfigurieren von attributbasierter Auswahl von Instance-Typen

Im folgenden Beispiel wird veranschaulicht, wie eine Spot-Flotte so konfiguriert wird, dass sie die attributbasierte Instance-Typauswahl zur Identifizierung von Instance-Typen verwendet. Um die erforderlichen Instance-Attribute anzugeben, geben Sie die Attribute in der InstanceRequirements-Struktur an.

Im folgenden Beispiel werden zwei Instance-Attribute angegeben:

  • VCpuCount— Es sind mindestens 2 vCPUs angegeben. Da kein Maximum angegeben ist, gibt es keine Höchstgrenze.

  • MemoryMiB – Es werden mindestens 4 MiB Arbeitsspeicher angegeben. Da kein Maximum angegeben ist, gibt es keine Höchstgrenze.

Alle Instance-Typen mit 2 oder mehr vCPUs und 4 MiB oder mehr Speicher werden identifiziert. Der Preisschutz und die Zuweisungsstrategie könnten jedoch einige Instance-Typen ausschließen, wenn die Spot-Flotte die Flotte bereitstellt.

Eine Liste und Beschreibungen aller möglichen Attribute, die Sie angeben können, finden Sie InstanceRequirementsin der EC2APIAmazon-Referenz.

{ "AllocationStrategy": "priceCapacityOptimized", "TargetCapacity": 20, "Type": "request", "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min": 2 }, "MemoryMiB": { "Min": 4 } } }] }] }