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.
Konfiguration einer EC2 Flotte des Typs instant
Bei der EC2 Flotte vom Typ Instant handelt es sich um eine synchrone einmalige Anforderung, bei der nur ein Versuch unternommen wird, die gewünschte Kapazität zu aktivieren. In der API Antwort werden die Instances aufgeführt, die gestartet wurden, zusammen mit den Fehlern für die Instances, die nicht gestartet werden konnten. Die Verwendung einer EC2 Flotte vom Typ Instant bietet mehrere Vorteile, die in diesem Artikel beschrieben werden. Beispielkonfigurationen finden Sie am Ende des Artikels.
Für Workloads, die nur zum Starten von EC2 Instances gestartet API werden müssen, können Sie den verwenden. RunInstances API Mit können Sie RunInstances jedoch nur On-Demand-Instances oder Spot-Instances starten, aber nicht beide in derselben Anfrage. Wenn Sie RunInstances Spot-Instances starten, ist Ihre Spot-Instance-Anfrage 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 genügend Spot-Instance-Kapazität für Ihre Anfrage verfügt, schlägt der RunInstances Anruf fehl.
Anstatt Spot-Instances RunInstances zum Starten von Spot-Instances zu verwenden, empfehlen wir Ihnen, den CreateFleet API mit dem eingestellten type
Parameter auf zu verwenden, instant
um die folgenden Vorteile zu erzielen:
-
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. Wenn Sie eine EC2 Flotte des Typs „Flotte“ verwenden
instant
, können Sie Spot-Instances gemäß den Best Practices von Spot starten, was die daraus resultierenden Vorteile bietet:-
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 lautet, bei mindestens 10 Instance-Typen für jeden Workload flexibel vorzugehen und sicherzustellen, dass alle Availability Zones für die Verwendung in Ihrem konfiguriert sindVPC.
-
Bewährtes Verfahren vor Ort: Verwenden Sie die price-capacity-optimized Zuweisungsstrategie.
Vorteil: Die
price-capacity-optimized
Zuweisungsstrategie identifiziert Instances aus den Spot-Kapazitätspools mit der höchsten Verfügbarkeit und stellt dann automatisch Instances aus den kostengünstigsten dieser Pools bereit. Da Ihre Spot-Instance-Kapazität aus Pools mit optimaler Kapazität bezogen wird, verringert sich die Wahrscheinlichkeit, dass Ihre Spot-Instances unterbrochen werden, wenn Amazon die Kapazität wieder EC2 benötigt.
-
-
Erhalten Sie Zugriff auf eine breitere Palette von Funktionen. Verwenden Sie für WorkloadsAPI, die nur für den Start benötigt werden und bei denen Sie lieber den Lebenszyklus Ihrer Instance verwalten möchten, anstatt ihn von EC2 Fleet für Sie verwalten zu lassen, den Typ EC2 Fleet
instant
anstelle von. RunInstancesAPI EC2Fleet bietet ein breiteres Spektrum an Funktionen als das RunInstances, was in den folgenden Beispielen gezeigt wird. Für alle anderen Workloads sollten Sie Amazon EC2 Auto Scaling verwenden, da es einen umfassenderen Funktionsumfang für eine Vielzahl von Workloads bietet, wie z. B. ELB gestützte Anwendungen, containerisierte Workloads und Warteschlangenverarbeitungsaufträge.
Sie können EC2 Fleet vom Typ Instant verwenden, um Instances in Capacity Blocks zu starten. Weitere Informationen finden Sie unter Tutorial: Konfigurieren Sie Ihre EC2 Flotte so, dass Instances in Kapazitätsblöcken gestartet werden.
AWS Dienste wie Amazon EC2 Auto Scaling und Amazon EMR verwenden EC2 Fleet vom Typ Instant, um EC2 Instances zu starten.
Voraussetzungen für EC2 Fleet des Typs Instant
Die Voraussetzungen für die Erstellung einer EC2 Flotte finden Sie unterEC2Voraussetzungen für die Flotte.
So funktioniert Instant EC2 Fleet
Bei der Arbeit mit einer EC2 Flotte des Typs instant
„Flotte“ sieht die Reihenfolge der Ereignisse wie folgt aus:
-
Konfigurieren Sie den CreateFleetAnfragetyp als
instant
. Weitere Informationen finden Sie unter Erstellen Sie eine EC2 Flotte. Beachten Sie, dass Sie den API Anruf nicht mehr ändern können, nachdem Sie ihn getätigt haben. -
Wenn Sie den API Anruf tätigen, stellt EC2 Fleet eine synchrone einmalige Anfrage für Ihre gewünschte Kapazität.
-
In der API Antwort werden die Instances aufgeführt, die gestartet wurden, zusammen mit den Fehlern für die 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 einsehen.
-
Nach dem Start Ihrer Instances können Sie die Flottenanfrage 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
Die folgenden Beispiele zeigen, wie Sie EC2 Fleet of Type instant
für verschiedene Anwendungsfälle verwenden können. Weitere Informationen zur Verwendung der EC2 CreateFleet API Parameter finden Sie CreateFleetin der EC2APIAmazon-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: Starten Sie Spot-Instances innerhalb einer einzigen Availability Zone
- 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 Sie Spot-Instances mithilfe einer capacity-optimized-prioritized Zuweisungsstrategie
- Beispiel 12: Geben Sie anstelle einer AMI ID einen Systems Manager Manager-Parameter an
Beispiel 1: Starten von Spot-Instances mit der kapazitätsoptimierten Zuweisungsstrategie
Das folgende Beispiel spezifiziert die für eine EC2 Flotte erforderlichen Parameterinstant
: Startvorlage, Zielkapazität, Standardkaufoption und Überschreibungen der Startvorlage.
-
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 jeweils eine Spot-Instance optimal starten, indem Sie mehrere EC2 API Fleet-Aufrufe des Typs durchführeninstant
, indem Sie den Wert TotalTargetCapacity auf 1 setzen.
Das folgende Beispiel spezifiziert die Parameter, die für eine EC2 Flotte vom Typ Instant erforderlich sind: eine Startvorlage, Zielkapazität, Standardkaufoption und Überschreibungen der Startvorlage. 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 unterschiedliche Gewichtung auf, je nachdem, wie viele Workload-Einheiten auf der Instance ausgeführt werden können, vorausgesetzt, eine Workload-Einheit benötigt 15 GB Arbeitsspeicher und 4 vCPUs GB. Ein m5.xlarge (4 vCPUs und 16 GB Arbeitsspeicher) kann beispielsweise eine Einheit ausführen und ist mit 1 gewichtet, m5.2xlarge (8 vCPUs und 32 GB Arbeitsspeicher) kann 2 Einheiten ausführen und hat eine Gewichtung von 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 Verwenden Sie die Instance-Gewichtung, 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: Starten Sie Spot-Instances innerhalb einer einzigen Availability Zone
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 setzen.
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, alle in einer einzigen AZ, aus dem/den Spot-Kapazitätspool (s) mit optimaler Kapazität gemäß den Startspezifikationen.
{ "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 einzigen Availability Zone gestartet werden, indem Sie die SpotOptions SingleInstanceType Option auf true und SingleAvailabilityZone auf true setzen.
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, alle in einer 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, wenn die Mindestzielkapazität gestartet werden kann, indem Sie die Spot-Optionen MinTargetCapacity auf die Mindestzielkapazität setzen, die Sie zusammen 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-Overrides, nur wenn sie alle 20 Instances gleichzeitig starten kann.
{ "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, wenn die Mindestzielkapazität mit einem einzigen Instance-Typ in einer einzigen Availability Zone gestartet werden kann, indem Sie die Spot-Optionen MinTargetCapacity auf die Mindestzielkapazität setzen, die Sie zusammen mit den SingleAvailabilityZone Optionen SingleInstanceType und 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 Gesamtzielkapazität und die minimale Zielkapazität sind beide auf 20 Instances festgelegt, die Standardkaufoption ist Spot, die Spot-Zuweisungsstrategie ist kapazitätsoptimiert, das SingleInstanceType ist wahr und SingleAvailabilityZone ist wahr. Die EC2 Flotte startet 20 Spot-Instances desselben Instance-Typs, alle in einer einzigen AZ, aus dem Spot-Kapazitätspool mit optimaler Kapazität unter Verwendung der Startspezifikationen, nur wenn sie alle 20 Instances gleichzeitig starten kann.
{ "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 unterschiedliche EBS Volume-Größen für verschiedene Instance-Typen haben, und das haben wir in den Startvorlagen 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 Überschreibungen der Startspezifikation vCPUs für alle Startvorlagen verwenden Instance-Gewichtungen, die auf dem Instance-Typ basieren. 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 starten, wobei die Gewichte die gewünschte Kapazität ergeben, basierend auf kapazitätsoptimierte Allokationsstrategie.
{ "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 wie TotalTargetCapacity — OnDemandTargetCapacity = berechnet DefaultTargetCapacityType, was dazu führt, dass die Flotte 15 Spot-Instances startet, die einen der 12 Spot-Kapazitätspools bilden, 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 zuerst On-Demand-Kapazitätsreservierungen verwendet, wenn Sie eine Basis von On-Demand-Instances mit dem standardmäßigen Zielkapazitätstyp Spot starten, indem Sie die Nutzungsstrategie für Kapazitätsreservierungen auf einstellen. use-capacity-reservations-first 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 angegeben 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" }
Die folgende Flottenkonfiguration zeigt nur die relevanten Konfigurationen für dieses Beispiel. Die On-Demand-Zuweisungsstrategie hat Priorität, und die Nutzungsstrategie für Kapazitätsreservierungen hat Priorität 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.
Nach dem Start der Flotte können Sie nachschauen, wie viele ungenutzte Kapazitätsreservierungen noch übrig sind. describe-capacity-reservations 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 Sie Spot-Instances mithilfe einer capacity-optimized-prioritized Zuweisungsstrategie
Das folgende Beispiel spezifiziert die Parameter, die für eine EC2 Flotte vom Typ Instant erforderlich sind: eine Startvorlage, Zielkapazität, Standardkaufoption und Überschreibungen der Startvorlage. 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 Standardkaufoption ist Spot. Dies führt dazu, dass die Flotte versucht, 20 Spot-Instances aus einem der 12 Spot-Kapazitätspools auf der Grundlage der capacity-optimized-prioritized Zuweisungsstrategie zu starten, bei der Prioritäten nach bestem Wissen implementiert werden, aber zuerst die Kapazität optimiert wird.
{ "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: Geben Sie anstelle einer AMI ID einen Systems Manager Manager-Parameter an
Im folgenden Beispiel wird eine Startvorlage verwendet, um die Konfiguration für die Instances in der Flotte anzugeben. In diesem Beispiel AMI wird für ImageId
statt der Angabe einer AMI ID mit einem System Manager-Parameter auf die verwiesen. Beim Start der Instance wird der Systems Manager Manager-Parameter in eine AMI ID aufgelöst.
In diesem Beispiel wird der Systems Manager Manager-Parameter in einem gültigen Format angegeben:resolve:ssm:golden-ami
. Es gibt andere gültige Formate für den Systems Manager Manager-Parameter. Weitere Informationen finden Sie unter Verwenden Sie einen Systems Manager Manager-Parameter anstelle einer AMI ID.
Anmerkung
Der Flottentyp muss vom Typ instant
sein. Andere Flottenarten unterstützen die Angabe eines System Manager-Parameters anstelle einer AMI ID nicht.
{ "LaunchTemplateData": { "ImageId": "resolve:ssm:golden-ami", "InstanceType": "
m5.4xlarge
", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key": "Name
", "Value": "webserver
" }] }] } }