

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.

# Tutorial: Testen Sie Spot-Instance-Unterbrechungen mit AWS FIS
<a name="fis-tutorial-spot-interruptions"></a>

Spot-Instances nutzen verfügbare EC2 Reservekapazitäten und bieten einen discount von bis zu 90% im Vergleich zu On-Demand-Preisen. Amazon EC2 kann Ihre Spot-Instances jedoch unterbrechen, wenn die Kapazität wieder benötigt wird. Wenn Sie Spot-Instances verwenden, müssen Sie auf mögliche Unterbrechungen vorbereitet sein. Weitere Informationen finden Sie unter [Spot-Instance-Unterbrechungen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) im * EC2 Amazon-Benutzerhandbuch*.

Sie können den AWS AWS Fault Injection Service (FIS) verwenden, um zu testen, wie Ihre Anwendungen mit einer Spot-Instance-Unterbrechung umgehen. Verwenden Sie dieses Tutorial, um eine Versuchsvorlage zu erstellen, die die AWS `aws:ec2:send-spot-instance-interruptions` FIS-Aktion verwendet, um eine Ihrer Spot-Instances zu unterbrechen.

Alternativ können Sie das Experiment über die EC2 Amazon-Konsole starten. Weitere Informationen finden Sie unter [Initiieren einer Spot-Instance-Unterbrechung](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/initiate-a-spot-instance-interruption.html) im * EC2 Amazon-Benutzerhandbuch*.

## Voraussetzungen
<a name="spot-interruptions-prerequisites"></a>

Bevor Sie AWS FIS verwenden können, um eine Spot-Instance zu unterbrechen, müssen Sie die folgenden Voraussetzungen erfüllen.

**1. Erstellen einer IAM-Rolle**  
Erstellen Sie eine Rolle und fügen Sie eine Richtlinie hinzu, die es AWS FIS ermöglicht, die `aws:ec2:send-spot-instance-interruptions` Aktion in Ihrem Namen durchzuführen. Weitere Informationen finden Sie unter [IAM-Rollen für AWS FIS-Experimente](getting-started-iam-service-role.md).

**2. Überprüfen Sie den Zugriff auf FIS AWS**  
Stellen Sie sicher, dass Sie Zugriff auf AWS FIS haben. Weitere Informationen finden Sie unter Beispiele für [AWS FIS-Richtlinien](security_iam_id-based-policy-examples.md).

**3. (Optional) Erstellen Sie eine Spot-Instance-Anfrage**  
Wenn Sie eine neue Spot-Instance für dieses Experiment verwenden möchten, verwenden Sie den Befehl [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html), um eine Spot-Instance anzufordern. Standardmäßig werden Spot-Instances, die unterbrochen wurden, beendet. Wenn Sie das Unterbrechungsverhalten auf einstellen`stop`, müssen Sie auch den Typ auf einstellen`persistent`. Stellen Sie für dieses Tutorial das Unterbrechungsverhalten nicht auf ein`hibernate`, da der Ruhezustand sofort beginnt.

```
aws ec2 run-instances \
    --image-id {{ami-0ab193018fEXAMPLE}} \
    --instance-type "{{t2.micro}}" \
    --count 1 \
    --subnet-id {{subnet-1234567890abcdef0}} \
    --security-group-ids {{sg-111222333444aaab}} \
    --instance-market-options file://{{spot-options.json}} \
    --query Instances[*].InstanceId
```

Das folgende Beispiel zeigt eine `spot-options.json`-Datei.

```
{
    "MarketType": "spot",
    "SpotOptions": { 
        "SpotInstanceType": "persistent",
        "InstanceInterruptionBehavior": "stop"
    }
}
```

Die `--query` Option im Beispielbefehl sorgt dafür, dass der Befehl nur die Instance-ID der Spot-Instance zurückgibt. Es folgt eine Beispielausgabe.

```
[
    "i-0abcdef1234567890"   
]
```

**4. Fügen Sie ein Tag hinzu, damit AWS FIS die Ziel-Spot-Instance identifizieren kann**  
Verwenden Sie den Befehl [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html), um das Tag hinzuzufügen Name=interruptMe zu Ihrer Ziel-Spot-Instance.

```
aws ec2 create-tags \
    --resources {{i-0abcdef1234567890}} \
    --tags Key=Name,Value=interruptMe
```

## Schritt 1: Erstellen Sie eine Experimentvorlage
<a name="spot-interruptions-create-template"></a>

Erstellen Sie die Experimentvorlage mit der AWS FIS-Konsole. In der Vorlage geben Sie die Aktion an, die ausgeführt werden soll. Die Aktion unterbricht die Spot-Instance mit dem angegebenen Tag. Wenn es mehr als eine Spot-Instance mit dem Tag gibt, wählt AWS FIS nach dem Zufallsprinzip eine davon aus.

**Um eine Versuchsvorlage zu erstellen**

1. Öffnen Sie die AWS FIS-Konsole unter [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/).

1. Wählen Sie im Navigationsbereich **Experimentvorlagen** aus.

1. Wählen Sie **Experimentvorlage erstellen aus**.

1. Gehen Sie für **Schritt 1, Vorlagendetails angeben**, wie folgt vor:

   1. Geben Sie **unter Beschreibung und Name** eine Beschreibung und einen Namen für die Vorlage ein.

   1. Wählen Sie **Weiter** und fahren Sie mit **Schritt 2, Aktionen und Ziele angeben,** fort. 

1. Nehmen Sie bei **Aktionen** die folgenden Einstellungen vor:

   1. Wählen Sie **Aktion hinzufügen** aus.

   1. Geben Sie einen Namen für die Aktion ein. Geben Sie z. B. ei **interruptSpotInstance**.

   1. Wählen Sie als **Aktionstyp** **aws:ec2**: aus. send-spot-instance-interruptions

   1. Behalten Sie für **Target** das Ziel bei, das AWS FIS für Sie erstellt.

   1. Geben Sie für **Aktionsparameter**, **Dauer vor der Unterbrechung**, den Wert 2 Minuten (PT2M) ein.

   1. Wählen Sie **Save (Speichern)** aus.

1. Führen Sie für **Targets (Ziele)** Folgendes aus:

   1. Wählen Sie **Bearbeiten** für das Ziel, das AWS FIS im vorherigen Schritt automatisch für Sie erstellt hat.

   1. Ersetzen Sie den Standardnamen durch einen aussagekräftigeren Namen. Geben Sie z. B. ei **oneSpotInstance**.

   1. Stellen Sie sicher, dass der **Ressourcentyp** **aws:ec2:spot-instance** lautet.

   1. Wählen Sie für **Target-Methode** die Option **Ressourcen-Tags**, Filter und Parameter aus.

   1. Wählen Sie für **Ressourcen-Tags** die Option **Neues Tag hinzufügen** aus und geben Sie den Tag-Schlüssel und den Tag-Wert ein. Verwenden Sie das Tag, das Sie der Spot-Instance hinzugefügt haben, um zu unterbrechen, wie in den Voraussetzungen für dieses Tutorial beschrieben.

   1. Wählen Sie für **Ressourcenfilter** die Option **Neuen Filter hinzufügen** und geben Sie **State.Name** als Pfad und **running** als Wert ein.

   1. Wählen Sie für **den Auswahlmodus** die Option **Anzahl** aus. Geben Sie für **Anzahl der Ressourcen** den Wert ein**1**.

   1. Wählen Sie **Save (Speichern)** aus.

1. Wählen Sie **Weiter**, um mit **Schritt 3, Servicezugriff konfigurieren,** fortzufahren. 

1. Wählen Sie für **Service Access** die **Option Bestehende IAM-Rolle verwenden** und wählen Sie dann die IAM-Rolle aus, die Sie wie in den Voraussetzungen für dieses Tutorial beschrieben erstellt haben. Wenn Ihre Rolle nicht angezeigt wird, stellen Sie sicher, dass sie über die erforderliche Vertrauensstellung verfügt. Weitere Informationen finden Sie unter [IAM-Rollen für AWS FIS-Experimente](getting-started-iam-service-role.md).

1. Wählen Sie **Weiter**, um mit **Schritt 4, Optionale Einstellungen konfigurieren,** fortzufahren. 

1. (Optional) Wählen Sie für **Tags** die Option **Neues Tag hinzufügen** aus und geben Sie einen Tag-Schlüssel und einen Tag-Wert an. Die von Ihnen hinzugefügten Tags werden auf Ihre Experimentvorlage angewendet, nicht auf die Experimente, die mit der Vorlage ausgeführt werden.

1. Wählen Sie **Weiter**, um mit **Schritt 5, Überprüfen und erstellen,** fortzufahren. 

1. Prüfen Sie die Vorlage und wählen Sie **Experimentvorlage erstellen**. Wenn Sie zur Bestätigung aufgefordert werden`create`, geben Sie ein und wählen Sie dann **Experimentvorlage erstellen**. 

**(Optional) Um die JSON-Version der Experimentvorlage anzuzeigen**  
Wählen Sie die Registerkarte **Exportieren**. Im Folgenden finden Sie ein Beispiel für das JSON, das mit der vorherigen Konsolenprozedur erstellt wurde.

```
{
    "description": "Test Spot Instance interruptions",
    "targets": {
        "oneSpotInstance": {
            "resourceType": "aws:ec2:spot-instance",
            "resourceTags": {
                "Name": "interruptMe"
            },
            "filters": [
                {
                    "path": "State.Name",
                    "values": [
                        "running"
                    ]
                }
            ],
            "selectionMode": "COUNT(1)"
        }
    },
    "actions": {
        "interruptSpotInstance": {
            "actionId": "aws:ec2:send-spot-instance-interruptions",
            "parameters": {
                "durationBeforeInterruption": "PT2M"
            },
            "targets": {
                "SpotInstances": "oneSpotInstance"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::{{123456789012}}:role/{{AllowFISSpotInterruptionActions}}",
    "tags": {
        "Name": "my-template"
    }
}
```

## Schritt 2: Starten Sie das Experiment
<a name="spot-interruptions-start-experiment"></a>

Wenn Sie mit der Erstellung Ihrer Experimentvorlage fertig sind, können Sie sie verwenden, um ein Experiment zu starten.

**Um ein Experiment zu starten**

1. Sie sollten sich auf der Detailseite der Experimentvorlage befinden, die Sie gerade erstellt haben. Andernfalls wählen Sie **Experimentvorlagen** und dann die ID der Experimentvorlage aus, um die Detailseite zu öffnen.

1. Wählen Sie **Start Experiment** (Experiment starten) aus.

1. (Optional) Um Ihrem Experiment ein Tag hinzuzufügen, wählen Sie **Neues Tag hinzufügen** und geben Sie einen Tag-Schlüssel und einen Tag-Wert ein.

1. Wählen Sie **Start Experiment** (Experiment starten) aus. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie den **start** Text ein und wählen Sie **Experiment starten**.

## Schritt 3: Verfolgen Sie den Fortschritt des Experiments
<a name="spot-interruptions-track-experiment"></a>

Sie können den Fortschritt eines laufenden Experiments verfolgen, bis das Experiment abgeschlossen, gestoppt oder fehlgeschlagen ist.

**Um den Fortschritt eines Experiments zu verfolgen**

1. Sie sollten sich auf der Detailseite für das Experiment befinden, das Sie gerade gestartet haben. Andernfalls wählen Sie **Experimente** und dann die ID des Experiments aus, um die Detailseite zu öffnen.

1. Um den Status des Experiments einzusehen, aktivieren Sie im **Detailbereich die Option** **Status**. Weitere Informationen finden Sie unter [Versuchsstatus](view-experiment-progress.md#experiment-states).

1. Wenn der Status des Experiments „Wird **ausgeführt**“ lautet, fahren Sie mit dem nächsten Schritt fort.

## Schritt 4: Überprüfen Sie das Versuchsergebnis
<a name="spot-interruptions-verify-experiment-result"></a>

Wenn die Aktion für dieses Experiment abgeschlossen ist, passiert Folgendes:
+ Die Ziel-Spot-Instance erhält eine [Empfehlung zur Neuverteilung der Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rebalance-recommendations.html).
+ Zwei Minuten, bevor Amazon Ihre [Instance EC2 beendet oder stoppt, wird eine Benachrichtigung zur Unterbrechung der Spot-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#spot-instance-termination-notices) ausgegeben.
+ Nach zwei Minuten wird die Spot-Instance beendet oder gestoppt.
+ Eine Spot-Instance, die von AWS FIS gestoppt wurde, bleibt gestoppt, bis Sie sie neu starten.

**Um zu überprüfen, ob die Instance durch das Experiment unterbrochen wurde**

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

1. Öffnen Sie im Navigationsbereich **Spot Requests** (Spot-Anforderungen) und **Instances** in separaten Browser-Registerkarten oder -Fenstern.

1. Wählen Sie unter **Spot Requests** (Spot-Anforderungen) die Spot-Instance-Anforderung aus. Der ursprüngliche Status ist `fulfilled`. Nach Abschluss des Experiments ändert sich der Status wie folgt:
   + `terminate`- Der Status ändert sich zu`instance-terminated-by-experiment`.
   + `stop`- Der Status ändert sich zu `marked-for-stop-by-experiment` und dann`instance-stopped-by-experiment`.

1. Wählen Sie unter **Instances** die Spot Instance aus. Der ursprüngliche Status ist `Running`. Zwei Minuten, nachdem Sie die Benachrichtigung über die Unterbrechung der Spot-Instance erhalten haben, ändert sich der Status wie folgt:
   + `stop`— Der Status ändert sich zu `Stopping` und dann`Stopped`.
   + `terminate`- Der Status ändert sich zu `Shutting-down` und dann`Terminated`.

## Schritt 5: Bereinigen
<a name="spot-interruptions-cleanup"></a>

Wenn Sie die Test-Spot-Instance für dieses Experiment mit einem Unterbrechungsverhalten von erstellt haben `stop` und Sie sie nicht mehr benötigen, können Sie die Spot-Instance-Anfrage stornieren und die Spot-Instance beenden.

**Um die Anfrage zu stornieren und die Instance zu beenden, verwenden Sie AWS CLI**

1. Verwenden Sie den [cancel-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-instance-requests.html)Befehl, um die Spot-Instance-Anfrage zu stornieren.

   ```
   aws ec2 cancel-spot-instance-requests --spot-instance-request-ids {{sir-ksie869j}}
   ```

1. Verwenden Sie den Befehl [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html), um die Instance zu beenden.

   ```
   aws ec2 terminate-instances --instance-ids {{i-0abcdef1234567890}}
   ```

Wenn Sie die Experimentvorlage nicht mehr benötigen, können Sie sie löschen.

**Um eine Experimentvorlage mit der AWS FIS-Konsole zu löschen**

1. Öffnen Sie die AWS FIS-Konsole unter. [https://console.aws.amazon.com/fis/](https://console.aws.amazon.com/fis/)

1. Wählen Sie im Navigationsbereich **Experimentvorlagen** aus.

1. Wählen Sie die Experimentvorlage aus und klicken Sie dann auf **Aktionen**, **Experimentvorlage löschen**.

1. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie die Eingabe ein **delete** und wählen Sie dann **Experimentvorlage löschen**.