Wie behebe ich Probleme mit einer Amazon-EC2-Instance, die angehalten oder beendet wird, wenn ich versuche, sie zu starten?

Lesedauer: 5 Minute
0

Wenn ich versuche, meine Amazon Elastic Compute Cloud (Amazon EC2)-Instance zu starten, wird sie beendet oder nicht gestartet.

Kurzbeschreibung

Die folgenden Gründe sind die häufigsten Ursachen für eine InternalError-Meldung der Amazon-EC2-Instance:

  • Ihr Amazon Elastic Block Store (Amazon EBS)-Volume ist nicht korrekt an die Instance angehängt.
  • Ein EBS-Volume, das an die Instance angehängt ist, befindet sich in einem Fehlerzustand.
  • Ein verschlüsseltes EBS-Volume ist an die Instance angehängt.

Wenn Ihre Instance nicht gestartet wird und kein Fehlercode angezeigt wird, führen Sie den Befehl describe-instances in der AWS Command Line Instance (AWS CLI) aus. Legen Sie anschließend die Instance-ID fest. Überprüfen Sie die StateReason-Meldung, die der Befehl in der JSON-Antwort zurückgibt.

Hinweis: Geben Sie alle Befehle in die AWS CLI ein. Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Lösung

EBS-Volumes sind nicht korrekt an die Instance angehängt

Sie müssen das EBS-Root-Volume als /dev/sda1 oder /dev/xvda an die Instance anhängen, je nachdem, welches Volume in der API definiert ist. Sie dürfen über kein zweites EBS-Volume mit einem doppelten oder widersprüchlichen Gerätenamen verfügen. Andernfalls können Sie die Instance nicht beenden oder starten. Konflikte mit Blockgerätenamen betreffen nur Xen-basierte Instance-Typen (c4, m4, t2, usw.). Konflikte mit Blockgerätenamen wirken sich nicht auf Nitro-basierte Instances aus (c5, m5, t3, usw.).

1.Führen Sie die API describe-instances aus, um die StateReason-Fehlermeldung und den Fehlercode zu überprüfen:

$ aws ec2 describe-instances --instance-id i-xxxxxxxxxxxxxxx --region us-east-1 --query "Reservations[].Instances[].{StateReason:StateReason}" --output json

Hinweis: Ersetzen Sie us-east-1 durch Ihre AWS-Region. Ersetzen Sie i-xxxxxxxxxxxxxxx durch Ihre Instance-ID.

Wenn ein Konflikt von Gerätenamen auftritt, wird eine Ausgabe angezeigt, die der folgenden Meldung ähnelt:

[
    [{
        "StateReason": {
            "Code": "Server.InternalError",
            "Message": "Server.InternalError: Internal error on launch"
        }
    }]
]

2.Öffnen Sie die Amazon-EC2-Konsole und wählen Sie dann die Instance aus, die Sie nicht starten können.

3.Überprüfen Sie auf der Registerkarte Beschreibung den Gerätenamen, der unter Blockgeräte aufgeführt ist. Im Feld Blockgeräte werden alle Gerätenamen der angeschlossenen Volumes angezeigt.

4.Stellen Sie sicher, dass das Root-Gerät korrekt angeschlossen ist und dass kein Gerät mit demselben Namen oder einem widersprüchlichen Namen aufgeführt ist.

5.Wenn ein Gerät mit einem doppelten oder widersprüchlichen Gerätenamen existiert, trennen Sie das widersprüchliche Volume und benennen Sie es um. Schließen Sie dann das Volume mit dem aktualisierten Gerätenamen erneut an.

Ein angeschlossenes EBS-Volume befindet sich in einem Fehlerzustand

1.Führen Sie die API describe-instances aus, um die StateReason-Fehlermeldung und den Fehlercode zu überprüfen:

$ aws ec2 describe-instances --instance-id i-xxxxxxxxxxxxxxx --region us-east-1 --query "Reservations[].Instances[].{StateReason:StateReason}" --output json

Hinweis: Ersetzen Sie us-east-1 durch Ihre AWS-Region. Ersetzen Sie i-xxxxxxxxxxxxxxx durch Ihre Instance-ID.

Wenn ein angeschlossenes EBS-Volume sich in einem Fehlerzustand befindet, wird eine Ausgabe angezeigt, die der folgenden Meldung ähnelt:

[
    [{
        "StateReason": {
            "Code": "Server.InternalError",
            "Message": "Server.InternalError: Internal error on launch"
        }
    }]
]

2.Öffnen Sie die Amazon-EC2-Konsole, wählen Sie Volumes aus und überprüfen Sie dann, ob der Status des Volumes Fehler lautet. Ihre Optionen hängen davon ab, ob es sich bei dem Volume mit einem Fehlerstatus um ein Root-Volume oder um ein sekundäres Volume handelt.

Wenn es sich bei dem Volume, das sich in einem Fehlerstatus befindet, um ein sekundäres Volume handelt, trennen Sie das Volume. Sie können die Instance jetzt starten.

Wenn es sich bei dem Volume, das sich in einem Fehlerstatus befindet, um ein Root-Volume handelt und Sie über einen Snapshot des Volumes verfügen, gehen Sie wie folgt vor:

Trennen Sie das Volume.

Erstellen Sie ein neues Volume aus dem Snapshot.

Hängen Sie das neue Volume mithilfe des Gerätenamens der ursprünglichen Instance an die Instance an. Starten Sie die Instance.

Hinweis: Wenn Sie über keinen vorhandenen Snapshot des Root-Volumes verfügen, das sich in einem Fehlerstatus befindet, können Sie die Instance nicht neu starten. Sie müssen eine neue Instance starten, die entsprechenden Anwendungen installieren und sie dann so konfigurieren, dass sie die alte Instance ersetzt.

Angehängte Volumes sind verschlüsselt und es liegen falsche Berechtigungen oder Richtlinien für AWS Identity and Access Management (IAM) vor

1.Führen Sie die API describe-instances aus, um die StateReason-Fehlermeldung und den Fehlercode zu überprüfen:

$ aws ec2 describe-instances --instance-id i-xxxxxxxxxxxxxxx --region us-east-1 --query "Reservations[].Instances[].{StateReason:StateReason}" --output json

Hinweis: Ersetzen Sie us-east-1 durch Ihre AWS-Region. Ersetzen Sie i-xxxxxxxxxxxxxxx durch Ihre Instance-ID.

Wenn ein verschlüsseltes Volume an die Instance angehängt ist und Probleme mit Berechtigungen oder Richtlinien auftreten, erhalten Sie eine Client-Fehlermeldung. Sie sehen eine Ausgabe, die der folgenden Mitteilung ähnelt:

[
    [{
        "StateReason": {
            "Code": "Client.InternalError",
            "Message": "Client.InternalError: Client error on launch"
        }
    }]
]

2.Stellen Sie sicher, dass der Benutzer, der versucht, die Instance zu starten, über die richtigen IAM-Berechtigungen verfügt. Wenn Sie die Instance indirekt über einen anderen Dienst wie EC2 Auto Scaling gestartet haben, überprüfen Sie auch die folgenden Konfigurationen:

Hinweis: Um zu überprüfen, ob ein Volume verschlüsselt ist, öffnen Sie die Amazon-EC2-Konsole und wählen Sie dann Volumes aus. Für verschlüsselte Volumes wird in der Spalte Verschlüsselung Verschlüsselt aufgeführt.


Ähnliche Informationen

Wenn ich meine Instance mit angehängten verschlüsselten Volumes starte, stoppt die Instance sofort mit der Fehlermeldung „client error on launch“

Warum kann ich meine EC2-Instance nicht starten?

Schlüsselrichtlinien in AWS KMS

Behebung von Instance-Startproblemen – Instance wird sofort beendet

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr