

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.

# Geben Sie Attribute für die Auswahl von Instance-Typen für EC2-Flotte oder Spot-Flotte an
<a name="ec2-fleet-attribute-based-instance-type-selection"></a>

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 v angeben, die für Ihre Instances CPUs erforderlich ist, 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](spot-best-practices.md#be-instance-type-flexible) entspricht.

**Topics**
+ [Attributbasierte Auswahl von Instance-Typen](#ec2fleet-abs-how-it-works)
+ [Preisschutz](#ec2fleet-abs-price-protection)
+ [Leistungsschutz](#ec2fleet-abis-performance-protection)
+ [Überlegungen](#ec2fleet-abs-considerations)
+ [Erstellen einer EC2-Flotte mit attributbasierter Auswahl von Instance-Typen](#abs-create-ec2-fleet)
+ [Erstellen einer Spot-Flotte mit attributbasierter Auswahl von Instance-Typen](#abs-create-spot-fleet)
+ [Beispiele für EC2-Flotte-Konfigurationen, die gültig und ungültig sind](#ec2fleet-abs-example-configs)
+ [Beispiele für Spot-Flotte-Konfigurationen, die gültig und ungültig sind](#spotfleet-abs-example-configs)
+ [Vorschau von Instance-Typen mit bestimmten Attributen](#ec2fleet-get-instance-types-from-instance-requirements)

## Attributbasierte Auswahl von Instance-Typen
<a name="ec2fleet-abs-how-it-works"></a>

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.

**Topics**
+ [Arten von Instance-Attributen](#ef-abs-instance-attribute-types)
+ [Wo wird die attributbasierte Auswahl von Instance-Typen konfiguriert?](#ef-abs-where-to-configure)
+ [Wie die EC2-Flotte oder Spot-Flotte bei der Bereitstellung einer Flotte die attributbasierte Auswahl von Instance-Typen verwendet](#how-ef-uses-abs)

### Arten von Instance-Attributen
<a name="ef-abs-instance-attribute-types"></a>

Es gibt mehrere Instance-Attribute, die Sie angeben können, um Ihre Datenverarbeitungsanforderungen auszudrücken, wie:
+ **vCPU-Anzahl** — Die minimale und maximale Anzahl von v CPUs pro Instanz.
+ **Arbeitsspeicher** — Das Minimum und das Maximum GiBs an Arbeitsspeicher pro Instanz.
+ **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 [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html)in der *Amazon EC2 API-Referenz.*

### Wo wird die attributbasierte Auswahl von Instance-Typen konfiguriert?
<a name="ef-abs-where-to-configure"></a>

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
+ (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 unterschiedliche Instances verwenden AMIs, können Sie Instance-Attribute in mehreren Überschreibungen für Startvorlagen 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
<a name="how-ef-uses-abs"></a>

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.
+ Es 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.
+ 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](ec2-fleet-allocation-strategy.md).

  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
<a name="ec2fleet-abs-price-protection"></a>

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

**Topics**
+ [Wie der Instance-Typ mit dem niedrigsten Preis identifiziert wird](#ec2fleet-abs-price-protection-lowest-priced)
+ [On-Demand-Instance-Preisschutz](#ec2fleet-abs-on-demand-price-protection)
+ [Spot-Instance-Preisschutz](#ec2fleet-abs-spot-price-protection)
+ [Schwellenwert für Preisschutz angeben](#ec2fleet-abs-specify-price-protection)

### Wie der Instance-Typ mit dem niedrigsten Preis identifiziert wird
<a name="ec2fleet-abs-price-protection-lowest-priced"></a>

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
<a name="ec2fleet-abs-on-demand-price-protection"></a>

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
<a name="ec2fleet-abs-spot-price-protection"></a>

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
<a name="ec2fleet-abs-specify-price-protection"></a>

**Um den Schwellenwert für den Preisschutz anzugeben, verwenden Sie den AWS CLI**

Konfigurieren Sie beim Erstellen einer EC2-Flotte oder Spot-Flotte mithilfe von die AWS CLI Flotte für die attributbasierte Auswahl des Instance-Typs und gehen Sie dann wie folgt 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.

Für weitere Informationen siehe [Erstellen einer EC2-Flotte mit attributbasierter Auswahl von Instance-Typen](#abs-create-ec2-fleet) oder [Erstellen einer Spot-Flotte mit attributbasierter Auswahl von Instance-Typen](#abs-create-spot-fleet).

**(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
<a name="ec2fleet-abis-performance-protection"></a>

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:
+ **Allgemeiner Zweck:** Mac1 \$1 Mac2 \$1 Mac2-M1Ultra \$1 Mac2-M2 \$1 Mac2-M2Pro \$1 M1 \$1 M2 \$1 T1
+ Für Rechenleistung optimiert**:** C1
+ **Speicheroptimiert:** U-3 TB1 \$1 U-6 TB1 \$1 U-9 TB1 \$1 U-12 TB1 \$1 U-18 TB1 \$1 U-24 TB1 \$1 U7i-12 TB \$1 U7in-16 TB \$1 U7in-24 TB \$1 U7in-32 TB
+ **Beschleunigtes Rechnen:** G3 \$1 G3s \$1 P3dn \$1 P4d \$1 P5
+ **Hochleistungsrechnen:** HPC7G

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 [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)und eine Ausnahme für [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html),, [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html)und zurück. [ModifyFleet[ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest.html)](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet.html)

**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 leistungsfähigen CPU-Prozessoren herausgefiltert, auch wenn sie Ihre anderen angegebenen Instance-Anforderungen erfüllen, z. B. die Anzahl von V. CPUs Wenn Ihre angegebenen Instance-Attribute beispielsweise 4 V CPUs und 16 GB Arbeitsspeicher beinhalten, `c6i` wird ein Instance-Typ mit diesen Attributen, aber mit einer geringeren CPU-Leistung als dieser, von der Auswahl ausgeschlossen.

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

## Überlegungen
<a name="ec2fleet-abs-considerations"></a>
+ 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
<a name="abs-create-ec2-fleet"></a>

Sie können eine EC2-Flotte so konfigurieren, dass sie die attributbasierte Auswahl von Instance-Typen verwendet. Es ist nicht möglich, eine EC2-Flotte mit der Amazon-EC2-Konsole zu erstellen.

Die Attribute für die attributbasierte Auswahl von Instance-Typen werden in der `InstanceRequirements`-Struktur angegeben. 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.

In den PowerShell Beispielen AWS CLI und sind die folgenden Attribute angegeben:
+ `VCpuCount`— Ein Minimum von 2 V CPUs und ein Maximum von 4 CPUs V. Wenn Sie keinen Höchstwert benötigen, können Sie den Höchstwert weglassen.
+ `MemoryMiB` – Mindestens 8 GiB Arbeitsspeicher und maximal 16 GiB. Wenn Sie kein Höchstlimit benötigen, können Sie den Höchstwert weglassen.

Diese Konfiguration identifiziert alle Instance-Typen mit 2 bis 4 V CPUs und 8 bis 16 GiB Arbeitsspeicher. Der Preisschutz und die Zuweisungsstrategie könnten jedoch einige Instance-Typen ausschließen, wenn [die EC2-Flotte die Flotte bereitstellt](#how-ef-uses-abs).

------
#### [ AWS CLI ]

**So erstellen Sie eine EC2-Flotte mit attributbasierter Auswahl von Instance-Typen**  
Verwenden Sie den Befehl [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html), 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
```

Die folgende Beispielsdatei `file_name.json` enthält die Parameter, mit denen eine EC2-Flotte für attributbasierte Auswahl von Instance-Typen konfiguriert wird.

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

------
#### [ PowerShell ]

**So erstellen Sie eine EC2-Flotte mit attributbasierter Auswahl von Instance-Typen**  
Verwenden Sie das cmdlet [New-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Fleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRangeRequest
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiBRequest
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirementsRequest
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecificationRequest
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.FleetLaunchTemplateOverridesRequest
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.FleetLaunchTemplateConfigRequest
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

New-EC2Fleet `
    -SpotOptions_AllocationStrategy "price-capacity-optimized" `
    -LaunchTemplateConfig @($launchTemplateConfig) `
    -TargetCapacitySpecification_DefaultTargetCapacityType "spot" `
    -TargetCapacitySpecification_TotalTargetCapacity 20 `
    -Type "instant"
```

------

## Erstellen einer Spot-Flotte mit attributbasierter Auswahl von Instance-Typen
<a name="abs-create-spot-fleet"></a>

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

Die Attribute für die attributbasierte Auswahl von Instance-Typen werden in der `InstanceRequirements`-Struktur angegeben. 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.

In den PowerShell Beispielen AWS CLI und werden die folgenden Attribute angegeben:
+ `VCpuCount`— Ein Minimum von 2 V CPUs und ein Maximum von 4 CPUs V. Wenn Sie keinen Höchstwert benötigen, können Sie den Höchstwert weglassen.
+ `MemoryMiB` – Mindestens 8 GiB Arbeitsspeicher und maximal 16 GiB. Wenn Sie kein Höchstlimit benötigen, können Sie den Höchstwert weglassen.

Diese Konfiguration identifiziert alle Instance-Typen mit 2 bis 4 V CPUs und 8 bis 16 GiB Arbeitsspeicher. Der Preisschutz und die Zuweisungsstrategie könnten jedoch einige Instance-Typen ausschließen, wenn die [Spot-Flotte die Flotte bereitstellt](#how-ef-uses-abs).

------
#### [ Console ]

**So konfigurieren Sie eine Spot-Flotte für die attributbasierte Auswahl von Instance-Typen**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

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

1. Befolgen Sie die Schritte zum Erstellen einer Spot-Flotte. Weitere Informationen finden Sie unter [Eine Spot-Flottenanforderung mit definierten Parametern erstellen](create-spot-fleet.md#create-spot-fleet-advanced).

   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.

   1. Geben Sie für **v CPUs** die gewünschte Mindest- und Höchstzahl von v einCPUs. Um kein Limit anzugeben, wählen Sie **Kein Minimum**, **Kein Maximum** oder beides aus.

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

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

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

------
#### [ AWS CLI ]

**So konfigurieren Sie eine Spot-Flotte für die attributbasierte Auswahl von Instance-Typen**  
Verwenden Sie den [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html)Befehl, 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
```

Die folgende Beispielsdatei `file_name.json` enthält die Parameter, mit denen eine Spot-Flotte für attributbasierte Auswahl von Instance-Typen konfiguriert wird.

```
{
    "AllocationStrategy": "priceCapacityOptimized",
    "TargetCapacity": 20,
    "Type": "request",
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }]
}
```

------
#### [ PowerShell ]

**So konfigurieren Sie eine Spot-Flotte für die attributbasierte Auswahl von Instance-Typen**  
Verwenden Sie das cmdlet [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRange
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiB
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirements
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecification
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

Request-EC2SpotFleet `
    -SpotFleetRequestConfig_AllocationStrategy "PriceCapacityOptimized" `
    -SpotFleetRequestConfig_TargetCapacity 20 `
    -SpotFleetRequestConfig_Type "Request" `
    -SpotFleetRequestConfig_LaunchTemplateConfig $launchTemplateConfig
```

------

## Beispiele für EC2-Flotte-Konfigurationen, die gültig und ungültig sind
<a name="ec2fleet-abs-example-configs"></a>

Wenn Sie den verwenden AWS CLI , 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`

**Topics**
+ [Gültige Konfiguration: Einzelstartvorlage mit Überschreibungen](#ef-abs-example-config1)
+ [Gültige Konfiguration: Einzelne Startvorlage mit mehreren InstanceRequirements](#ef-abs-example-config2)
+ [Gültige Konfiguration: Zwei Startvorlagen, jede mit Überschreibungen](#ef-abs-example-config3)
+ [Gültige Konfiguration: Nur `InstanceRequirements` angegeben, keine überlappenden Attributwerte](#ef-abs-example-config4)
+ [Die Konfiguration ist nicht gültig: `Overrides` enthalten `InstanceRequirements` und `InstanceType`.](#ef-abs-example-config5)
+ [Konfiguration ungültig: Zwei `Overrides` enthalten `InstanceRequirements` und `InstanceType`](#ef-abs-example-config6)
+ [Konfiguration ungültig: Überlappende Attributwerte](#ef-abs-example-config7)

### Gültige Konfiguration: Einzelstartvorlage mit Überschreibungen
<a name="ef-abs-example-config1"></a>

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 maximal 8 v CPUs haben.
+ `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 startet so viele Instances, dass die Gesamtzahl von v CPUs in der Flotte 5.000 v CPUs beträgt.

### Gültige Konfiguration: Einzelne Startvorlage mit mehreren InstanceRequirements
<a name="ef-abs-example-config2"></a>

Die folgende Konfiguration ist gültig. Sie enthält eine Startvorlage und eine `Overrides`-Struktur mit zwei `InstanceRequirements`-Strukturen. Die in angegebenen Attribute `InstanceRequirements` sind gültig, da sich die Werte nicht überschneiden. Die erste `InstanceRequirements` Struktur gibt einen Wert `VCpuCount` von 0-2 v anCPUs, während die zweite `InstanceRequirements` Struktur 4-8 v angibt. CPUs

```
{
        "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
<a name="ef-abs-example-config3"></a>

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
<a name="ef-abs-example-config4"></a>

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 angegebenen Attribute `InstanceRequirements` sind gültig, da sich die Werte nicht überschneiden. Die erste `InstanceRequirements` Struktur gibt einen Wert `VCpuCount` von 0-2 v anCPUs, während die zweite Struktur 4-8 v angibt. `InstanceRequirements` CPUs

```
{
        "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`.
<a name="ef-abs-example-config5"></a>

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`
<a name="ef-abs-example-config6"></a>

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
<a name="ef-abs-example-config7"></a>

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
<a name="spotfleet-abs-example-configs"></a>

Wenn Sie die 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 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`

**Topics**
+ [Gültige Konfiguration: Einzelstartvorlage mit Überschreibungen](#sf-abs-example-config1)
+ [Gültige Konfiguration: Einzelne Startvorlage mit mehreren InstanceRequirements](#sf-abs-example-config2)
+ [Gültige Konfiguration: Zwei Startvorlagen, jede mit Überschreibungen](#sf-abs-example-config3)
+ [Gültige Konfiguration: Nur `InstanceRequirements` angegeben, keine überlappenden Attributwerte](#sf-abs-example-config4)
+ [Die Konfiguration ist nicht gültig: `Overrides` enthalten `InstanceRequirements` und `InstanceType`.](#sf-abs-example-config5)
+ [Konfiguration ungültig: Zwei `Overrides` enthalten `InstanceRequirements` und `InstanceType`](#sf-abs-example-config6)
+ [Konfiguration ungültig: Überlappende Attributwerte](#sf-abs-example-config7)

### Gültige Konfiguration: Einzelstartvorlage mit Überschreibungen
<a name="sf-abs-example-config1"></a>

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::123456789012: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 maximal 8 v habenCPUs.
+ `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 sind die Zielkapazität `5000` und der Typ der Zielkapazitätseinheit ist`vcpu`, die zusammen eine gewünschte Zielkapazität von 5.000 V angebenCPUs. Die Spot-Flotte startet so viele Instances, dass die Gesamtanzahl von v CPUs in der Flotte 5.000 v beträgtCPUs.

### Gültige Konfiguration: Einzelne Startvorlage mit mehreren InstanceRequirements
<a name="sf-abs-example-config2"></a>

Die folgende Konfiguration ist gültig. Sie enthält eine Startvorlage und eine `Overrides`-Struktur mit zwei `InstanceRequirements`-Strukturen. Die in angegebenen Attribute `InstanceRequirements` sind gültig, da sich die Werte nicht überschneiden. Die erste `InstanceRequirements` Struktur gibt einen Wert `VCpuCount` von 0-2 v anCPUs, während die zweite `InstanceRequirements` Struktur 4-8 v angibt. CPUs

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012: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
<a name="sf-abs-example-config3"></a>

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::123456789012: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
<a name="sf-abs-example-config4"></a>

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 angegebenen Attribute `InstanceRequirements` sind gültig, da sich die Werte nicht überschneiden. Die erste `InstanceRequirements` Struktur gibt einen Wert `VCpuCount` von 0-2 v anCPUs, während die zweite Struktur 4-8 v angibt. `InstanceRequirements` CPUs

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012: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`.
<a name="sf-abs-example-config5"></a>

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::123456789012: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`
<a name="sf-abs-example-config6"></a>

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::123456789012: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
<a name="sf-abs-example-config7"></a>

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::123456789012: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
<a name="ec2fleet-get-instance-types-from-instance-requirements"></a>

Sie können den Befehl [get-instance-types-from-instance-requirements verwenden, um eine Vorschau der Instance-Typen](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) 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**

1. (Optional) Um alle möglichen Attribute zu generieren, die angegeben werden können, verwenden Sie den Befehl [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) und den Parameter. `--generate-cli-skeleton` 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": ""
   }
   ```

1. 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 -instance-requirements. get-instance-types-from](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html)

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

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

   1. Geben Sie für `VCpuCount` die Mindest- und Höchstzahl von v an. CPUs Um keinen Mindestgrenzwert anzugeben, geben Sie für `Min` an`0`. Wenn Sie keine Maximalgrenze angeben möchten, lassen Sie den `Max`-Parameter weg.

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

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

1. 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](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) 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 table
   ```

   *attributes.json*-Beispieldatei

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

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