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
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 im EC2Amazon-Benutzerhandbuch.
Sie können Folgendes verwenden … AWS Fehlerinjektionsdienst (AWS FIS), um zu testen, wie Ihre Anwendungen mit einer Spot-Instance-Unterbrechung umgehen. Verwenden Sie dieses Tutorial, um eine Versuchsvorlage zu erstellen, die AWS FISaws:ec2:send-spot-instance-interruptions
Aktion, 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 im EC2Amazon-Benutzerhandbuch.
Voraussetzungen
Bevor Sie es verwenden können AWS FISum eine Spot-Instance zu unterbrechen, müssen Sie die folgenden Voraussetzungen erfüllen.
1. Erstellen Sie eine IAM-Rolle
Erstellen Sie eine Rolle und fügen Sie eine Richtlinie hinzu, die Folgendes ermöglicht AWS FISum 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.
2. Überprüfen Sie den Zugriff auf AWS FIS
Stellen Sie sicher, dass Sie Zugriff auf haben AWS FIS. Weitere Informationen finden Sie unter AWS FISBeispiele für politische Maßnahmen.
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, um eine Spot-Instance anzufordern. Standardmäßig werden Spot-Instances, die unterbrochen wurden, beendet. Wenn Sie das Unterbrechungsverhalten auf einstellenstop
, müssen Sie auch den Typ auf einstellenpersistent
. Stellen Sie für dieses Tutorial das Unterbrechungsverhalten nicht auf einhibernate
, da der Ruhezustand sofort beginnt.
aws ec2 run-instances \ --image-id
ami-0ab193018fEXAMPLE
\ --instance-type "t2.micro
" \ --count 1 \ --subnet-idsubnet-1234567890abcdef0
\ --security-group-idssg-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, sodass AWS FISkann die Ziel-Spot-Instance identifizieren
Verwenden Sie den Befehl create-tags, 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
Erstellen Sie die Experimentvorlage mit dem AWS FISKonsole. 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, AWS FISwählt nach dem Zufallsprinzip eine davon aus.
Um eine Versuchsvorlage zu erstellen
Öffnen Sie AWS FISKonsole bei https://console.aws.amazon.com/fis/
. -
Wählen Sie im Navigationsbereich Experimentvorlagen aus.
-
Wählen Sie Experimentvorlage erstellen aus.
-
Geben Sie unter Beschreibung und Name eine Beschreibung und einen Namen für die Vorlage ein.
-
Nehmen Sie bei Aktionen die folgenden Einstellungen vor:
-
Wählen Sie Aktion hinzufügen aus.
-
Geben Sie einen Namen für die Aktion ein. Geben Sie z. B. ei
interruptSpotInstance
. -
Wählen Sie als Aktionstyp aws:ec2: aus. send-spot-instance-interruptions
-
Behalten Sie für Target das Ziel bei, das AWS FISkreiert für dich.
-
Geben Sie für Aktionsparameter, Dauer vor der Unterbrechung, den Wert 2 Minuten (PT2M) ein.
-
Wählen Sie Save (Speichern) aus.
-
-
Führen Sie für Targets (Ziele) Folgendes aus:
-
Wählen Sie Bearbeiten für das Ziel, das AWS FISwurde im vorherigen Schritt automatisch für Sie erstellt.
-
Ersetzen Sie den Standardnamen durch einen aussagekräftigeren Namen. Geben Sie z. B. ei
oneSpotInstance
. -
Stellen Sie sicher, dass der Ressourcentyp aws:ec2:spot-instance lautet.
-
Wählen Sie für Target-Methode die Option Ressourcen-Tags, Filter und Parameter aus.
-
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.
-
Wählen Sie für Ressourcenfilter die Option Neuen Filter hinzufügen und geben Sie
State.Name
als Pfad undrunning
als Wert ein. -
Wählen Sie für den Auswahlmodus die Option Anzahl. Geben Sie für Anzahl der Ressourcen den Wert ein
1
. -
Wählen Sie Save (Speichern) aus.
-
-
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.
-
(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.
-
Wählen Sie Experimentvorlage erstellen. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie die
create
Taste ein und wählen Sie dann Experimentvorlage erstellen.
(Optional) Um die Experimentvorlage anzuzeigen JSON
Wählen Sie die Registerkarte Exportieren. Das Folgende ist ein Beispiel für das mit der vorherigen Konsole JSON erstellte Verfahren.
{ "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
Wenn Sie mit der Erstellung Ihrer Experimentvorlage fertig sind, können Sie sie verwenden, um ein Experiment zu starten.
Um ein Experiment zu starten
-
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.
-
Wählen Sie Start Experiment (Experiment starten) aus.
-
(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.
-
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
Sie können den Fortschritt eines laufenden Experiments verfolgen, bis das Experiment abgeschlossen, gestoppt oder fehlgeschlagen ist.
Um den Fortschritt eines Experiments zu verfolgen
-
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.
-
Um den Status des Experiments einzusehen, aktivieren Sie im Detailbereich die Option Status. Weitere Informationen finden Sie unter Versuchsstatus.
-
Wenn der Status des Experiments „Wird ausgeführt“ lautet, fahren Sie mit dem nächsten Schritt fort.
Schritt 4: Überprüfen Sie das Versuchsergebnis
Wenn die Aktion für dieses Experiment abgeschlossen ist, passiert Folgendes:
-
Die Ziel-Spot-Instance erhält eine Empfehlung zur Neuverteilung der Instance.
-
Zwei Minuten, bevor Amazon Ihre Instance EC2 beendet oder stoppt, wird eine Benachrichtigung zur Unterbrechung der Spot-Instance ausgegeben.
-
Nach zwei Minuten wird die Spot-Instance beendet oder gestoppt.
-
Eine Spot-Instance, die gestoppt wurde von AWS FISbleibt gestoppt, bis Sie sie neu starten.
Um zu überprüfen, ob die Instanz durch das Experiment unterbrochen wurde
-
Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/
. -
Öffnen Sie im Navigationsbereich Spot Requests (Spot-Anforderungen) und Instances in separaten Browser-Registerkarten oder -Fenstern.
-
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 zuinstance-terminated-by-experiment
.stop
- Der Status ändert sich zumarked-for-stop-by-experiment
und danninstance-stopped-by-experiment
.
-
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 zuStopping
und dannStopped
.terminate
- Der Status ändert sich zuShutting-down
und dannTerminated
.
Schritt 5: Bereinigen
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
-
Verwenden Sie den cancel-spot-instance-requestsBefehl, um die Spot-Instance-Anfrage zu stornieren.
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids
sir-ksie869j
-
Verwenden Sie den Befehl terminate-instances, 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 zu löschen, verwenden Sie den AWS FISKonsole
Öffnen Sie AWS FISKonsole bei https://console.aws.amazon.com/fis/
. -
Wählen Sie im Navigationsbereich Experimentvorlagen aus.
-
Wählen Sie die Experimentvorlage aus und klicken Sie dann auf Aktionen, Experimentvorlage löschen.
-
Wenn Sie zur Bestätigung aufgefordert werden, geben Sie die Eingabe ein
delete
und wählen Sie dann Experimentvorlage löschen.