Wie verhindere ich, dass AWS OpsWorks Stacks unerwartet fehlerfreie Instances neu startet?
AWS OpsWorks Stacks startet meine Amazon Elastic Compute Cloud (Amazon EC2)-Instances neu, auch wenn die Instances die Amazon EC2-Zustandsprüfungen bestehen. Warum passiert das und wie kann ich es verhindern?
Kurzbeschreibung
Wenn die automatische Healing-Feature von OpsWorks Stacks aktiviert ist und der Service feststellt, dass eine von ihm verwaltete Instance ausfällt, tritt eines der folgenden Ereignisse ein:
- Wenn die Instance von Amazon Elastic Block Store (Amazon EBS) unterstützt wird, stoppt die OpsWorks Stacks-API und startet die ausgefallene Instance.
- Wenn die Instance von einem Amazon EC2-Instance-Speicher unterstützt wird, wird die Instance beendet. Anschließend wird die Instance neu erstellt, wenn OpsWorks Stacks diese erneut startet.
- Wenn die Instance bei einem On-Premises-OpsWorks-Stack registriert ist, wird der Status der Instance auf Verbindung verloren geändert, aber nicht neu gestartet.
Um zu verhindern, dass OpsWorks Stacks die von ihm verwalteten Instances automatisch heilt, folgen Sie zunächst den Schritten zur Fehlerbehebung in diesem Artikel. Wenn das Problem weiterhin besteht, können Sie die automatische Heilung auch in den allgemeinen Einstellungen Ihres OpsWorks Stacks-Layers deaktivieren.
Weitere Informationen finden Sie unter Instances starten unerwartet neu, im AWS OpsWorks-Leitfaden zum Debuggen und Beheben von Fehlern.
Behebung
Stellen Sie sicher, dass die Amazon EC2-Instances, die von OpsWorks Stacks verwaltet werden, über einen Internetzugang verfügen
Wenn eine Amazon EC2-Instance ihre Verbindung zum OpsWorks Stacks-Service verliert, behandelt OpsWorks Stacks die Instance als ausgefallen.
Gehen Sie wie folgt vor, um zu überprüfen, ob Ihre Amazon EC2-Instances über einen Internetzugang verfügen:
- Stellen Sie sicher, dass Ihre Instances entweder über ein Internet-Gateway oder ein Network Address Translation Gateway (NAT) auf das Internet zugreifen können.
- Stellen Sie sicher, dass eingehender HTTPS-Zugriff über Port 443 auf der Ebene Instance, Sicherheitsgruppe und Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL) zulässig ist.
Informationen zur Behebung von NAT-Gateway-Verbindungsproblemen finden Sie unter Warum können meine EC2-Instances über ein NAT-Gateway nicht auf das Internet zugreifen?
Informationen zur Behebung von Verbindungsproblemen mit dem Internet-Gateway finden Sie unter Warum kann meine Amazon EC2-Instance über ein Internet-Gateway keine Verbindung zum Internet herstellen?
Stellen Sie sicher, dass Ihre Anwendung auf Instance-Ebene über genügend Arbeitsspeicher und CPU-Kapazität verfügt, um zu funktionieren, wenn die Instance zusätzlich ausgelastet ist
Wenn nicht genügend Ressourcen auf Instance-Ebene vorhanden sind, damit der OpsWorks-Agent sein Keepalive-Signal senden kann, behandelt OpsWorks Stacks die Instance als ausgefallen.
Um die Metriken Ihrer Instances zu überprüfen, folgen Sie den Anweisungen unter Stacks mithilfe von Amazon CloudWatch überwachen.
Informationen zum Einrichten von Alarmen, die Sie warnen, wenn Ihre Instance eine hohe Auslastung von CPU, Arbeitsspeicher oder Netzwerkverkehr hat, finden Sie unter Amazon CloudWatch-Alarme erstellen.
Stellen Sie sicher, dass die Amazon EC2-Instance nicht außerhalb der OpsWorks Stacks-Konsole oder der OpsWorks Stacks-API gestoppt wurde
Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS CLI-Version verwenden.
Wenn eine von OpsWorks Stacks verwaltete Instance in der Amazon EC2-Konsole gestoppt wird, empfängt OpsWorks Stacks das Keepalive-Signal nicht mehr vom OpsWorks-Agenten. OpsWorks Stacks behandelt die Instance dann als ausgefallen.
Um zu überprüfen, ob Ihre Instance in der Amazon EC2-Konsole gestoppt wurde, versuchen Sie, die Instance in der OpsWorks Stacks-Konsole zu beenden. Wenn sich die Instance im Status stop_failed befindet und Sie die Fehlermeldung Internal Error erhalten, wurde die Instance in der Amazon EC2-Konsole gestoppt.
Um eine Instance in OpsWorks Stacks zu stoppen, nachdem sie in der Amazon EC2-Konsole gestoppt wurde, führen Sie den AWS CLI-Befehl stop-instance aus.
Wichtig: Der Befehl stop-instance muss den Parameter --force für diesen Anwendungsfall enthalten.
Weitere Informationen finden Sie unter Wie behebe ich die Fehlermeldung „Internal Error“ beim Stoppen einer AWS OpsWorks Stacks-Instance, die sich im Status „stop_failed“ befindet?
Stellen Sie sicher, dass die Amazon EC2-Instance die Instance Metadata Service Version 1 (IMDSv1) verwendet
OpsWorks Stacks unterstützt nur IMDSv1, nicht IMDSv2. Wenn eine von OpsWorks Stacks verwaltete Instance IMDSv2 verwendet, behandelt OpsWorks Stacks die Instance als ausgefallen.
Weitere Informationen zur Überprüfung, welchen Metadatendienst Ihre Instance verwendet, und um die Instance bei Bedarf neu zu konfigurieren, finden Sie in der Metadatenoptionen konfigurieren.
Verwandte Informationen
Was ist Amazon CloudWatch Logs?
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren