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.
Attributbasierte Auswahl von Instance-Typen für Spot-Flotte
Wenn Sie eine Spot-Flotte erstellen, müssen Sie mindestens einen Instance-Typ für die Konfiguration der On-Demand-Instances und Spot-Instances in der Flotte angeben. Alternativ zur manuellen Angabe der Instance-Typen können Sie die Attribute angeben, die eine Instance haben muss, und Amazon EC2 identifiziert alle Instance-Typen mit diesen Attributen. Dies ist bekannt als attributbasierte Instance-Typauswahl. Sie können beispielsweise die minimale und maximale Anzahl von vCPUs angeben, die für Ihre Instances erforderlich sind, und die Spot-Flotte startet die Instances mit allen verfügbaren Instance-Typen, die diese vCPU-Anforderungen erfüllen.
Die attributbasierte Auswahl von Instance-Typen ist ideal für Workloads und Frameworks, die hinsichtlich der verwendeten Instance-Typen flexibel sein können, etwa beim Ausführen von Containern oder Web-Flotten, beim Verarbeiten von Big Data und der Implementierung von Tools zur fortlaufenden Integration und Bereitstellung (CI/CD).
Vorteile
Die Auswahl des attributbasierten Instance-Typs bietet folgende Vorteile:
-
Einfache Verwendung der richtigen Instance-Typen — Bei so vielen verfügbaren Instance-Typen kann es zeitaufwändig sein, die richtigen Instance-Typen für Ihren Workload zu finden. Wenn Sie Instance-Attribute angeben, haben die Instance-Typen automatisch die erforderlichen Attribute für Ihre Workload.
-
Vereinfachte Konfiguration — Um mehrere Instance-Typen für eine Spot-Flotte manuell anzugeben, müssen Sie für jeden Instance-Typ eine separate Überschreibung der Startvorlage erstellen. Bei der attributbasierten Auswahl von Instance-Typen müssen Sie jedoch nur die Instance-Attribute in der Startvorlage oder in einer Startvorlagen-Überschreibung angeben, um mehrere Instance-Typen bereitzustellen.
-
Automatische Verwendung neuer Instance-Typen — Wenn Sie Instance-Attribute anstelle von Instance-Typen angeben, kann Ihre Flotte Instance-Typen der neueren Generation verwenden, sobald sie veröffentlicht werden, was die Konfiguration der Flotte „zukunftssicher“ macht.
-
Flexibilität beim Instance-Typ — Wenn Sie Instance-Attribute anstelle von Instance-Typen angeben, kann Spot Fleet für den Start von Spot-Instances aus einer Vielzahl von Instance-Typen wählen. Dies entspricht den bewährten Methoden von Spot zur Flexibilität von Instance-Typen.
Themen
Attributbasierte Auswahl von Instance-Typen
Um die attributbasierte Auswahl von Instance-Typen in Ihrer Flottenkonfiguration zu verwenden, ersetzen Sie die Liste der Instance-Typen durch eine Liste von Instance-Attributen, die Ihre Instances erfordern. Die Spot-Flotte startet Instances für alle verfügbaren Instance-Typen mit den angegebenen Instance-Attributen.
Themen
Arten von Instance-Attributen
Es gibt mehrere Instance-Attribute, die Sie angeben können, um Ihre Rechenanforderungen auszudrücken, wie z. B.:
-
vCPU-Anzahl — Die minimale und maximale Anzahl von vCPUs pro Instanz.
-
Arbeitsspeicher — Das Minimum und das Maximum an Arbeitsspeicher GiBs pro Instanz.
-
Lokaler Speicher — Ob EBS- oder Instance-Speicher-Volumes für den lokalen Speicher verwendet werden sollen.
-
Spitzenleistung — Ob die T-Instance-Familie verwendet werden soll, einschließlich der Typen T4g, T3a, T3 und T2.
Eine Beschreibung der einzelnen Attribute und der Standardwerte finden Sie InstanceRequirementsin der Amazon EC2 API-Referenz.
Wo wird die attributbasierte Auswahl von Instance-Typen konfiguriert?
Je nachdem, ob Sie die Konsole oder die verwenden AWS CLI, können Sie die Instance-Attribute für die attributbasierte Auswahl des Instance-Typs wie folgt angeben:
In der Konsole können Sie die Instance-Attribute in einer oder beiden der folgenden Flottenkonfigurationskomponenten angeben:
-
In einer Startvorlage. Verweisen Sie dann in der Flottenanforderung auf die Startvorlage
-
In der Flottenanforderung
In der AWS CLI können Sie die Instance-Attribute in einer oder allen der folgenden Flottenkonfigurationskomponenten angeben:
-
In einer Startvorlage. Verweisen Sie in der Flottenanforderung auf die Startvorlage.
-
In einer Startvorlagen-Überschreibung
Wenn Sie eine Mischung aus Instances wünschen, die verschiedene AMIs verwenden, können Sie Instance-Attribute in mehreren Startvorlagen-Überschreibungen angeben. Zum Beispiel können verschiedene Instance-Typen x86- und ARM-basierte Prozessoren verwenden.
-
In einer Startspezifikation
Wie die Spot-Flotte bei der Bereitstellung einer Flotte die attributbasierte Auswahl von Instance-Typen verwendet
Die Spot-Flotte stellt eine Flotte auf folgende Weise bereit:
-
Die Spot-Flotte identifiziert die Instance-Typen mit den angegebenen Attributen.
-
Die Spot-Flotte bestimmt anhand des Preisschutzes, welche Instance-Typen ausgeschlossen werden sollen.
-
Spot Fleet bestimmt anhand der AWS Regionen oder Availability Zones, die über die entsprechenden Instance-Typen verfügen, die Kapazitätspools, aus denen der Start der Instances in Betracht gezogen wird.
-
Die Spot-Flotte wendet die angegebene Zuweisungsstrategie an, um zu bestimmen, aus welchen Kapazitätspools die Instances gestartet werden sollen.
Beachten Sie, dass die attributbasierte Auswahl von Instance-Typen nicht die Kapazitätspools auswählt, aus denen die Flotte bereitgestellt werden soll. Dies ist die Aufgabe der Zuweisungsstrategien. Es kann eine große Anzahl von Instance-Typen mit den angegebenen Attributen geben und einige von ihnen sind unter Umständen teuer.
Wenn Sie eine Zuweisungsstrategie angeben, startet die Spot-Flotte Instances gemäß der angegebenen Zuweisungsstrategie.
-
Bei Spot-Instances unterstützt die attributbasierte Auswahl von Instance-Typen die
capacityOptimizedPrioritized
- undcapacityOptimized
- Zuweisungsstrategien. -
Bei On-Demand-Instances unterstützt die attributbasierte Auswahl des Instance-Typs die
lowestPrice
Zuweisungsstrategie, die garantiert, dass Spot Fleet On-Demand-Instances aus den kostengünstigsten Kapazitätspools startet.
-
-
Wenn es keine Kapazität für die Instance-Typen mit den angegebenen Instance-Attributen gibt, können keine Instances gestartet werden und die Flotte gibt einen Fehler zurück.
Preisschutz
Der Preisschutz ist ein Feature, die verhindert, dass Ihre Spot-Flotte Instance-Typen verwendet, die Sie für zu teuer halten würden, selbst wenn sie den von Ihnen angegebenen Attributen entsprechen. Um den Preisschutz zu nutzen, legen Sie einen Preisgrenzwert fest. Wenn Amazon EC2 dann Instance-Typen mit Ihren Attributen auswählt, schließt es Instance-Typen aus, deren Preis über Ihrem Schwellenwert liegt.
Amazon EC2 berechnet den Preisschwellenwert wie folgt:
-
Amazon EC2 identifiziert zunächst den Instance-Typ mit dem niedrigsten Preis aus den Instance-Typen, die Ihren Attributen entsprechen.
-
Amazon EC2 nimmt dann den Wert (ausgedrückt als Prozentsatz), den Sie für den Preisschutzparameter angegeben haben, und multipliziert ihn mit dem Preis des identifizierten Instance-Typs. Das Ergebnis ist der Preis, der als Preisschwellenwert verwendet wird.
Es gibt separate Preisschwellen für On-Demand-Instances und Spot-Instances.
Wenn Sie eine Flotte mit attributbasierter Instance-Typauswahl erstellen, ist der Preisschutz standardmäßig aktiviert. Sie können die Standardwerte beibehalten oder eigene Werte angeben.
Sie können den Preisschutz auch deaktivieren. Um anzugeben, dass es keinen Schwellenwert für den Preisschutz gibt, geben Sie einen hohen Prozentwert an, z. 999999
B.
Themen
Wie wird der Instance-Typ mit dem niedrigsten Preis identifiziert
Amazon EC2 bestimmt den Preis, auf dem der Preisschwellenwert basieren soll, indem es den Instance-Typ mit dem niedrigsten Preis aus den Instance-Typen identifiziert, die Ihren angegebenen Attributen entsprechen. Dies geschieht auf folgende Weise:
-
Zunächst werden die Instance-Typen C, M oder R der aktuellen Generation betrachtet, die Ihren Attributen entsprechen. Wenn es Übereinstimmungen findet, wird der Instance-Typ mit dem niedrigsten Preis identifiziert.
-
Wenn es keine Übereinstimmung gibt, sucht es nach allen Instance-Typen der aktuellen Generation, die Ihren Attributen entsprechen. Wenn es Übereinstimmungen findet, wird der Instance-Typ mit dem niedrigsten Preis identifiziert.
-
Wenn es keine Übereinstimmung gibt, sucht es nach allen Instance-Typen der vorherigen Generation, die Ihren Attributen entsprechen, und identifiziert den Instance-Typ mit dem niedrigsten Preis.
Preisschutz für On-Demand-Instances
Der Schwellenwert für den Preisschutz für On-Demand-Instance-Typen wird als Prozentsatz berechnet, der über dem identifizierten On-Demand-Instance-Typ mit dem niedrigsten Preis liegt (OnDemandMaxPricePercentageOverLowestPrice
). Sie geben den höheren Prozentsatz an, den Sie bereit sind zu zahlen. Wenn Sie diesen Parameter nicht angeben, 20
wird der Standardwert von verwendet, um einen Preisschutzschwellenwert zu berechnen, der 20% über dem identifizierten Preis liegt.
Wenn der identifizierte On-Demand-Instance-Preis beispielsweise0.4271
, und Sie angeben25
, liegt der Preisschwellenwert 25% über0.4271
. Er wird wie folgt berechnet:0.4271 * 1.25 =
0.533875
. Der berechnete Preis ist der Höchstbetrag, den Sie bereit sind, für On-Demand-Instances zu zahlen. In diesem Beispiel schließt Amazon EC2 alle On-Demand-Instance-Typen aus, die mehr als 0.533875
kosten.
Preisschutz für Spot-Instances
Standardmäßig wendet Amazon EC2 automatisch den optimalen Spot-Instance-Preisschutz an, sodass konsistent aus einer Vielzahl von Instance-Typen ausgewählt werden kann. Sie können den Preisschutz auch manuell selbst festlegen. Wenn Sie dies jedoch Amazon EC2 für Sie erledigen lassen, können Sie die Wahrscheinlichkeit erhöhen, dass Ihre Spot-Kapazität ausgeschöpft ist.
Sie können den Preisschutz mithilfe einer der folgenden Optionen manuell angeben. Wenn Sie den Preisschutz manuell festlegen, empfehlen wir, die erste Option zu verwenden.
-
Ein Prozentsatz des identifizierten On-Demand-Instance-Typs mit dem niedrigsten Preis [
MaxSpotPriceAsPercentageOfOptimalOnDemandPrice
]Wenn der angegebene Preis für den On-Demand-Instance-Typ
0.4271
beispielsweise ist und Sie angeben60
, liegt der Preisgrenzwert bei 60% von0.4271
. Er wird wie folgt berechnet:0.4271 * 0.60 = 0.25626
. Der berechnete Preis ist der Höchstbetrag, den Sie bereit sind, für Spot-Instances zu zahlen. In diesem Beispiel schließt Amazon EC2 alle Spot-Instance-Typen aus, die mehr als0.25626
kosten. -
Ein Prozentsatz, der höher ist als der identifizierte Spot-Instance-Typ mit dem niedrigsten Preis []
SpotMaxPricePercentageOverLowestPrice
Wenn der Preis für den identifizierten Spot-Instance-Typ beispielsweise und Sie angeben
25
, liegt der Preisschwellenwert 25% über0.1808
.0.1808
Er wird wie folgt berechnet:0.1808 * 1.25 = 0.226
. Der berechnete Preis ist der Höchstbetrag, den Sie bereit sind, für Spot-Instances zu zahlen. In diesem Beispiel schließt Amazon EC2 alle Spot-Instance-Typen aus, die mehr als0.266
kosten. Wir empfehlen, diesen Parameter nicht zu verwenden, da die Spot-Preise schwanken können und daher auch Ihr Preisschutzschwellenwert schwanken kann.
Geben Sie die Preisschutzschwelle an
Schwellenwert für Preisschutz angeben
Konfigurieren Sie beim Erstellen der Spot-Flotte die Flotte für eine attributbasierte Auswahl des Instance-Typs und gehen Sie dann folgendermaßen vor:
-
Konsole
Zur Eingabe des Schwellenwerts für On-Demand-Instance-Preisschutz wählen Sie unter Additional instance attribute (Zusätzliches Instance-Attribut) die Option On-demand price protection (On-Demand-Preisschutz) aus. Wählen Sie dann Add attribute (Attribut hinzufügen) aus. Geben Sie bei On-Demand price protection percentage (Prozentsatz des On-Demand-Preisschutzes) den Preisschutzschwellenwert als Prozentsatz ein.
Zur Eingabe des Schwellenwerts für Spot-Instance-Preisschutz wählen Sie unter Additional instance attribute (Zusätzliches Instance-Attribut) die Option Sport price protection (Spot-Preisschutz) aus. Wählen Sie dann Add attribute (Attribut hinzufügen) aus. Wählen Sie einen Parameter und geben Sie den Preisschutzschwellenwert als Prozentsatz ein.
-
AWS CLI
Zum Angeben des Schwellenwerts zum Preisschutz für On-Demand-Instances geben Sie in der JSON-Konfigurationsdatei in der
InstanceRequirements
-Struktur fürOnDemandMaxPricePercentageOverLowestPrice
den Preisschutzschwellenwert als Prozentsatz ein.Um den Schwellenwert für den Preisschutz der Spot-Instance anzugeben, geben Sie in der JSON-Konfigurationsdatei in der
InstanceRequirements
Struktur einen der folgenden Parameter an:-
Geben Sie für
MaxSpotPriceAsPercentageOfOptimalOnDemandPrice
den Schwellenwert für den Preisschutz als Prozentsatz ein. -
Geben Sie für
SpotMaxPricePercentageOverLowestPrice
die Preisschutzschwelle als Prozentsatz ein.
-
Weitere Informationen zum Erstellen der Flotte finden Sie unter Erstellen einer Spot-Flotte mit attributbasierter Auswahl von Instance-Typen.
Anmerkung
Wenn Sie beim Erstellen der Spot-Flotte Total target capacity (Gesamtzielkapazität) auf vCPUs oder Memory (MiB) (Arbeitsspeicher (MiB)) (Konsole) oder TargetCapacityUnitType
auf vcpu
oder memory-mib
(AWS CLI) festlegen, wird der Preisschutzschwellenwert anhand des Preises pro vCPU oder pro Arbeitsspeicher anstelle des Preises pro Instance angewendet.
Überlegungen
-
Sie können entweder Instance-Typen oder Instance-Attribute in einer Spot-Flotte angeben, aber nicht beides gleichzeitig.
Wenn Sie die CLI verwenden, überschreiben die Startvorlagen-Überschreibungen die Startvorlage. Wenn die Startvorlage beispielsweise einen Instance-Typ enthält und die Startvorlagen-Überschreibung Instance-Attribute enthält, überschreiben die Instances, die durch die Instance-Attribute identifiziert werden, den Instance-Typ in der Startvorlage.
-
Wenn Sie die CLI verwenden und Instance-Attribute als Überschreibungen angeben, können Sie nicht auch Gewichtungen oder Prioritäten angeben.
-
Sie können maximal vier
InstanceRequirements
-Strukturen in einer Anforderungskonfiguration angeben.
Erstellen einer Spot-Flotte mit attributbasierter Auswahl von Instance-Typen
Sie können mithilfe der Amazon-EC2-Konsole oder der AWS CLI eine Flotte so konfigurieren, dass sie die attributbasierte Auswahl von Instance-Typen verwendet.
Erstellen einer Spot-Flotte mit der Konsole
So konfigurieren Sie eine Spot-Flotte für die attributbasierte Auswahl von Instance-Typen (Konsole)
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Klicken Sie im Navigationsbereich auf Spot-Anforderungen und wählen Sie die Spot-Instances anfordern aus.
-
Befolgen Sie die Schritte zum Erstellen einer Spot-Flotte. Weitere Informationen finden Sie unter Erstellen einer Spot-Flotten-Anforderung mit definierten Parametern (Konsole).
Konfigurieren Sie beim Erstellen der Spot-Flotte wie folgt die Flotte für die attributbasierte Auswahl von Instance-Typen:
-
Wählen Sie für Instance type requirements (Anforderungen hinsichtlich des Instance-Typs) die Option Specify instance attributes that match your compute requirements (Instance-Attribute angeben, die Ihren Computinganforderungen entsprechen) aus.
-
Geben Sie für vCPUs die gewünschte minimale und maximale Anzahl der vCPUs ein. Um kein Limit anzugeben, wählen Sie Kein Minimum, Kein Maximum oder beides.
-
Geben Sie für Arbeitsspeicher (GiB) den gewünschten Mindest- und Höchstwert ein. Um kein Limit anzugeben, wählen Sie Kein Minimum, Kein Maximum oder beide Optionen aus.
-
(Optional) Für Zusätzliche Instance-Attribute können Sie optional ein oder mehrere Attribute angeben, um Ihre Computinganforderungen genauer auszudrücken. Jedes zusätzliche Attribut fügt Ihrer Anfrage weitere Einschränkungen hinzu.
-
(Optional) Um die Instance-Typen mit Ihren angegebenen Attributen anzuzeigen, erweitern Sie Vorschau der übereinstimmenden Instance-Typen.
-
Erstellen Sie eine Spot-Flotte mit dem AWS CLI
So konfigurieren Sie eine Spot-Flotte für die attributbasierte Auswahl von Instance-Typen (AWS CLI)
Verwenden Sie den Befehl request-spot-fleet(AWS CLI), um eine Spot-Flotte zu erstellen. Geben Sie die Flottenkonfiguration in einer JSON-Datei an.
aws ec2 request-spot-fleet \ --region
us-east-1
\ --spot-fleet-request-config file://file_name
.json
-Beispieldateifile_name
.json
Das folgende Beispiel enthält Parameter, mit denen eine Spot-Flotte für attributbasierte Instance-Typauswahl konfiguriert wird, gefolgt von einer Texterklärung.
{ "AllocationStrategy": "
priceCapacityOptimized
", "TargetCapacity":20
, "Type": "request
", "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template
", "Version": "1
" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min":2
}, "MemoryMiB": { "Min":4
} } }] }] }
Die Attribute für die attributbasierte Auswahl von Instance-Typen werden in der InstanceRequirements
-Struktur angegeben. In diesem Beispiel werden zwei 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 Spot-Flotte die Flotte bereitstellt.
Eine Liste und Beschreibungen aller möglichen Attribute, die Sie angeben können, finden Sie InstanceRequirementsin der Amazon EC2 API-Referenz.
Anmerkung
Wenn InstanceRequirements
in der Flottenkonfiguration enthalten ist, müssen InstanceType
und WeightedCapacity
ausgeschlossen werden. Sie können die Flottenkonfiguration nicht gleichzeitig mit den Instance-Attributen bestimmen.
Die JSON-Datei enthält auch die folgende Flottenkonfiguration:
-
"AllocationStrategy": "
– Die Zuweisungsstrategie für die Spot Instances in der Flotte.priceCapacityOptimized
" -
"LaunchTemplateName": "
– Die Startvorlage enthält einige Informationen zur Instance-Konfiguration. Wenn jedoch Instance-Typen angegeben sind, werden diese durch die inmy-launch-template
", "Version": "
"1
InstanceRequirements
angegebenen Attribute überschrieben. -
"TargetCapacity":
– Die Zielkapazität beträgt 20 Instances.20
-
"Type": "
– Der Anforderungstyp für die Flotte istrequest
"request
.
Beispiele für Konfigurationen, die gültig und ungültig sind
Wenn Sie den verwenden AWS CLI , um eine Spot-Flotte zu erstellen, müssen Sie sicherstellen, dass Ihre Flottenkonfiguration gültig ist. Die folgenden Beispiele zeigen gültige und ungültige Konfigurationen.
Konfigurationen gelten als ungültig, wenn sie Folgendes enthalten:
-
Eine einzelne
Overrides
-Struktur mitInstanceRequirements
undInstanceType
-
Zwei
Overrides
-Strukturen, eine mitInstanceRequirements
und die andere mitInstanceType
-
Zwei
InstanceRequirements
-Strukturen mit sich überlappenden Attributwerten innerhalb derselbenLaunchTemplateSpecification
Beispielkonfigurationen
- Gültige Konfiguration: Einzelstartvorlage mit Überschreibungen
- Gültige Konfiguration: Einzelne Startvorlage mit mehreren InstanceRequirements
- Gültige Konfiguration: Zwei Startvorlagen, jede mit Überschreibungen
- Gültige Konfiguration: Nur InstanceRequirements angegeben, keine überlappenden Attributwerte
- Die Konfiguration ist nicht gültig: Overrides enthalten InstanceRequirements und InstanceType.
- Konfiguration ungültig: Zwei Overrides enthalten InstanceRequirements und InstanceType
- Konfiguration ungültig: Überlappende Attributwerte
Gültige Konfiguration: Einzelstartvorlage mit Überschreibungen
Die folgende Konfiguration ist gültig. Sie enthält eine Startvorlage und eine Overrides
-Struktur mit einer InstanceRequirements
-Struktur. Eine Texterklärung der Beispielkonfiguration folgt.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "My-launch-template", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 2, "Max": 8 }, "MemoryMib": { "Min": 0, "Max": 10240 }, "MemoryGiBPerVCpu": { "Max": 10000 }, "RequireHibernateSupport": true } } ] } ], "TargetCapacity": 5000, "OnDemandTargetCapacity": 0, "TargetCapacityUnitType": "vcpu" } }
InstanceRequirements
Um die attributbasierte Instance-Auswahl zu verwenden, müssen Sie die InstanceRequirements
-Struktur in Ihre Flottenkonfiguration aufnehmen und die gewünschten Attribute für die Instances in der Flotte angeben.
Im vorhergehenden Beispiel werden die folgenden Instance-Attribute angegeben:
-
VCpuCount
– Die Instance-Typen müssen mindestens 2 und höchstens 8 vCPUs aufweisen. -
MemoryMiB
– Die Instance-Typen müssen maximal 10240 MiB Speicher haben. Ein Minimum von 0 bedeutet, dass kein Mindestwert vorhanden ist. -
MemoryGiBPerVCpu
– Die Instance-Typen müssen maximal 10 000 GiB Speicher pro vCPU haben. Der ParameterMin
ist optional. Indem Sie ihn weglassen, geben Sie kein Mindestlimit an.
TargetCapacityUnitType
Der TargetCapacityUnitType
-Parameter gibt die Einheit für die Zielkapazität an. Im Beispiel ist die Zielkapazität 5000
und der Typ der Zielkapazitätseinheit vcpu
. Zusammen geben Sie eine gewünschte Zielkapazität von 5 000 vCPUs an. Die Spot-Flotte wird genügend Instances starten, damit die Gesamtzahl der vCPUs in der Flotte 5 000 vCPUs beträgt.
Gültige Konfiguration: Einzelne Startvorlage mit mehreren InstanceRequirements
Die folgende Konfiguration ist gültig. Sie enthält eine Startvorlage und eine Overrides
-Struktur mit zwei InstanceRequirements
-Strukturen. Die in InstanceRequirements
angegebenen Attribute sind gültig, da sich die Werte nicht überschneiden – die erste InstanceRequirements
-Struktur gibt eine VCpuCount
von 0-2 vCPUs an, während die zweite InstanceRequirements
-Struktur 4-8 vCPUs angibt.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 8 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacity": 1, "OnDemandTargetCapacity": 0, "Type": "maintain" } }
Gültige Konfiguration: Zwei Startvorlagen, jede mit Überschreibungen
Die folgende Konfiguration ist gültig. Sie enthält zwei Startvorlagen mit jeweils einer Overrides
-Struktur, die eine InstanceRequirements
-Struktur enthält. Diese Konfiguration ist nützlich für arm
- und x86
-Architekturunterstützung in derselben Flotte.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "armLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "LaunchTemplateSpecification": { "LaunchTemplateName": "x86LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacity": 1, "OnDemandTargetCapacity": 0, "Type": "maintain" } }
Gültige Konfiguration: Nur InstanceRequirements
angegeben, keine überlappenden Attributwerte
Die folgende Konfiguration ist gültig. Sie enthält zwei LaunchTemplateSpecification
-Strukturen, jeweils mit einer Startvorlage und einer Overrides
-Struktur, die eine InstanceRequirements
-Struktur enthält. Die in InstanceRequirements
angegebenen Attribute sind gültig, da sich die Werte nicht überschneiden – die erste InstanceRequirements
-Struktur gibt eine VCpuCount
von 0-2 vCPUs an, während die zweite InstanceRequirements
-Struktur 4-8 vCPUs angibt.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } } ] }, { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyOtherLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 8 }, "MemoryMiB": { "Min": 0 } } } ] } ], "TargetCapacity": 1, "OnDemandTargetCapacity": 0, "Type": "maintain" } }
Die Konfiguration ist nicht gültig: Overrides
enthalten InstanceRequirements
und InstanceType
.
Die folgende Konfiguration ist ungültig. Die Overrides
-Struktur enthält InstanceRequirements
und InstanceType
. Sie können für Overrides
InstanceRequirements
oder InstanceType
angeben, aber nicht beides.
{
"SpotFleetRequestConfig": {
"AllocationStrategy": "priceCapacityOptimized",
"ExcessCapacityTerminationPolicy": "default",
"IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
},
{
"InstanceType": "m5.large"
}
]
}
],
"TargetCapacity": 1,
"OnDemandTargetCapacity": 0,
"Type": "maintain"
}
}
Konfiguration ungültig: Zwei Overrides
enthalten InstanceRequirements
und InstanceType
Die folgende Konfiguration ist ungültig. Die Overrides
-Strukturen enthalten InstanceRequirements
und InstanceType
. Sie können entweder InstanceRequirements
oder InstanceType
angeben, aber nicht beides, auch wenn sie sich in unterschiedlichen Overrides
-Strukturen befinden.
{
"SpotFleetRequestConfig": {
"AllocationStrategy": "priceCapacityOptimized",
"ExcessCapacityTerminationPolicy": "default",
"IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
}
]
},
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyOtherLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceType": "m5.large"
}
]
}
],
"TargetCapacity": 1,
"OnDemandTargetCapacity": 0,
"Type": "maintain"
}
}
Konfiguration ungültig: Überlappende Attributwerte
Die folgende Konfiguration ist ungültig. Die beiden InstanceRequirements
-Strukturen enthalten jeweils "VCpuCount":
{"Min": 0, "Max": 2}
. Die Werte für diese Attribute überschneiden sich, was zu doppelten Kapazitätspools führt.
{
"SpotFleetRequestConfig": {
"AllocationStrategy": "priceCapacityOptimized",
"ExcessCapacityTerminationPolicy": "default",
"IamFleetRole": "arn:aws:iam::000000000000:role/aws-ec2-spot-fleet-tagging-role",
"LaunchTemplateConfigs": [
{
"LaunchTemplateSpecification": {
"LaunchTemplateName": "MyLaunchTemplate",
"Version": "1"
},
"Overrides": [
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
},
{
"InstanceRequirements": {
"VCpuCount": {
"Min": 0,
"Max": 2
},
"MemoryMiB": {
"Min": 0
}
}
}
}
]
}
],
"TargetCapacity": 1,
"OnDemandTargetCapacity": 0,
"Type": "maintain"
}
}
Vorschau von Instance-Typen mit bestimmten Attributen
Sie können den AWS CLI Befehl get-instance-types-from-instance-requirements verwenden, um eine Vorschau der Instance-Typen anzuzeigen, die den von Ihnen angegebenen Attributen entsprechen. Dies ist besonders nützlich, um herauszufinden, welche Attribute in Ihrer Anforderungskonfiguration angegeben werden sollen, ohne Instances zu starten. Beachten Sie, dass der Befehl die verfügbare Kapazität nicht berücksichtigt.
Um eine Vorschau einer Liste von Instanztypen anzuzeigen, indem Sie Attribute mit dem AWS CLI
-
(Optional) Um alle möglichen Attribute zu generieren, die angegeben werden können, verwenden Sie den Befehl get-instance-types-from-instance-requirements und den Parameter.
--generate-cli-skeleton
Sie können die Ausgabe optional in eine Datei umleiten, um sie mit mitinput >
zu speichern.attributes.json
aws ec2 get-instance-types-from-instance-requirements \ --region us-east-1 \ --generate-cli-skeleton input >
attributes.json
Erwartete Ausgabe
{ "DryRun": true, "ArchitectureTypes": [ "i386" ], "VirtualizationTypes": [ "hvm" ], "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 0 }, "MemoryMiB": { "Min": 0, "Max": 0 }, "CpuManufacturers": [ "intel" ], "MemoryGiBPerVCpu": { "Min": 0.0, "Max": 0.0 }, "ExcludedInstanceTypes": [ "" ], "InstanceGenerations": [ "current" ], "SpotMaxPricePercentageOverLowestPrice": 0, "OnDemandMaxPricePercentageOverLowestPrice": 0, "BareMetal": "included", "BurstablePerformance": "included", "RequireHibernateSupport": true, "NetworkInterfaceCount": { "Min": 0, "Max": 0 }, "LocalStorage": "included", "LocalStorageTypes": [ "hdd" ], "TotalLocalStorageGB": { "Min": 0.0, "Max": 0.0 }, "BaselineEbsBandwidthMbps": { "Min": 0, "Max": 0 }, "AcceleratorTypes": [ "gpu" ], "AcceleratorCount": { "Min": 0, "Max": 0 }, "AcceleratorManufacturers": [ "nvidia" ], "AcceleratorNames": [ "a100" ], "AcceleratorTotalMemoryMiB": { "Min": 0, "Max": 0 }, "NetworkBandwidthGbps": { "Min": 0.0, "Max": 0.0 }, "AllowedInstanceTypes": [ "" ] }, "MaxResults": 0, "NextToken": "" }
-
Erstellen Sie eine JSON-Konfigurationsdatei mit der Ausgabe des vorherigen Schritts und konfigurieren Sie sie wie folgt:
Anmerkung
Sie müssen Werte für
ArchitectureTypes
,VirtualizationTypes
,VCpuCount
undMemoryMiB
angeben. Sie können die anderen Attribute weglassen. In diesem Fall werden die Standardwerte verwendet.Eine Beschreibung der einzelnen Attribute und ihrer Standardwerte finden Sie unter get-instance-types-from-instance-requirements in der Amazon EC2 EC2-Befehlszeilenreferenz.
-
Geben Sie für
ArchitectureTypes
mindestes einen Prozessorarchitekturtyp an. -
Geben Sie für
VirtualizationTypes
mindestens eine Art von Virtualisierung an. -
Geben Sie für
VCpuCount
die minimale und maximale Anzahl von vCPUs an. Wenn Sie keine Mindestgrenze angeben möchten, geben Sie0
fürMin
an. Wenn Sie keine Maximalgrenze angeben möchten, lassen Sie denMax
-Parameter weg. -
Geben Sie für
MemoryMiB
den Mindest- und Höchstwert für Speicher in MiB an. Wenn Sie keine Mindestgrenze angeben möchten, geben Sie0
fürMin
an. Wenn Sie keine Maximalgrenze angeben möchten, lassen Sie denMax
-Parameter weg. -
Sie können optional eines oder mehrere der anderen Attribute angeben, um die Liste der zurückgegebenen Instance-Typen weiter einzuschränken.
-
-
Um eine Vorschau der Instance-Typen mit den Attributen anzuzeigen, die Sie in der JSON-Datei angegeben haben, verwenden Sie den Befehl get-instance-types-from-instance-requirements und geben Sie mithilfe des Parameters den Namen und den Pfad zu Ihrer JSON-Datei an.
--cli-input-json
Sie können die Ausgabe optional so formatieren, dass sie in einem Tabellenformat angezeigt wird.aws ec2 get-instance-types-from-instance-requirements \ --cli-input-json file://
attributes.json
\ --output tableBeispiel-Datei
Attribute.json
In diesem Beispiel sind die erforderlichen Attribute in der JSON-Datei enthalten. Sie lauten
ArchitectureTypes
,VirtualizationTypes
,VCpuCount
, undMemoryMiB
. Darüber hinaus ist das optionaleInstanceGenerations
-Attribut ebenfalls enthalten. Beachten Sie, dass fürMemoryMiB
derMax
-Wert weggelassen werden kann, um anzuzeigen, dass kein Grenzwert vorhanden ist.{ "ArchitectureTypes": [ "x86_64" ], "VirtualizationTypes": [ "hvm" ], "InstanceRequirements": { "VCpuCount": { "Min": 4, "Max": 6 }, "MemoryMiB": { "Min": 2048 }, "InstanceGenerations": [ "current" ] } }
Beispielausgabe
------------------------------------------ |GetInstanceTypesFromInstanceRequirements| +----------------------------------------+ || InstanceTypes || |+--------------------------------------+| || InstanceType || |+--------------------------------------+| || c4.xlarge || || c5.xlarge || || c5a.xlarge || || c5ad.xlarge || || c5d.xlarge || || c5n.xlarge || || c6a.xlarge || ...
-
Nachdem Sie Instance-Typen identifiziert haben, die Ihren Anforderungen entsprechen, notieren Sie die Instance-Attribute, die Sie verwendet haben, damit Sie sie beim Konfigurieren Ihrer Flottenanforderung verwenden können.