Warum ruft die Zustandsänderung meines CloudWatch-Alarms nicht meine Richtlinie für Amazon EC2 Auto Scaling auf?
Mein Amazon-CloudWatch-Alarm ist so konfiguriert, dass er meine Auto-Scaling-Richtlinie von Amazon Elastic Compute Cloud (Amazon EC2) aufruft, aber es funktioniert nicht.
Kurzbeschreibung
Wenn ein CloudWatch-Alarm in einen neuen Alarmzustand übergeht, ruft er alle konfigurierten Aktionen für diesen Alarmzustand auf. Amazon EC2 Auto Scaling verwendet den für den Alarm konfigurierten Zeitraum, um zu bestimmen, ob sich der Alarmzustand ändern sollte. Ein Alarm ruft jedoch einmal pro Minute eine Auto-Scaling-Aktion auf, wenn der Alarm in einem neuen Zustand verbleibt. Dies geschieht unabhängig vom konfigurierten Zeitraum.
Dies sind einige der häufigsten Gründe, warum eine Änderung des CloudWatch-Alarmzustands keine Richtlinie für Amazon EC2 Auto Scaling aufruft:
- Die Auto-Scaling-Aktion ist nicht für den CloudWatch-Alarm eingerichtet.
- Die Skalierungsrichtlinie in der Amazon-EC2-Auto-Scaling-Gruppe ist nicht eingerichtet. Dies verhindert die Auswertung der Auto-Scaling-Gruppe.
- Die Auto-Scaling-Gruppe weist einfache Skalierungsrichtlinien oder Richtlinien zur schrittweisen Skalierung auf, die miteinander in Konflikt stehen. Deshalb können einige Richtlinien nicht gestartet werden.
- Die Auto-Scaling-Gruppe weist einen unvollständigen Lebenszyklus-Hook auf. Deshalb können keine einfachen Skalierungsrichtlinien angewendet werden. Eine ausstehende Instance verursacht außerdem Verzögerungen bei Richtlinien zur schrittweisen Skalierung und Zielüberwachung der Skalierung. Grund dafür ist, dass Auto Scaling die Instance erst dann auf die Kapazität der Gruppe anrechnet, wenn der Lebenszyklus-Hook und die Aufwärmzeit abgeschlossen sind (für die Aufskalierung). Die Instance wird auf die Kapazität der Gruppe (für die Abskalierung) angerechnet, um eine übermäßige Skalierung zu verhindern.
- Der Lebenszyklus-Hook wird beendet, wenn eine Zeitüberschreitung eintritt oder wenn du den Vorgang CompleteLifecycleAction oder AWS Command Line Interface (AWS CLI) aufrufst.
Lösung
Bevor du beginnst, stelle sicher, dass sich der CloudWatch-Alarm im Zustand ALARM befindet. Wenn die Konfiguration eines Alarms nicht dem Schwellenwert der Metrik entspricht, die er überwacht, wechselt der Alarm möglicherweise nicht in den Zustand ALARM. Wenn ein Alarm seinen Zustand nicht ändert, werden keine Auto-Scaling-Richtlinien aufgerufen. Weitere Informationen zur Auswertung von CloudWatch-Alarmen findest du unter Auswerten eines Alarms.
Stelle sicher, dass der CloudWatch-Alarm erwartungsgemäß in den Zustand ALARM wechselt, indem du den Schwellenwert des Alarms überprüfst. Erhöhe oder verringere den Schwellenwert, bis er dem erwarteten Wert entspricht. Überprüfe auch den Zeitraum und den Bewertungszeitraum des Alarms. Möglicherweise musst du den Zeitraum und den Bewertungszeitraum des Alarms bearbeiten, damit die Auto-Scaling-Richtlinie wie erwartet aufgerufen wird.
Wichtig: Beachte beim Erstellen oder Bearbeiten von Alarmen die folgenden Punkte:
- Stelle sicher, dass du die Skalierungsprozesse für die Auto-Scaling-Gruppe nicht angehalten hast. Wenn die Skalierungsprozesse angehalten wurden, setze sie fort.
- Erstelle, bearbeite oder lösche niemals die Alarme, die mit Skalierungsrichtlinien zur Zielverfolgung verknüpft sind. Das Ändern dieser automatisch erstellten Alarme kann zu unbeabsichtigten Ergebnissen führen. Der Schwellenwert dieser Alarme wird automatisch auf Basis des in der Skalierungsrichtlinie festgelegten Zielwerts bestimmt.
Prüfen, ob Auto-Scaling-Aktionen für den CloudWatch-Alarm zugelassen sind
Damit ein CloudWatch-Alarm eine Auto-Scaling-Richtlinie aufruft, aktiviere den ActionsEnabled-Parameter in der Konfiguration des Alarms. Stelle sicher, dass der Parameter ActionsEnabled in der Konfiguration des Alarms auf wahr gesetzt ist.
Hinweis: Wenn du den Alarm mithilfe der CloudWatch-Konsole erstellst oder aktualisierst, ist der Parameter ActionsEnabled standardmäßig auf wahr gesetzt.
Gehe wie folgt vor, um Alarmaktionen mithilfe der AWS CLI zu überprüfen und zuzulassen:
-
Überprüfe die Konfiguration mit dem Befehl describe-alarms.
aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'Hinweis: Ersetze myalarm durch die ID deines Alarms.
-
Überprüfe die Ausgabe. Wenn der Parameter ActionsEnabled nicht auf true gesetzt ist, aktiviere Alarmaktionen mit dem Befehl enable-alarm-actions.
aws cloudwatch enable-alarm-actions --alarm-names myalarm
Hinweis: Wenn du beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhältst, findest du weitere Informationen unter Beheben von AWS-CLI-Fehlern. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
Gehe wie folgt vor, um Alarmaktionen mit der CloudWatch-API zu überprüfen und zu aktivieren:
- Rufe den Vorgang DescribeAlarms auf, um deine aktuelle Konfiguration zu überprüfen.
- Wenn für den Alarm keine Aktionen zugelassen sind, rufe den Vorgang EnableAlarmActions auf, um Aktionen zu aktivieren.
Überprüfen der Richtlinien für einfache Skalierung und schrittweise Skalierung für die Auto-Scaling-Gruppe
Gehe wie folgt vor, um die Skalierungsrichtlinien der Gruppe in der Amazon-EC2-Konsole zu überprüfen:
- Öffne die Amazon-EC2-Konsole.
- Wähle im Navigationsbereich unter Auto Scaling die Option Auto-Scaling-Gruppen aus.
- Wähle im Inhaltsbereich deine Auto-Scaling-Gruppe aus.
- Wähle die Registerkarte Automatische Skalierung und notiere dir den Richtlinientyp.
Um Skalierungsrichtlinien mit AWS CLI zu überprüfen, führe den Befehl describe-policies mit dem Parameter**--policy-types** aus. Um Skalierungsrichtlinien mit einer AWS-API zu überprüfen, rufe den Vorgang DescribePolicies mit dem PolicyTypes-Parameter auf. Die Ausgabe listet jeden Richtlinientyp auf.
Wenn eine einfache Skalierungsrichtlinie in Kraft ist, werden alle anderen einfachen Skalierungsrichtlinien erst aufgerufen, wenn die folgenden Bedingungen erfüllt sind:
- Die aktive einfache Skalierungsrichtlinie ist abgeschlossen.
- Die Ruhephase für die Auto-Scaling-Richtlinie ist abgelaufen. Eine einfache Skalierungsrichtlinie berücksichtigt die standardmäßige oder festgelegte Ruhephase der Auto-Scaling-Richtlinie.
Hinweis: Durch das Ausführen einer einfachen Skalierungsrichtlinie werden die Richtlinien für schrittweise Skalierung oder Zielverfolgung der Skalierung nicht vollständig blockiert. Stelle sicher, dass widersprüchliche Richtlinien nicht gleichzeitig angewendet werden.
Prüfen der Auto-Scaling-Richtlinie auf Auto-Scaling-Lebenszyklus-Hooks
Die Skalierungsaktivitäten einer einfachen Skalierungsrichtlinie werden angehalten, wenn ein Auto-Scaling-Lebenszyklus-Hook ausgeführt wird. Eine Richtlinie zur schrittweisen Skalierung wird jedoch weiterhin ausgeführt, wenn ein Lebenszyklus-Hook ausgeführt wird.
Vergewissere dich, dass alle Lebenszyklus-Hooks nach Ablauf des Zeitraums der globalen Zeitüberschreitung oder des Zeitraums der Heartbeat-Zeitüberschreitung mit einem CONTINUE- oder ABANDON-Ergebnis enden.
Gehe wie folgt vor, um in der Amazon-EC2-Konsole nach Lebenszyklus-Hook-Aktionen zu suchen:
- Öffne die Amazon-EC2-Konsole.
- Wähle im Navigationsbereich unter Auto Scaling die Option Auto-Scaling-Gruppen aus.
- Wähle im Inhaltsbereich deine Auto-Scaling-Gruppe aus.
- Wähle die Registerkarte Aktivität aus und scrolle dann zum Abschnitt Aktivitätsverlauf.
- Überprüfe die Aktivität für alle laufenden Lebenszyklus-Hook-Aktionen.
Schritte zum Abschließen eines Lebenszyklus-Hooks findest du unter Eine Lebenszyklus-Aktion abschließen.
Ähnliche Informationen
Wie behebe ich Skalierungsprobleme mit meiner Amazon-EC2-Auto-Scaling-Gruppe?
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor einem Jahr
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor 2 Jahren