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.
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. 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 vom Typ Instant bietet mehrere Vorteile, die in diesem Artikel beschrieben werden. Beispielkonfigurationen finden Sie am Ende des Artikels.
Für Workloads, die eine reine Launch-API zum Starten von EC2 Instances benötigen, können Sie die API verwenden. RunInstances 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, die CreateFleet API mit dem type
Parametersatz auf zu 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 mit sich bringt:-
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 Methode für Spot: Verwenden Sie price-capacity-optimized Allokationsstrategie.
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 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 Workloads, die eine API nur für den Start benötigen 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 der API. RunInstances EC2 Fleet 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 ELB-gestützte Anwendungen, containerisierte Workloads und Warteschlangenverarbeitungsaufträge.
Sie können EC2 Fleet des Typs 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 unterEC2 Voraussetzungen 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: Konfigurieren Sie den CreateFleetAnfragetyp als
instant
. Weitere Informationen finden Sie unter Erstellen Sie eine EC2 Flotte. Beachten Sie, dass Sie den API-Aufruf nicht ändern können, nachdem Sie ihn machen. -
Anfrage: Wenn Sie den API-Aufruf tätigen, EC2 stellt Amazon eine synchrone einmalige Anfrage für Ihre gewünschte Kapazität.
-
Antwort: In der API-Antwort sind die Instances aufgeführt, die gestartet wurden, zusammen mit den Fehlern für die Instances, die nicht gestartet werden konnten.
-
Beschreibung: Sie können Ihre EC2 Flotte beschreiben, die mit Ihrer EC2 Flotte verknüpften Instances auflisten und den Verlauf Ihrer EC2 Flotte einsehen.
-
Instances beenden: Sie können die Instances jederzeit beenden.
-
Flottenanfrage löschen: Die Flottenanfrage kann entweder manuell oder automatisch gelöscht werden:
-
Manuell: Sie können die Flottenanfrage nach dem Start Ihrer Instances löschen.
Beachten Sie, dass eine gelöschte
instant
Flotte mit laufenden Instances nicht unterstützt wird. Wenn Sie eineinstant
Flotte löschen, beendet Amazon EC2 automatisch alle ihre Instances. Bei Flotten mit mehr als 1000 Instances schlägt die Löschanfrage möglicherweise fehl. Wenn Ihre Flotte über mehr als 1000 Instances verfügt, beenden Sie die meisten Instances zunächst manuell, sodass 1.000 oder weniger übrig bleiben. Löschen Sie dann die Flotte, und die verbleibenden Instances werden automatisch beendet. -
Automatisch: Amazon EC2 löscht die Flottenanfrage einige Zeit nach einer der folgenden Optionen:
-
Alle Instanzen sind beendet.
-
Die Flotte kann keine Instances starten.
-
-
Beispiele
Die folgenden Beispiele zeigen, wie EC2 Fleet of Type instant
für verschiedene Anwendungsfälle verwendet wird. Weitere Informationen zur Verwendung der EC2 CreateFleet API-Parameter finden Sie CreateFleetin 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 6: Spot-Instances nur starten, wenn minimale Zielkapazität 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 12: Einen Systems-Manager-Parameters anstelle einer AMI-ID angeben
Beispiel 1: Starten von Spot-Instances mit der kapazitätsoptimierten Zuweisungsstrategie
Das folgende Beispiel spezifiziert die Parameter, die für eine EC2 Flotte des Typs „Flotte“ erforderlich sindinstant
: Startvorlage, Zielkapazität, Standardkaufoption und Überschreibungen von Startvorlagen.
-
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 Fleet-API-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 V. CPUs Beispielsweise kann eine m5.xlarge (4 V CPUs und 16 GB Arbeitsspeicher) eine Einheit ausführen und ist mit 1 gewichtet, m5.2xlarge (8 V CPUs 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 Gewichtung von Instanzen, 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 auf true setzen. SingleAvailabilityZone
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 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 Überschreibungen der Startspezifikation für alle Startvorlagen verwenden Instance-Gewichtungen, die auf dem v CPUs für den 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 festlegen. 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 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-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
{
"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: 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
"
}]
}]
}
}