Geben Sie Attribute für die Auswahl von Instance-Typen für EC2-Flotte oder Spot-Flotte an - Amazon Elastic Compute Cloud

Geben Sie Attribute für die Auswahl von Instance-Typen für EC2-Flotte oder Spot-Flotte an

Wenn Sie eine EC2-Flotte oder 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 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:

  • Einfacher Einsatz der richtigen Instance-Typen – Da so viele Instance-Typen verfügbar sind, kann es zeitaufwendig sein, die richtigen Instance-Typen für Ihre 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 Flotte manuell anzugeben, müssen Sie für jeden Instance-Typ eine separate Überschreibung der Startvorlagen 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 bei der Freigabe Instance-Typen einer neueren Generation verwenden, um die Zukunftsfähigkeit der Flottenkonfiguration zu gewährleisten.

  • Flexible Instance-Typen – Wenn Sie Instance-Attribute anstelle von Instance-Typen angeben, kann die Spot-Flotte aus einer Vielzahl von Instance-Typen zum Starten von Spot-Instances auswählen, was der bewährten Spot-Methode der Flexibilität von Instance-Typen entspricht.

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 EC2-Flotte oder Spot-Flotte startet Instances für alle verfügbaren Instance-Typen mit den angegebenen Instance-Attributen.

Arten von Instance-Attributen

Es gibt mehrere Instance-Attribute, die Sie angeben können, um Ihre Datenverarbeitungsanforderungen auszudrücken, wie:

  • vCPU-Anzahl – Die minimale und maximale Anzahl von vCPUs pro Instance.

  • Arbeitsspeicher – Die minimalen und maximalen GiBs Arbeitsspeicher pro Instance.

  • Lokaler Speicher – Ob EBS- oder Instance-Speicher-Volumes für den lokalen Speicher verwendet werden sollen.

  • Burstable Performance – Gibt an, 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 unter InstanceRequirements in der Amazon-EC2-API-Referenz.

Wo wird die attributbasierte Auswahl von Instance-Typen konfiguriert?

Je nachdem, ob Sie die Konsole oder die AWS CLI verwenden, können Sie die Instance-Attribute für die attributbasierte Auswahl von Instance-Typen 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

  • (Nur Spot-Flotte) In der Flottenanfrage

In der AWS CLI können Sie die Instance-Attribute in einer oder allen der folgenden Flottenkonfigurationskomponenten angeben:

  • In einer Startvorlage. Verweisen Sie dann 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.

  • (Nur Spot-Flotte) In einer Startspezifikation

Wie die EC2-Flotte oder Spot-Flotte bei der Bereitstellung einer Flotte die attributbasierte Auswahl von Instance-Typen verwendet

Die EC2-Flotte oder Spot-Flotte stellt eine Flotte auf folgende Weise bereit:

  • Sie identifiziert die Instance-Typen mit den angegebenen Attributen.

  • Sie bestimmt anhand des Preisschutzes, welche Instance-Typen ausgeschlossen werden sollen.

  • Sie bestimmt die Kapazitätspools, aus denen die Instances gestartet werden sollen, basierend auf den AWS-Regionen oder Availability Zones mit übereinstimmenden Instance-Typen.

  • Sie 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.

    Wenn Sie eine Zuweisungsstrategie angeben, startet die Flotte Instances gemäß der angegebenen Zuweisungsstrategie.

    • Bei Spot-Instances unterstützt die attributbasierte Auswahl von Instance-Typen die Preis-Kapazitätsoptimierte, kapazitätsoptimierte und niedrigstpreisige Zuweisungsstrategien. Beachten Sie, dass wir nicht die Spot-Allokationsstrategie mit dem niedrigsten Preis empfehlen, da sie das höchste Unterbrechungsrisiko für Ihre Spot-Instances birgt.

    • Für On-Demand-Instances unterstützt die attributbasierte Auswahl von Instance-Typen die niedrigstpreisige Zuweisungsstrategie.

  • 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, das verhindert, dass IhreEC2-Flotte oder 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 Instance-Typen mit Ihren Attributen auswählt, werden Instance-Typen ausgeschlossen, die über Ihrem Schwellenwert liegen.

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 Preisschwellenwert für On-Demand-Instances und Spot-Instances.

Wenn Sie eine Flotte mit attributbasierter Auswahl von Instance-Typen erstellen, ist der Preisschutz standardmäßig aktiviert. Sie können die Standardwerte beibehalten oder Ihre eigenen angeben.

Sie können den Preisschutz auch deaktivieren. Um anzugeben, dass es keinen Preisschutzschwellenwert gibt, geben Sie einen hohen Prozentsatz an, z. B. 999999.

Wie der Instance-Typ mit dem niedrigsten Preis identifiziert wird

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. Das macht es 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.

On-Demand-Instance-Preisschutz

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 zu zahlen bereit sind. Wenn Sie diesen Parameter nicht angeben, wird ein Standardwert von 20 verwendet, um einen Preisschutzschwellenwert zu berechnen, der 20 % über dem identifizierten Preis liegt.

Wenn der identifizierte On-Demand-Instance-Preis beispielsweise 0.4271 ist, und Sie 25 angeben, liegt der Preisschwellenwert 25 % über 0.4271. Die Berechnung ist wie folgt: 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.

Spot-Instance-Preisschutz

Standardmäßig wendet Amazon EC2 automatisch einen optimalen Spot-Instance-Preisschutz an, sodass konsistent aus einer breiten Palette 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 erfüllt ist.

Sie können den Preisschutz mit 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 beispielsweise 0.4271 ist und Sie 60 angeben, liegt der Preisgrenzwert bei 60 % von 0.4271. Die Berechnung ist wie folgt: 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 als 0.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 0.1808 ist und Sie 25 angeben, liegt der Preisschwellenwert 25 % über 0.1808. Die Berechnung ist wie folgt: 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 als 0.266 kosten. Wir empfehlen die Verwendung dieses Parameters nicht, da die Spot-Preise schwanken können und daher auch Ihr Preisschutzschwellenwert schwanken kann.

Schwellenwert für Preisschutz angeben

Schwellenwert für Preisschutz mit der AWS CLI angeben

Konfigurieren Sie beim Erstellen der EC2-Flotte oder Spot-Flotte mit der AWS CLI die Flotte für eine attributbasierte Auswahl des Instance-Typs und gehen Sie dann folgendermaßen vor:

  • Zum Angeben des Schwellenwerts zum Preisschutz für On-Demand-Instances geben Sie in der JSON-Konfigurationsdatei in der InstanceRequirements-Struktur für OnDemandMaxPricePercentageOverLowestPrice den Preisschutzschwellenwert als Prozentsatz ein.

  • Zum Angeben des Schwellenwerts zum Preisschutz für Spot-Instances geben Sie in der JSON-Konfigurationsdatei in der InstanceRequirements-Struktur einen der folgenden Parameter an:

    • Geben Sie bei MaxSpotPriceAsPercentageOfOptimalOnDemandPrice den Preisschutzschwellenwert als Prozentsatz ein.

    • Geben Sie bei SpotMaxPricePercentageOverLowestPrice den Preisschutzschwellenwert als Prozentsatz ein.

Weitere Informationen finden Sie unter Erstellen einer EC2-Flotte mit attributbasierter Auswahl von Instance-Typen oder Erstellen einer Spot-Flotte mit attributbasierter Auswahl von Instance-Typen.

(Nur Spot-Flotte) Schwellenwert für Preisschutz mit der Konsole angeben

Konfigurieren Sie beim Erstellen der Spot-Flotte in der Konsole die Flotte für eine attributbasierte Auswahl des Instance-Typs und gehen Sie dann folgendermaßen vor:

  • Zur Eingabe des Schwellenwerts für On-Demand-Instance-Preisschutz wählen Sie unter Zusätzliches Instance-Attribut die Option On-Demand-Preisschutz aus. Wählen Sie dann Attribut hinzufügen aus.

  • Um den Schwellenwert für die Preisgarantie einer Spot Instance festzulegen, wählen Sie Zusätzliches Instance-Attribut, wählen Sie Spot-Preisschutz, wählen Sie Attribut hinzufügen, wählen Sie einen Basiswert, auf dem Ihr Preis basieren soll, und geben Sie dann den Schwellenwert für die Preisgarantie als Prozentsatz ein.

Anmerkung

Wenn Sie beim Erstellen der Flotte TargetCapacityUnitType auf vcpu oder memory-mib festlegen, wird der Schwellenwert für den Preisschutz anhand des Preises pro vCPU oder pro Arbeitsspeicher anstelle des Preises pro Instance angewendet.

Leistungsschutz

Der Leistungsschutz ist eine Funktion, die sicherstellt, dass Ihre EC2-Flotte oder Spot-Flotte Instance-Typen verwendet, die einer bestimmten Leistungsbasislinie ähnlich sind oder diese übertreffen. Um den Leistungsschutz zu nutzen, geben Sie eine Instance-Familie als Basisreferenz an. Die Funktionen der angegebenen Instance-Familie stellen das niedrigste akzeptable Leistungsniveau dar. Bei der Auswahl von Instance-Typen für Ihre Flotte berücksichtigt Amazon EC2 Ihre angegebenen Attribute und die Leistungsbasis. Instance-Typen, die unter die Leistungsbasis fallen, werden automatisch von der Auswahl ausgeschlossen, auch wenn sie Ihren anderen angegebenen Attributen entsprechen. Dadurch wird sichergestellt, dass alle ausgewählten Instance-Typen eine ähnliche oder bessere Leistung als die von der angegebenen Instance-Familie festgelegte Leistungsbasis bieten. Amazon EC2 verwendet diese Baseline als Leitfaden für die Auswahl des Instance-Typs, es gibt jedoch keine Garantie dafür, dass die ausgewählten Instance-Typen immer die Basis für jede Anwendung überschreiten.

Derzeit unterstützt dieses Feature nur die CPU-Leistung als Basisleistungsfaktor. Die CPU-Leistung des CPU-Prozessors der angegebenen Instance-Familie dient als Leistungsbasis und stellt sicher, dass die ausgewählten Instance-Typen dieser Basislinie ähnlich sind oder diese übertreffen. Instance-Familien mit denselben CPU-Prozessoren führen zu denselben Filterergebnissen, auch wenn sich ihre Netzwerk- oder Festplattenleistung unterscheidet. Wenn Sie beispielsweise entweder c6in oder c6i als Basisreferenz angeben, würde dies zu identischen leistungsbasierten Filterergebnissen führen, da beide Instance-Familien denselben CPU-Prozessor verwenden.

Nicht unterstützte Instance-Familien

Die folgenden Instance-Familien werden aus Gründen des Leistungsschutzes nicht unterstützt:

  • c1

  • g3 | g3s

  • hpc7g

  • m1 | m2

  • mac1 | mac2 | mac2-m1ultra | mac2-m2 | mac2-m2pro

  • p3dn | p4d | p5

  • t1

  • u-12tb1 | u-18tb1 | u-24tb1 | u-3tb1 | u-6tb1 | u-9tb1 | u7i-12tb | u7in-16tb | u7in-24tb | u7in-32tb

Wenn Sie den Leistungsschutz aktivieren, indem Sie eine unterstützte Instance-Familie angeben, schließen die zurückgegebenen Instance-Typen die oben genannten nicht unterstützten Instance-Familien aus.

Wenn Sie eine nicht unterstützte Instance-Familie als Wert für die Basisleistung angeben, gibt die API eine leere Antwort für GetInstance-TypesFromInstanceRequirements und eine Ausnahme für CreateFleet, RequestSpotFleet, ModifyFleet und ModifySpotFleetRequest zurück.

Beispiel: Einen Basiswert für die CPU-Leistung festlegen

Im folgenden Beispiel besteht die Instance-Anforderung darin, mit Instance-Typen zu starten, deren CPU-Kerne genauso leistungsfähig sind wie die c6i-Instance-Familie. Dadurch werden Instance-Typen mit weniger leistungsstarken CPU-Prozessoren herausgefiltert, auch wenn sie Ihre anderen angegebenen Instance-Anforderungen erfüllen, z. B. die Anzahl der vCPUs. Wenn Ihre angegebenen Instance-Attribute beispielsweise 4 vCPUs und 16 GB Arbeitsspeicher umfassen, wird ein Instance-Typ mit diesen Attributen, aber mit einer geringeren CPU-Leistung als c6i, von der Auswahl ausgeschlossen.

"BaselinePerformanceFactors": { "Cpu": { "References": [ { "InstanceFamily": "c6i" } ] }

Überlegungen

  • Sie können entweder Instance-Typen oder Instance-Attribute in einer EC2-Flotte oder 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 EC2-Flotte mit attributbasierter Auswahl von Instance-Typen

Sie können mithilfe der AWS CLI eine EC2-Flotte so konfigurieren, dass sie die attributbasierte Auswahl von Instance-Typen verwendet.

Erstellen einer EC2-Flotte mit attributbasierter Auswahl von Instance-Typen (AWS CLI)

Verwenden Sie den Befehl create-fleet (AWS CLI), um eine EC2-Flotte zu erstellen. Geben Sie die Flottenkonfiguration in einer JSON-Datei an.

aws ec2 create-fleet \ --region us-east-1 \ --cli-input-json file://file_name.json

file_name.json-Beispieldatei

Das folgende Beispiel enthält Parameter, mit denen eine EC2-Flotte für attributbasierte Instance-Typauswahl konfiguriert wird, gefolgt von einer Texterklärung.

{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized" }, "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min": 2 }, "MemoryMiB": { "Min": 4 } } }] }], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }

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 EC2-Flotte die Flotte bereitstellt.

Eine Liste und Beschreibungen aller möglichen Attribute, die Sie angeben können, finden Sie unter InstanceRequirements in 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": "price-capacity-optimized" – Die Zuweisungsstrategie für die Spot Instances in der Flotte.

  • "LaunchTemplateName": "my-launch-template", "Version": "1" – Die Startvorlage enthält einige Informationen zur Instance-Konfiguration. Wenn jedoch Instance-Typen angegeben sind, werden diese durch die in InstanceRequirements angegebenen Attribute überschrieben.

  • "TotalTargetCapacity": 20 – Die Zielkapazität beträgt 20 Instances.

  • "DefaultTargetCapacityType": "spot" – Die Standardkapazität beträgt Spot Instances.

  • "Type": "instant" – Der Anforderungstyp für die Flotte ist instant.

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)
  1. Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Klicken Sie im Navigationsbereich auf Spot-Anforderungen und wählen Sie die Spot-Instances anfordern aus.

  3. 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:

    1. 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.

    2. 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.

    3. 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.

    4. (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.

    5. (Optional) Um die Instance-Typen mit Ihren angegebenen Attributen anzuzeigen, erweitern Sie Vorschau der übereinstimmenden Instance-Typen.

Erstellen einer Spot-Flotte mit der 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-Flottenanforderung 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

file_name.json-Beispieldatei

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 unter InstanceRequirements in 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": "priceCapacityOptimized" – Die Zuweisungsstrategie für die Spot Instances in der Flotte.

  • "LaunchTemplateName": "my-launch-template", "Version": "1" – Die Startvorlage enthält einige Informationen zur Instance-Konfiguration. Wenn jedoch Instance-Typen angegeben sind, werden diese durch die in InstanceRequirements angegebenen Attribute überschrieben.

  • "TargetCapacity": 20 – Die Zielkapazität beträgt 20 Instances.

  • "Type": "request" – Der Anforderungstyp für die Flotte ist request.

Beispiele für EC2-Flotte-Konfigurationen, die gültig und ungültig sind

Wenn Sie die AWS CLI verwenden, um eine EC2-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 mit InstanceRequirements und InstanceType

  • Zwei Overrides-Strukturen, eine mit InstanceRequirements und die andere mit InstanceType

  • Zwei InstanceRequirements-Strukturen mit sich überlappenden Attributwerten innerhalb derselben LaunchTemplateSpecification

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.

{ "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 } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 5000, "DefaultTargetCapacityType": "spot", "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 Parameter Min 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 EC2-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.

{ "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 } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }

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.

{ "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 } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }

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.

{ "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 } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }

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.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "MyLaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceRequirements": { "VCpuCount": { "Min": 0, "Max": 2 }, "MemoryMiB": { "Min": 0 } } }, { "InstanceType": "m5.large" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }

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.

{ "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" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }

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.

{ "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 } } } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } } }

Beispiele für Spot-Flotte-Konfigurationen, die gültig und ungültig sind

Wenn Sie die AWS CLI verwenden, 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 mit InstanceRequirements und InstanceType

  • Zwei Overrides-Strukturen, eine mit InstanceRequirements und die andere mit InstanceType

  • Zwei InstanceRequirements-Strukturen mit sich überlappenden Attributwerten innerhalb derselben LaunchTemplateSpecification

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 Parameter Min 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.

So zeigen Sie eine Vorschau einer Liste von Instance-Typen an, indem Sie Attribute mit der AWS CLI angeben
  1. (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 --generate-cli-skeleton-Parameter. Sie können die Ausgabe optional in eine Datei umleiten, um sie mit mit input > attributes.json zu speichern.

    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": "" }
  2. 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 und MemoryMiB 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.

    1. Geben Sie für ArchitectureTypes mindestes einen Prozessorarchitekturtyp an.

    2. Geben Sie für VirtualizationTypes mindestens eine Art von Virtualisierung an.

    3. Geben Sie für VCpuCount die minimale und maximale Anzahl von vCPUs an. Wenn Sie keine Mindestgrenze angeben möchten, geben Sie 0 für Min an. Wenn Sie keine Maximalgrenze angeben möchten, lassen Sie den Max-Parameter weg.

    4. Geben Sie für MemoryMiB den Mindest- und Höchstwert für Speicher in MiB an. Wenn Sie keine Mindestgrenze angeben möchten, geben Sie 0 für Min an. Wenn Sie keine Maximalgrenze angeben möchten, lassen Sie den Max-Parameter weg.

    5. Sie können optional eines oder mehrere der anderen Attribute angeben, um die Liste der zurückgegebenen Instance-Typen weiter einzuschränken.

  3. Um eine Vorschau der Instance-Typen anzuzeigen, die die von Ihnen in der JSON-Datei angegebenen Attribute aufweisen, verwenden Sie den Befehl get-instance-types-from-instance-requirements und geben Sie mithilfe des --cli-input-json-Parameters den Namen und Pfad zu Ihrer JSON-Datei an. 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 table

    Beispiel-Datei Attribute.json

    In diesem Beispiel sind die erforderlichen Attribute in der JSON-Datei enthalten. Sie lauten ArchitectureTypes, VirtualizationTypes, VCpuCount, und MemoryMiB. Darüber hinaus ist das optionale InstanceGenerations-Attribut ebenfalls enthalten. Beachten Sie, dass für MemoryMiB der Max-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 || || d2.xlarge || ...
  4. 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.