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.
Beispielhafte CLI-Konfigurationen für EC2-Flotte
Sie können Ihre EC2-Flottenkonfiguration in einer JSON-Datei definieren und dann mit dem Befehl create-fleet auf diese Datei verweisen, um Ihre Flotte wie folgt zu erstellen:
aws ec2 create-fleet --cli-input-json file://file_name.json
Die folgenden Beispiele veranschaulichen Startkonfigurationen für verschiedene EC2-Flotte-Anwendungsfälle. Weitere Informationen zu den Konfigurationsparametern finden Sie unter create-fleet.
Beispiele
Beispiel 1: Starten von Spot-Instances als Standard-Kaufoption
Beispiel 2: Starten Sie On-Demand Instances als Standardkaufoption
Beispiel 3: Starten Sie On-Demand Instances als primäre Kapazität
Beispiel 4: Starten Sie On-Demand Instances mit mehreren Kapazitätsreservierungen
Beispiel 6: Starten Sie On-Demand Instances mithilfe gezielter Kapazitätsreservierungen
Beispiel 7: Konfigurieren des Kapazitätsneuausgleichs, um Ersatz-Spot-Instances zu starten
Beispiel 8: Starten von Spot Instances in einer kapazitätsoptimierten Flotte
Beispiel 9: Starten von Spot Instances in einer kapazitätsoptimierten Flotte mit Prioritäten
Beispiel 10: Starten von Spot Instances in einer preis-kapazitätsoptimierten Flotte
Beispiel 11: Konfigurieren von attributbasierter Auswahl von Instance-Typen
Weitere CLI-Beispiele für Flotten des Typs instant finden Sie unter EC2-Flotte des Typs instant konfigurieren.
Beispiel 1: Starten von Spot-Instances als Standard-Kaufoption
Das folgende Beispiel gibt die minimalen Parameter an, die in einer EC2-Flotte benötigt werden: eine Startvorlage, eine Zielkapazität und eine Standard-Kaufoption. Die Startvorlage wird durch ihre Startvorlagen-ID und Versionsnummer identifiziert. Die Zielkapazität für die Flotte beträgt 2 Instances, die Standard-Kaufoption ist spot, was dazu führt, dass die Flotte 2 Spot-Instances startet.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" } }
Beispiel 2: Starten Sie On-Demand Instances als Standardkaufoption
Das folgende Beispiel gibt die minimalen Parameter an, die in einer EC2-Flotte benötigt werden: eine Startvorlage, eine Zielkapazität und eine Standard-Kaufoption. Die Startvorlage wird durch ihre Startvorlagen-ID und Versionsnummer identifiziert. Die Zielkapazität für die Flotte beträgt 2 Instances, und die Standardkaufoption iston-demand, was dazu führt, dass die Flotte 2 On-Demand Instances startet.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "on-demand" } }
Beispiel 3: Starten Sie On-Demand Instances als primäre Kapazität
Das folgende Beispiel gibt die Gesamtzielkapazität von 2 Instances für die Flotte und eine Zielkapazität von 1 On-Demand Instance an. Die Standard-Kaufoption ist spot. Die Flotte startet 1 On-Demand Instance wie angegeben, muss jedoch eine weitere Instance starten, um die gesamte Zielkapazität zu erreichen. Die Kaufoption für die Differenz wird berechnet als – TotalTargetCapacityOnDemandTargetCapacity= DefaultTargetCapacityType, was dazu führt, dass die Flotte 1 Spot Instance launcht.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "OnDemandTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } }
Beispiel 4: Starten Sie On-Demand Instances mit mehreren Kapazitätsreservierungen
Sie können eine Flotte so konfigurieren, dass beim Start von On-Demand Instances zuerst On-Demand Kapazitätsreservierungen verwendet werden, indem Sie die Nutzungsstrategie für Kapazitätsreservierungen auf festlegenuse-capacity-reservations-first. Dieses Beispiel zeigt, wie die Flotte die Kapazitätsreservierungen auswählt, die verwendet werden sollen, wenn mehr Kapazitätsreservierungen vorhanden sind, als für die Erreichung der Zielkapazität erforderlich sind.
In diesem Beispiel sieht die Flottenkonfiguration wie folgt aus:
-
Zielkapazität: 12 On-Demand Instances
-
Gesamtzahl der ungenutzten Kapazitätsreservierungen: 15 (mehr als die Zielkapazität der Flotte von 12 On-Demand Instances)
-
Anzahl der Kapazitätsreservierungspools: 3 (
m5.large,m4.xlarge, undm4.2xlarge) -
Anzahl der Kapazitätsreservierungen pro Pool: 5
-
On-Demand Zuweisungsstrategie:
lowest-price(Wenn mehrere ungenutzte Kapazitätsreservierungen in mehreren Instance-Pools vorhanden sind, bestimmt die Flotte auf der Grundlage der On-Demand Zuweisungsstrategie, in welchen Pools die On-Demand Instances gestartet werden sollen.)Beachten Sie, dass Sie auch die
prioritized-Zuordnungsstrategie anstelle derlowest-price-Zuordnungsstrategie verwenden können.
Kapazitätsreservierungen
Das Konto hat die folgenden 15 nicht verwendeten Kapazitätsreservierungen in 3 verschiedenen 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": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }
Flottenkonfiguration
Die folgende Flottenkonfiguration zeigt nur die relevanten Konfigurationen für dieses Beispiel. Die gesamte Zielkapazität beträgt 12 und der Standardzielkapazitätstyp ist on-demand. Die On-Demand Zuweisungsstrategie lautetlowest-price. Die Nutzungsstrategie für Kapazitätsreservierungen ist use-capacity-reservations-first.
In diesem Beispiel ist der On-Demand Instanzpreis:
-
m5.large- 0,096 USD pro Stunde -
m4.xlarge- 0,20 USD pro Stunde -
m4.2xlarge- 0,40 USD pro Stunde
Anmerkung
Der Flottentyp muss vom Typ instant sein. Andere Flotten-Typen unterstützen use-capacity-reservations-first nicht.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-abc1234567example", "Version": "1" }, "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 12, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }
Nachdem Sie die instant-Flotte mit der vorherigen Konfiguration erstellt haben, werden die folgenden 12 Instances gestartet, um die Zielkapazität zu erreichen:
-
5
m5.largeOn-Demand Instances inus-east-1a—m5.largeInus-east-1aist der niedrigste Preis, und es sind 5 ungenutztem5.largeKapazitätsreservierungen verfügbar -
5
m4.xlargeOn-Demand Instances in us-east-1a —m4.xlargeinus-east-1aist der nächstniedrigste Preis, und es sind 5 ungenutzte Kapazitätsreservierungen verfügbarm4.xlarge -
2
m4.2xlargeOn-Demand Instances in us-east-1a —m4.2xlargeInus-east-1aist der drittniedrigste Preis, und es sind 5 ungenutztem4.2xlargeKapazitätsreservierungen verfügbar, von denen nur 2 erforderlich sind, um die Zielkapazität zu erreichen
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 m5.large- und m4.xlarge-Kapazitätsreservierungen verwendet wurden, wobei 3 m4.2xlarge-Kapazitätsreservierungen nicht verwendet wurden.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 3 }
Beispiel 5: Starten Sie On-Demand Instances mithilfe von Kapazitätsreservierungen, wenn die gesamte Zielkapazität die Anzahl der ungenutzten Kapazitätsreservierungen übersteigt
Sie können eine Flotte so konfigurieren, dass beim Starten von On-Demand Instances zuerst On-Demand Kapazitätsreservierungen verwendet werden, indem Sie die Nutzungsstrategie für Kapazitätsreservierungen auf festlegenuse-capacity-reservations-first. Dieses Beispiel zeigt, wie die Flotte die Instance-Pools auswählt, in denen On-Demand Instances gestartet werden sollen, wenn die Gesamtzielkapazität die Anzahl der verfügbaren ungenutzten Kapazitätsreservierungen übersteigt.
In diesem Beispiel sieht die Flottenkonfiguration wie folgt aus:
-
Zielkapazität: 16 On-Demand Instances
-
Gesamtzahl der ungenutzten Kapazitätsreservierungen: 15 (weniger als die Zielkapazität der Flotte von 16 On-Demand Instances)
-
Anzahl der Kapazitätsreservierungspools: 3 (
m5.large,m4.xlarge, undm4.2xlarge) -
Anzahl der Kapazitätsreservierungen pro Pool: 5
-
On-Demand Zuweisungsstrategie:
lowest-price(Wenn die Anzahl der ungenutzten Kapazitätsreservierungen unter der On-Demand Zielkapazität liegt, bestimmt die Flotte auf der Grundlage der On-Demand Zuweisungsstrategie, in welchen Pools die verbleibende On-Demand Kapazität in Betrieb genommen werden soll.)Beachten Sie, dass Sie auch die
prioritized-Zuordnungsstrategie anstelle derlowest-price-Zuordnungsstrategie verwenden können.
Kapazitätsreservierungen
Das Konto hat die folgenden 15 nicht verwendeten Kapazitätsreservierungen in 3 verschiedenen 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": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }
Flottenkonfiguration
Die folgende Flottenkonfiguration zeigt nur die relevanten Konfigurationen für dieses Beispiel. Die gesamte Zielkapazität beträgt 16 und der Standardzielkapazitätstyp ist on-demand. Die On-Demand Zuweisungsstrategie lautetlowest-price. Die Nutzungsstrategie für Kapazitätsreservierungen ist use-capacity-reservations-first.
In diesem Beispiel ist der On-Demand Instanzpreis:
-
m5.large – 0,096 USD pro Stunde
-
m4.xlarge – 0,20 USD pro Stunde
-
m4.2xlarge – 0,40 USD pro Stunde
Anmerkung
Der Flottentyp muss instant sein. Andere Flotten-Typen unterstützen use-capacity-reservations-first nicht.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" }, "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 16, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }
Nachdem Sie die instant-Flotte mit der vorherigen Konfiguration erstellt haben, werden die folgenden 16 Instances gestartet, um die Zielkapazität zu erreichen:
-
6
m5.largeOn-Demand Instances inus-east-1a—m5.largeInus-east-1aist der niedrigste Preis, und es sind 5 ungenutztem5.largeKapazitätsreservierungen verfügbar. Die Kapazitätsreservierungen werden zuerst verwendet, um 5 On-Demand Instances zu starten. Nachdem die verbleibenden Reservationenm4.xlargeund diem4.2xlargeKapazitätsreservierungen genutzt wurden, um die Zielkapazität zu erreichen, wird gemäß der On-Demand Zuweisungsstrategie, dielowest-pricein diesem Beispiel dargestellt ist, eine zusätzliche On-Demand Instance gestartet. -
5
m4.xlargeOn-Demand Instances inus-east-1a—m4.xlargeInus-east-1aist der nächstniedrigste Preis, und es sind 5 ungenutztem4.xlargeKapazitätsreservierungen verfügbar -
5
m4.2xlargeOn-Demand Instances inus-east-1a—m4.2xlargeInus-east-1aist der drittniedrigste Preis, und es sind 5 ungenutztem4.2xlargeKapazitätsreservierungen verfügbar
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 sollte die folgende Antwort angezeigt werden, die zeigt, dass alle Kapazitätsreservierungen in allen Pools verwendet wurden.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 0 }
Beispiel 6: Starten Sie On-Demand Instances mithilfe gezielter Kapazitätsreservierungen
Sie können eine Flotte so konfigurieren, dass beim Start von On-Demand Instances zuerst targeted On-Demand Kapazitätsreservierungen verwendet werden, indem Sie die Nutzungsstrategie für Kapazitätsreservierungen auf festlegenuse-capacity-reservations-first. Dieses Beispiel zeigt, wie On-Demand Instances mit targeted Kapazitätsreservierungen gestartet werden, wobei die Attribute der Kapazitätsreservierungen bis auf ihre Availability Zones (us-east-1aundus-east-1b) identisch sind. Es zeigt auch, wie die Flotte die Instance-Pools auswählt, in denen On-Demand Instances gestartet werden sollen, wenn die Gesamtzielkapazität die Anzahl der verfügbaren ungenutzten Kapazitätsreservierungen übersteigt.
In diesem Beispiel sieht die Flottenkonfiguration wie folgt aus:
-
Zielkapazität: 10 On-Demand Instances
-
Gesamtzahl der ungenutzten
targetedKapazitätsreservierungen: 6 (weniger als die On-Demand Zielkapazität der Flotte von 10 On-Demand Instances) -
Anzahl der Kapazitätsreservierungspools: 2 (
us-east-1aundus-east-1b) -
Anzahl der Kapazitätsreservierungen pro Pool: 3
-
On-Demand Zuweisungsstrategie:
lowest-price(Wenn die Anzahl der ungenutzten Kapazitätsreservierungen unter der On-Demand Zielkapazität liegt, bestimmt die Flotte auf der Grundlage der On-Demand Zuweisungsstrategie, in welchen Pools die verbleibende On-Demand Kapazität in Betrieb genommen werden soll.)Beachten Sie, dass Sie auch die
prioritized-Zuordnungsstrategie anstelle derlowest-price-Zuordnungsstrategie verwenden können.
Einen Walkthrough zu den Verfahren, die Sie ausführen müssen, um dieses Beispiel zu erreichen, finden Sie unter Tutorial: Konfigurieren Sie EC2 Fleet so, dass On-Demand Instances mithilfe gezielter Kapazitätsreservierungen gestartet werden.
Kapazitätsreservierungen
Das Konto hat die folgenden 6 nicht verwendeten Kapazitätsreservierungen in 2 verschiedenen Pools. In diesem Beispiel unterscheiden sich die Pools durch ihre Availability Zones. Die Anzahl der Kapazitätsreservierungen in jedem Pool wird durch AvailableInstanceCount angezeigt.
{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1b", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" }
Flottenkonfiguration
Die folgende Flottenkonfiguration zeigt nur die relevanten Konfigurationen für dieses Beispiel. Die gesamte Zielkapazität beträgt 10 und der Standardzielkapazitätstyp ist on-demand. Die On-Demand Zuweisungsstrategie lautetlowest-price. Die Nutzungsstrategie für Kapazitätsreservierungen ist use-capacity-reservations-first.
In diesem Beispiel us-east-1 beträgt der On-Demand Instance-Preis für c5.xlarge in 0,17 USD pro Stunde.
Anmerkung
Der Flottentyp muss instant sein. Andere Flotten-Typen unterstützen use-capacity-reservations-first nicht.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "c5.xlarge", "AvailabilityZone": "us-east-1a" }, { "InstanceType": "c5.xlarge", "AvailabilityZone": "us-east-1b" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity":10, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }
Nachdem Sie die instant-Flotte mit der vorherigen Konfiguration erstellt haben, werden die folgenden 10 Instances gestartet, um die Zielkapazität zu erreichen:
-
Die Kapazitätsreservierungen werden zuerst verwendet, um 6 On-Demand Instances wie folgt zu starten:
-
3 On-Demand Instances werden in den 3
c5.xlargetargetedKapazitätsreservierungen gestartetus-east-1a -
3 On-Demand Instances werden in den 3
c5.xlargetargetedKapazitätsreservierungen gestartetus-east-1b
-
-
Um die Zielkapazität zu erreichen, werden 4 weitere On-Demand Instances gemäß der On-Demand Zuweisungsstrategie, die
lowest-pricein diesem Beispiel dargestellt ist, auf reguläre On-Demand Kapazität umgestellt. Da die Pools jedoch denselben Preis haben (da der Preis pro Region und nicht pro Availability Zone gilt), startet die Flotte die verbleibenden 4 On-Demand Instances in einem der Pools.
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 sollte die folgende Antwort angezeigt werden, die zeigt, dass alle Kapazitätsreservierungen in allen Pools verwendet wurden.
{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 }
Beispiel 7: Konfigurieren des Kapazitätsneuausgleichs, um Ersatz-Spot-Instances zu starten
Im folgenden Beispiel wird die EC2-Flotte so konfiguriert, dass eine Ersatz-Spot-Instance gestartet wird, wenn Amazon EC2 eine Neuausgleichsempfehlung für eine Spot-Instance in der Flotte ausgibt. Um die automatische Ersetzung von Spot-Instances zu konfigurieren, geben Sie für ReplacementStrategy launch-before-terminate an. Um die Zeitverzögerung vom Start der neuen Ersatz-Spot-Instances bis zum automatischen Löschen der alten Spot-Instances zu konfigurieren, geben Sie für termination-delay einen Wert in Sekunden an. Weitere Informationen finden Sie unter Konfigurationsoptionen.
Anmerkung
Wir empfehlen die Verwendung von launch-before-terminate nur wenn Sie vorhersagen können, wie lange Ihre Verfahren zum Herunterfahren der Instances dauern werden, damit die alten Instances erst beendet werden, nachdem diese Verfahren abgeschlossen sind. Ihnen werden alle Instances in Rechnung gestellt, während sie ausgeführt werden.
Die Wirksamkeit der Kapazitätsausgleichsstrategie hängt von der Anzahl der in der EC2-Flotte-Anforderung angegebenen Spot-Kapazitätspools ab. Wir empfehlen, dass Sie die Flotte mit einem diversifizierten Satz von Instance-Typen und Availability Zones konfigurieren und für AllocationStrategy capacity-optimized angeben. Weitere Informationen darüber, was Sie bei der Konfiguration eines EC2-Flotte für einen Kapazitätsausgleich beachten sollten, finden Sie unter Den Kapazitätsausgleich in der EC2-Flotte und der Spot-Flotte verwenden, um gefährdete Spot Instances zu ersetzen.
{ "ExcessCapacityTerminationPolicy": "termination", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceType": "c3.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c4.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c5.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 5, "DefaultTargetCapacityType": "spot" }, "SpotOptions": { "AllocationStrategy": "capacity-optimized", "MaintenanceStrategies": { "CapacityRebalance": { "ReplacementStrategy": "launch-before-terminate", "TerminationDelay": "720" } } } }
Beispiel 8: Starten von Spot Instances in einer kapazitätsoptimierten Flotte
Im folgenden Beispiel wird veranschaulicht, wie eine EC2-Flotte mit einer Spot-Zuweisungsstrategie konfiguriert wird, die die Kapazität optimiert. Um die Kapazität zu optimieren, müssen Sie AllocationStrategy auf capacity-optimized festlegen.
Im folgenden Beispiel geben die drei Startspezifikationen drei Spot-Kapazitätspools an. Die Zielkapazität beträgt 50 Spot-Instances. Die EC2-Flotte versucht, 50 Spot-Instances in dem Spot-Kapazitätspool zu starten, der über die optimale Kapazität für die Anzahl der zu startenden Instances verfügt.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "DefaultTargetCapacityType": "spot" } }
Beispiel 9: Starten von Spot Instances in einer kapazitätsoptimierten Flotte mit Prioritäten
Im folgenden Beispiel wird veranschaulicht, wie eine EC2-Flotte mit einer Spot-Zuweisungsstrategie konfiguriert wird, die die Kapazität optimiert und dabei die Priorität so weit wie möglich berücksichtigt.
Bei Verwendung der capacity-optimized-prioritized-Zuweisungsstrategie können Sie den Priority-Parameter verwenden, um die Prioritäten der Spot-Kapazitätspools anzugeben. Je niedriger die Zahl ist, desto höher ist die Priorität. Sie können die gleiche Priorität auch für mehrere Spot-Kapazitätspools festlegen, wenn sie für Sie die gleiche Priorität haben. Wenn Sie keine Priorität für einen Pool festlegen, wird für den Pool die niedrigste Priorität angenommen.
Um Spot-Kapazitätspools zu priorisieren, müssen Sie AllocationStrategy auf capacity-optimized-prioritized festlegen. Die EC2-Flotte wird zuerst für die Kapazität optimiert, berücksichtigt jedoch so gut wie möglich die Prioritäten (wenn z. B. die Berücksichtigung der Prioritäten keinen wesentlichen Einfluss auf die Fähigkeit der EC2-Flotte zur Bereitstellung optimaler Kapazität hat). Dies ist eine gute Option für Workloads, bei denen die Möglichkeit von Unterbrechungen minimiert werden muss und die Präferenz für bestimmte Instance-Typen wichtig ist.
Im folgenden Beispiel geben die drei Startspezifikationen drei Spot-Kapazitätspools an. Jeder Pool wird priorisiert. Je niedriger die Zahl ist, desto höher ist die Priorität. Die Zielkapazität beträgt 50 Spot-Instances. Die EC2-Flotte versucht nach Möglichkeit, 50 Spot-Instances in dem Spot-Kapazitätspool mit der höchsten Priorität zu starten. Zuerst optimiert sie jedoch die Kapazität.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized-prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Priority": 1, "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Priority": 2, "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Priority": 3, "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "DefaultTargetCapacityType": "spot" }
Beispiel 10: Starten von Spot Instances in einer preis-kapazitätsoptimierten Flotte
Im folgenden Beispiel wird veranschaulicht, wie eine EC2-Flotte mit einer Spot-Zuweisungsstrategie konfiguriert wird, die sowohl die Kapazität als auch den Preis optimiert. Um die Kapazität zu optimieren und gleichzeitig den Preis zu berücksichtigen, müssen Sie den Spot AllocationStrategy auf price-capacity-optimized setzen.
Im folgenden Beispiel geben die drei Startspezifikationen drei Spot-Kapazitätspools an. Die Zielkapazität beträgt 50 Spot-Instances. Die EC2-Flotte versucht, 50 Spot Instances in dem Spot-Kapazitätspool zu starten, der über die optimale Kapazität für die Anzahl der zu startenden Instances verfügt, und gleichzeitig den günstigsten Pool auszuwählen.
{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized", "MinTargetCapacity": 2, "SingleInstanceType": true }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "OnDemandTargetCapacity":0, "SpotTargetCapacity":50, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Beispiel 11: Konfigurieren von attributbasierter Auswahl von Instance-Typen
Im folgenden Beispiel wird veranschaulicht, wie eine EC2-Flotte so konfiguriert wird, dass sie die attributbasierte Instance-Typauswahl zur Identifizierung von Instance-Typen verwendet. Um die erforderlichen Instance-Attribute anzugeben, geben Sie die Attribute in der InstanceRequirements-Struktur an.
Im folgenden Beispiel werden zwei Instance-Attribute angegeben:
-
VCpuCount– Es sind mindestens 2 vCPUs angegeben. Da kein Maximum angegeben ist, gibt es keine Höchstgrenze. -
MemoryMiB– Es werden mindestens 4 MiB Arbeitsspeicher angegeben. Da kein Maximum angegeben ist, gibt es keine Höchstgrenze.
Alle Instance-Typen mit 2 oder mehr vCPUs und 4 MiB oder mehr Arbeitsspeicher werden identifiziert. Der Preisschutz und die Zuweisungsstrategie könnten jedoch einige Instance-Typen ausschließen, wenn die EC2-Flotte die Flotte bereitstellt.
Eine Liste und Beschreibungen aller möglichen Attribute, die Sie angeben können, finden Sie InstanceRequirements in der Amazon EC2-API-Referenz.
{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized" }, "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min":12}, "MemoryMiB": { "Min":4} } }] }], "TargetCapacitySpecification": { "TotalTargetCapacity":20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }