EC2-Flotte des Typs instant konfigurieren
Die EC2-Flotte des Typs Instant ist eine einmalige, synchrone Anforderung, die nur einen Versuch macht, die gewünschte Kapazität zu starten. Die API-Antwort gibt die gestarteten Instances zurück sowie die Fehler für Instances, die nicht gestartet werden konnten. Die Verwendung einer EC2-Flotte des Typs Instant, die in diesem Artikel beschrieben werden, hat mehrere Vorzüge. Beispielkonfigurationen finden Sie am Ende des Artikels.
Für Workloads, die eine Nur-Start-API zum Starten von EC2-Instances benötigen, können Sie die RunInstances API verwenden. Mit RunInstances können Sie jedoch nur On-Demand-Instances oder Spot-Instances starten, aber nicht beide in derselben Anforderung. Wenn Sie RunInstances zum Starten von Spot-Instances verwenden, ist Ihre Spot-Instance-Anforderung außerdem auf einen Instance-Typ und eine Availability Zone beschränkt. Dies zielt auf einen Spot-Kapazitätspool ab (eine Reihe von unbenutzten Instances mit gleichem Instance-Typ und gleicher Availability Zone). Wenn der Spot-Kapazitätspool nicht über ausreichende Spot-Instance-Kapazität für Ihre Anforderung verfügt, schlägt der RunInstances-Aufruf fehl.
Anstatt RunInstances zum Starten von Spot-Instances zu verwenden, empfehlen wir, die CreateFleet-API für folgende Vorteile lieber mit dem type
-Parameterwert auf instant
zu setzen:
-
Launchen von On-Demand-Instances und Spot Instances in einer Anforderung. Eine EC2-Flotte kann On-Demand-Instances, Spot-Instances oder beides starten. Die Anforderung für Spot-Instances ist erfüllt, wenn ausreichend Kapazität verfügbar ist und der maximale Preis pro Stunde für Ihre Anforderung den Spot-Preis überschreitet.
-
Erhöhen Sie die Verfügbarkeit von Spot Instances. Durch die Verwendung einer EC2-Flotte des Typs
instant
können Sie Spot-Instances nach den Bewährte Methoden für Spot mit den daraus resultierenden Vorteilen starten:-
Bewährte Methoden für Spot: Flexibel sein bei Instance-Typen und Availability Zones.
Vorteil: Durch die Angabe mehrerer Instance-Typen und Availability Zones erhöhen Sie die Anzahl der Spot-Kapazitätspools. Dies gibt dem Spot-Dienst eine bessere Chance, die gewünschte Spot-Rechenkapazität zu finden und zuzuweisen. Eine gute Faustregel besteht darin, für jeden Workload über mindestens 10 Instance-Typen hinweg flexibel zu sein und sicherzustellen, dass alle Availability Zones für die Verwendung in Ihrer VPC konfiguriert sind.
-
Bewährte Methoden für Spot: Nutzung der price-capacity-optimized Zuweisungsstrategie.
Vorteil: Die Zuweisungsstrategie
price-capacity-optimized
identifiziert Instances aus den am meisten verfügbaren Spot-Kapazitätspools und stellt dann automatisch Instances aus dem preisgünstigsten dieser Pools bereit. Da Ihre Spot-Instance-Kapazität aus Pools mit optimaler Kapazität bezogen wird, verringert dies die Möglichkeit, dass Ihre Spot-Instances unterbrochen werden, wenn Amazon EC2 die Kapazität zurück braucht.
-
-
Erhalten Sie Zugriff auf eine breitere Palette von Funktionen. Für Workloads, die eine Nur-Start-API benötigen und bei denen Sie den Lebenszyklus Ihrer Instance lieber verwalten möchten, anstatt der EC2-Flotte diese für Sie verwalten zu lassen, verwenden Sie die EC2-Flotte vom Typ
instant
anstelle der RunInstances-API. Die EC2-Flotte bietet eine breitere Palette von Funktionen als RunInstances, wie in den folgenden Beispielen gezeigt. Für alle anderen Workloads sollten Sie Amazon EC2 Auto Scaling verwenden, da es ein umfassenderes Feature-Umfang für eine Vielzahl von Workloads bietet, wie beispielsweise ELB-unterstützte Anwendungen, containerisierte Workloads und Warteschlangenverarbeitungsaufträge.
Sie können eine EC2-Flotte vom Typ instant verwenden, um Instances in Kapazitätsblöcken zu starten. Weitere Informationen finden Sie unter Tutorial: Ihre EC2-Flotte konfigurieren, um Instances in Kapazitätsblöcken zu starten.
AWS-Services wie Amazon EC2 Auto Scaling und Amazon EMR verwenden EC2-Flotte vom Typ Instant, um EC2-Instances zu starten.
Voraussetzungen für EC2-Flotte des Typs Instant
Informationen zu den Voraussetzungen für das Erstellen einer EC2-Flotte finden Sie unter EC2-Flotte-Voraussetzungen.
So funktioniert die Instant-EC2-Flotte
Bei der Arbeit mit einer EC2-Flotte des Typs instant
lautet die Ereignisabfolge wie folgt:
-
Konfigurieren der CreateFleet-Anforderungstyp als
instant
. Weitere Informationen finden Sie unter Erstellen einer EC2-Flotte. Beachten Sie, dass Sie den API-Aufruf nicht ändern können, nachdem Sie ihn machen. -
Wenn Sie den API-Aufruf durchführen, erstellt EC2-Flotte eine einmalige, synchrone Anforderung für Ihre gewünschte Kapazität.
-
Die API-Antwort gibt die gestarteten Instances zurück sowie die Fehler für Instances, die nicht gestartet werden konnten.
-
Sie können Ihre EC2-Flotte beschreiben, die mit Ihrer EC2-Flotte verknüpften Instances auflisten und den Verlauf Ihrer EC2-Flotte anzeigen.
-
Nachdem Ihre Instances gestartet wurden, können Sie die Flottenanforderung löschen. Wenn Sie die Flottenanforderung löschen, können Sie auch die zugeordneten Instances beenden oder diese laufen lassen.
-
Sie können die Instances jederzeit beenden.
Beispiele
In den folgenden Beispielen wird gezeigt, wie Sie eine EC2-Flotte des Typs instant
für verschiedene Anwendungsfälle nutzen. Weitere Informationen zur Verwendung der EC2-CreateFleet-API-Parameter finden Sie unter CreateFleet in der Amazon EC2 API-Referenz.
Beispiele
- Beispiel 1: Starten von Spot-Instances mit der kapazitätsoptimierten Zuweisungsstrategie
- Beispiel 2: Starten einer einzelnen Spot-Instance mit der kapazitätsoptimierten Zuweisungsstrategie
- Beispiel 3: Starten einer Spot-Instance mit Instance-Gewichtung
- Beispiel 4: Spot-Instances innerhalb einer einzelnen Availability Zone starten
- Beispiel 5: Starten von Spot-Instances eines einzelnen Instance-Typs innerhalb einer Availability Zone
- Beispiel 6: Spot-Instances nur starten, wenn minimale Zielkapazität gestartet werden kann
- Beispiel 7: Starten Sie Spot-Instances nur, wenn die minimale Zielkapazität desselben Instance-Typs in einer einzigen Availability Zone gestartet werden kann
- Beispiel 8: Starten von Instances mit mehreren Startvorlagen
- Beispiel 9: Starten von Spot-Instance mit einer Basis von On-Demand-Instances
- Beispiel 10: Starten von Spot-Instances mit kapazitätsoptimierter Zuweisungsstrategie mit einer Basis von On-Demand-Instances unter Verwendung von Kapazitätsreservierungen und der priorisierten Zuweisungsstrategie
- Beispiel 11: Starten von Spot-Instances mit kapazitätsoptimierter priorisierter Zuweisungsstrategie
- Beispiel 12: Einen Systems-Manager-Parameters anstelle einer AMI-ID angeben
Beispiel 1: Starten von Spot-Instances mit der kapazitätsoptimierten Zuweisungsstrategie
Das folgende Beispiel gibt die Parameter an, die in einer EC2-Flotte des Typs instant
benötigt werden: eine Startvorlage, eine Zielkapazität, eine Standard-Kaufoption und Startvorlagenüberschreibungen.
-
Die Startvorlage wird durch ihren Startvorlagennamen und die Versionsnummer identifiziert.
-
In den 12 Startvorlagenüberschreibungen werden 4 verschiedene Instance-Typen und 3 verschiedene Subnetze angegeben, die sich jeweils in einer separaten Availability Zone befinden. Jeder Instance-Typ und jede Subnetzkombination definiert einen Spot-Kapazitätspool, der zu 12 Spot-Kapazitätspools führt.
-
Die Mindest-Zielkapazität für die Flotte ist 20 Instances.
-
Die standardmäßige Kaufoption ist
spot
, wodurch die Flotte versucht, 20 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.
{ "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" }
Beispiel 2: Starten einer einzelnen Spot-Instance mit der kapazitätsoptimierten Zuweisungsstrategie
Sie können eine Spot-Instance gleichzeitig optimal starten, indem Sie mehrere EC2-Flotten-API-Aufrufe vom Typ instant
durchführen, indem Sie die TotalTargetCapacity auf 1 setzen.
Das folgende Beispiel gibt die Parameter an, die in einer EC2-Flotte des Typs Instant benötigt werden: eine Startvorlage, eine Zielkapazität, eine Standard-Kaufoption und Startvorlagenüberschreibungen. Die Startvorlage wird durch ihren Startvorlagennamen und die Versionsnummer identifiziert. Die 12 Startvorlagenüberschreibungen haben 4 verschiedene Instance-Typen und 3 verschiedene Subnetze, die sich jeweils in einer separaten Availability Zone befinden. Die Zielkapazität für die Flotte beträgt 1 Instance und die Standardeinkaufoption ist Spot, was dazu führt, dass die Flotte versucht, eine Spot-Instance aus einem der 12 Spot-Kapazitätspools basierend auf der kapazitätsoptimierten Zuweisungsstrategie zu starten, um eine Spot-Instance aus dem am meisten verfügbaren Kapazitätspool zu starten.
{ "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" }
Beispiel 3: Starten einer Spot-Instance mit Instance-Gewichtung
Die folgenden Beispiele verwenden die Instance-Gewichtung, d. h. der Preis versteht sich pro Einheitsstunde anstatt pro Instance-Stunde. Jede Startkonfiguration listet einen anderen Instance-Typ und eine andere Gewichtung auf, je nachdem, wie viele Einheiten des Workloads auf der Instance ausgeführt werden können, sofern eine Einheit der Workload 15 GB Arbeitsspeicher und 4 vCPUs benötigt. Zum Beispiel kann ein m5.xlarge (4 vCPUs und 16 GB Speicher) eine Einheit ausführen und ist gewichtet 1, m5.2xlarge (8 vCPUs und 32 GB Speicher) kann 2 Einheiten ausführen und ist gewichtet 2 usw. Die gesamte Zielkapazität wird auf 40 Einheiten eingestellt. Die Standardeinkaufoption ist vor Ort, und die Allokationsstrategie ist kapazitätsoptimiert, was entweder 40 m5.xlarge (40 geteilt durch 1), 20 m5.2xlarge (40 geteilt durch 2), 10 m5.4xlarge (40 geteilt durch 4), 5 m5.8xlarge (40 geteilt durch 8) oder eine Mischung der Instance-Typen mit Gewichtungen, die zu den gewünschten Kapazität basierend auf der kapazitätsoptimierten Zuweisungsstrategie.
Weitere Informationen finden Sie unter Instance-Gewichtung verwenden, um die Kosten und die Leistung Ihrer EC2-Flotte oder Spot-Flotte zu verwalten.
{ "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" }
Beispiel 4: Spot-Instances innerhalb einer einzelnen Availability Zone starten
Sie können eine Flotte so konfigurieren, dass alle Instances in einer einzigen Availability Zone gestartet werden, indem Sie die Spot-Optionen SingleAvailabilityZone auf true festlegen.
Die 12 Startvorlagenüberschreibungen haben unterschiedliche Instance-Typen und Subnetze (jeweils in einer separaten Availability Zone), aber die gleiche gewichtete Kapazität. Die Gesamtzielkapazität beträgt 20 Instances, die voreingestellte Kaufoption ist spot und die Spot-Zuweisungsstrategie ist kapazitätsoptimiert. Die EC2-Flotte startet 20 Spot-Instances in einem einzigen AZ, aus dem Spot-Kapazitätspool (s) mit optimaler Kapazität unter Verwendung der Launch-Spezifikationen.
{ "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" }
Beispiel 5: Starten von Spot-Instances eines einzelnen Instance-Typs innerhalb einer Availability Zone
Sie können eine Flotte so konfigurieren, dass alle Instances desselben Instance-Typs und in einer einzelnen Availability Zone gestartet werden, indem Sie SpotOptions SingleInstanceType auf true und SingleAvailabilityZone auf true festlegen.
Die 12 Startvorlagenüberschreibungen haben unterschiedliche Instance-Typen und Subnetze (jeweils in einer separaten Availability Zone), aber die gleiche gewichtete Kapazität. Die Gesamtzielkapazität beträgt 20 Instances, die voreingestellte Kaufoption ist spot, die Spot-Zuweisungsstrategie ist kapazitätsoptimiert. Die EC2-Flotte startet 20 Spot-Instances desselben Instance-Typs in einem einzigen AZ aus dem Spot-Instance-Pool mit optimaler Kapazität unter Verwendung der Startspezifikationen.
{ "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" }
Beispiel 6: Spot-Instances nur starten, wenn minimale Zielkapazität gestartet werden kann
Sie können eine Flotte so konfigurieren, dass Instances nur gestartet werden können, wenn die minimale Zielkapazität gestartet werden kann, indem Sie die Spot-Optionen MinTargetCapacity auf die minimale Zielkapazität festlegen, die Sie gemeinsam starten möchten.
Die 12 Startvorlagenüberschreibungen haben unterschiedliche Instance-Typen und Subnetze (jeweils in einer separaten Availability Zone), aber die gleiche gewichtete Kapazität. Die gesamte Zielkapazität und die minimale Zielkapazität sind beide auf 20 Instances festgelegt, die Standardeinkaufoption ist Spot, die Spot-Allokationsstrategie ist kapazitätsoptimiert. Die EC2-Flotte startet 20 Spot-Instances aus dem Spot-Kapazitätspool mit optimaler Kapazität unter Verwendung der Startvorlagenüberschreibungen nur, wenn alle 20 Instances gleichzeitig gestartet werden können.
{ "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" }
Beispiel 7: Starten Sie Spot-Instances nur, wenn die minimale Zielkapazität desselben Instance-Typs in einer einzigen Availability Zone gestartet werden kann
Sie können eine Flotte so konfigurieren, dass Instances nur gestartet werden können, wenn die minimale Zielkapazität mit einem einzelnen Instance-Typ in einer einzigen Availability Zone gestartet werden kann, indem Sie die Spot-Optionen MinTargetCapacity auf die minimale Zielkapazität festlegen, die Sie zusammen mit SingleInstanceType und SingleAvailabilityZone Optionen starten möchten.
Die 12 Startspezifikationen, die die Startvorlage überschreiben, haben unterschiedliche Instance-Typen und Subnetze (jede in einer separaten Availability Zone), aber die gleiche gewichtete Kapazität. Die gesamte Zielkapazität und die minimale Zielkapazität sind beide auf 20 Instances festgelegt, die Standardeinkaufoption ist Spot, die Spot-Allokationsstrategie ist kapazitätsoptimiert, der SingleInstanceType ist true und SingleAvailabilityZone ist true. Die EC2-Flotte startet 20 Spot-Instances desselben Instance-Typs in einem einzigen AZ aus dem Spot-Kapazitätspool mit optimaler Kapazität unter Verwendung der Startspezifikationen nur, wenn alle 20 Instances gleichzeitig gestartet werden können.
{ "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" }
Beispiel 8: Starten von Instances mit mehreren Startvorlagen
Sie können eine Flotte so konfigurieren, dass Instances mit unterschiedlichen Startspezifikationen für verschiedene Instance-Typen oder eine Gruppe von Instance-Typen gestartet werden, indem Sie mehrere Startvorlagen angeben. In diesem Beispiel wollen wir verschiedene EBS-Volume-Größen für verschiedene Instance-Typen haben und wir haben das in den Launch-Vorlagen ec2-fleet-lt-4xl, ec2-fleet-lt-9xl und ec2-fleet-lt-18xl konfiguriert.
In diesem Beispiel verwenden wir 3 verschiedene Startvorlagen für die 3 Instance-Typen, die auf ihrer Größe basieren. Die Startspezifikations-Überschreibungen für alle Startvorlagen verwenden Instance-Gewichtungen basierend auf den vCPUs des Instance-Typs. Die Gesamtzielkapazität beträgt 144 Einheiten, die voreingestellte Kaufoption ist Spot und die Spot-Zuweisungsstrategie ist kapazitätsoptimiert. Die EC2-Flotte kann entweder 9 c5n.4xlarge (144 geteilt durch 16) mit der Startvorlage ec2-fleet-4xl oder 4 c5n.9xlarge (144 geteilt durch 36) mit der Startvorlage ec2-fleet-9xl oder 2 c5n.18xlarge (144 geteilt durch 72) mit der Startvorlage ec2-fleet-18xl oder eine Mischung der Instance-Typen mit Gewichtungen bis zur gewünschten Kapazität basierend auf der kapazitätsoptimierten Allokationsstrategie starten.
{ "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" }
Beispiel 9: Starten von Spot-Instance mit einer Basis von On-Demand-Instances
Das folgende Beispiel gibt die Gesamtzielkapazität von 20 Instances für die Flotte und eine Zielkapazität von 5 On-Demand-Instances an. Die Standard-Kaufoption ist Spot. Die Flotte startet 5 On-Demand-Instances wie angegeben, muss aber noch 15 weitere Instance starten, um die gesamte Zielkapazität zu erreichen. Die Kaufoption für die Differenz wird berechnet als TotalTargetCapacity — OnDemandTargetCapacity = DefaultTargetCapacityType, was dazu führt, dass die Flotte 15 Spot-Instances von einer der 12 Spot-Kapazitätspools startet, die auf der kapazitätsoptimierten Zuweisungsstrategie basieren.
{ "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" }
Beispiel 10: Starten von Spot-Instances mit kapazitätsoptimierter Zuweisungsstrategie mit einer Basis von On-Demand-Instances unter Verwendung von Kapazitätsreservierungen und der priorisierten Zuweisungsstrategie
Sie können eine Flotte so konfigurieren, dass sie On-Demand-Kapazitätsreservierungen zuerst beim Start einer Basis von On-Demand-Instances mit dem standardmäßigen Zielkapazitätstyp wie Spot verwendet, indem Sie die Nutzungsstrategie für Kapazitätsreservierungen auf use-capacity-reservations-first festlegt. Und wenn mehrere Instance-Pools nicht verwendete Kapazitätsreservierungen haben, wird die gewählte On-Demand-Zuordnungsstrategie angewendet. In diesem Beispiel ist die On-Demand-Zuordnungsstrategie prioritisiert.
In diesem Beispiel sind 6 nicht verwendete Kapazitätsreservierungen verfügbar. Dies ist geringer als die On-Demand-Zielkapazität der Flotte von 10 On-Demand-Instances.
Das Konto hat die folgenden 6 nicht verwendeten Kapazitätsreservierungen in 2 Pools. Die Anzahl der Kapazitätsreservierungen in jedem Pool wird durch AvailableInstanceCount angezeigt.
{ "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" }
Die folgende Flottenkonfiguration zeigt nur die relevanten Konfigurationen für dieses Beispiel. Die On-Demand-Zuordnungsstrategie ist priorisiert und die Nutzungsstrategie für Kapazitätsreservierungen ist use-capacity-reservations-first. Die Spot-Zuweisungsstrategie ist kapazitätsoptimiert. Die Gesamtzielkapazität beträgt 20, die On-Demand-Zielkapazität beträgt 10 und der voreingestellte Zielkapazitätstyp ist Spot.
{ "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" }
Nachdem Sie die Instant-Flotte mit der vorherigen Konfiguration erstellt haben, werden die folgenden 20 Instances gestartet, um die Zielkapazität zu erreichen:
-
7 c5.large On-Demand-Instances in us-east-1a – c5.large in us-east-1a wird zuerst priorisiert und es gibt drei verfügbare, nicht verwendete c5.large-Kapazitätsreservierungen. Die Kapazitätsreservierungen werden zuerst verwendet, um 3 On-Demand-Instances zu starten; dazu werden vier zusätzliche On-Demand-Instances gemäß der On-Demand-Zuordnungsstrategie gestartet, die in diesem Beispiel priorisiert sind.
-
3 m5.large On-Demand-Instances in us-east-1a – m5.large in us-east-1a wird zweitrangig priorisiert und es gibt drei verfügbare, nicht verwendete c3.large-Kapazitätsreservierungen.
-
10 Spot-Instances aus einem der 12 Spot-Kapazitätspools mit der optimalen Kapazität gemäß der kapazitätsoptimierten Zuweisungsstrategie.
Nachdem die Flotte gestartet wurde, können Sie describe-capacity-reservations ausführen, um zu sehen, wie viele nicht verwendete Kapazitätsreservierungen noch übrig sind. In diesem Beispiel sollten Sie die folgende Antwort sehen, die zeigt, dass alle c5.large- und m5.large-Kapazitätsreservierungen verwendet wurden.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "AvailableInstanceCount": 0 }
Beispiel 11: Starten von Spot-Instances mit kapazitätsoptimierter priorisierter Zuweisungsstrategie
Das folgende Beispiel gibt die Parameter an, die in einer EC2-Flotte des Typs Instant benötigt werden: eine Startvorlage, eine Zielkapazität, eine Standard-Kaufoption und Startvorlagenüberschreibungen. Die Startvorlage wird durch ihren Startvorlagennamen und die Versionsnummer identifiziert. Die 12 Startspezifikationen, die die Startvorlage außer Kraft setzen, haben 4 verschiedene Instance-Typen mit einer zugeordneten Priorität und 3 verschiedene Subnetze je in einer separaten Availability Zone. Die Zielkapazität für die Flotte beträgt 20 Instances, und die Standardeinkaufoption ist Spot-Option, was dazu führt, dass die Flotte versucht, 20 Spot-Instances aus einem der 12 Spot-Kapazitätspools basierend auf der kapazitätsoptimierten Allokationsstrategie zu starten, die Prioritäten nach bestem Bemühen umsetzt, optimiert aber zuerst für die Kapazität.
{ "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" }
Beispiel 12: Einen Systems-Manager-Parameters anstelle einer AMI-ID angeben
Im folgenden Beispiel wird eine Startvorlage verwendet, um die Konfiguration für die Instances in der Flotte anzugeben. In diesem Beispiel wird für ImageId
anstelle der Angabe einer AMI-ID mit einem Systemmanager-Parameter auf das AMI verwiesen. Beim Start der Instance wird der Systems-Manager-Parameter in eine AMI-ID aufgelöst.
In diesem Beispiel wird der Systems-Manager-Parameter in einem gültigen Format angegeben: resolve:ssm:golden-ami
. Es gibt andere gültige Formate für den Systems-Manager-Parameter. Weitere Informationen finden Sie unter Verwenden eines Systems-Manager-Parameters anstelle einer AMI-ID.
Anmerkung
Der Flottentyp muss vom Typ instant
sein. Bei anderen Flotten-Typen wird die Angabe eines Systems-Manager-Parameters anstelle einer AMI-ID nicht unterstützt.
{ "LaunchTemplateData": { "ImageId": "resolve:ssm:golden-ami", "InstanceType": "
m5.4xlarge
", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key": "Name
", "Value": "webserver
" }] }] } }