New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
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 löst jedoch einmal pro Minute eine Auto-Scaling-Aktion aus, 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 Sie den Vorgang CompleteLifecycleAction oder AWS Command Line Interface (AWS CLI) aufrufen.
Lösung
Bevor Sie beginnen, stellen Sie sicher, dass sich Ihr 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 finden Sie unter Evaluating an alarm.
Stellen Sie sicher, dass Ihr CloudWatch-Alarm erwartungsgemäß in den Zustand ALARM wechselt, indem Sie den Schwellenwert des Alarms überprüfen. Erhöhen oder verringern Sie den Schwellenwert, bis er Ihrem erwarteten Wert entspricht. Überprüfen Sie auch den Zeitraum und den Evaluierungszeitraum des Alarms. Möglicherweise müssen Sie Ihren Alarmzeitraum und den Evaluierungszeitraum bearbeiten, damit Ihre Auto-Scaling-Richtlinie wie erwartet aufgerufen wird. Weitere Informationen zur Überprüfung von Alarmaktionen finden Sie unter Wie kann ich sicher sein, dass CloudWatch-Alarme Aktionen auslösen?
Wichtig: Beachten Sie beim Erstellen oder Bearbeiten von Alarmen die folgenden Punkte:
- Stellen Sie sicher, dass Sie die Skalierungsprozesse für Ihre Auto-Scaling-Gruppe nicht ausgesetzt haben. Wenn die Skalierungsprozesse ausgesetzt wurden, setzen Sie sie fort.
- Erstellen, bearbeiten oder löschen Sie niemals die Alarme, die mit Richtlinien zur Zielüberwachung der Skalierung 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, aktivieren Sie den ActionsEnabled-Parameter in der Konfiguration des Alarms. Stellen Sie sicher, dass der Parameter ActionsEnabled in der Konfiguration Ihres Alarms auf wahr gesetzt ist.
Hinweis: Wenn Sie Ihren Alarm mithilfe der CloudWatch-Konsole erstellen oder aktualisieren, ist der Parameter ActionsEnabled standardmäßig auf wahr gesetzt.
Gehen Sie wie folgt vor, um Alarmaktionen mithilfe von AWS CLI zu überprüfen und zuzulassen:
-
Überprüfen Sie Ihre Konfiguration mit dem Befehl describe-alarms.
aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'
Hinweis: Ersetzen Sie myalarm durch die ID Ihres Alarms.
-
Überprüfen Sie die Ausgabe. Wenn der Parameter ActionsEnabled nicht auf wahr gesetzt ist, aktivieren Sie Alarmaktionen mit dem Befehl enable-alarm-actions.
aws cloudwatch enable-alarm-actions --alarm-names myalarm
Hinweis: Wenn Sie beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhalten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.
Führen Sie folgende Schritte aus, um Alarmaktionen mit der CloudWatch-API zu überprüfen und zu aktivieren:
- Rufen Sie den Vorgang DescribeAlarms auf, um Ihre aktuelle Konfiguration zu überprüfen.
- Wenn für Ihren Alarm keine Aktionen zugelassen sind, rufen Sie den Vorgang EnableAlarmActions auf, um Aktionen einzuschalten.
Überprüfen der Richtlinien für einfache Skalierung und schrittweise Skalierung für Ihre Auto-Scaling-Gruppe
Gehen Sie wie folgt vor, um die Skalierungsrichtlinien Ihrer Gruppe in der Amazon-EC2-Konsole zu überprüfen:
- Öffnen Sie die Amazon-EC2-Konsole.
- Wählen Sie im Navigationsbereich unter Auto Scaling die Option Auto-Scaling-Gruppen aus.
- Wählen Sie im Inhaltsbereich Ihre Auto-Scaling-Gruppe aus.
- Wählen Sie die Registerkarte Automatische Skalierung und notieren Sie sich den Richtlinientyp.
Um Skalierungsrichtlinien mit AWS CLI zu überprüfen, führen Sie den Befehl describe-policies mit dem Parameter**--policy-types** aus. Um Skalierungsrichtlinien mit einer AWS-API zu überprüfen, rufen Sie 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. Stellen Sie sicher, dass widersprüchliche Richtlinien nicht gleichzeitig angewendet werden.
Prüfen Ihrer 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.
Vergewissern Sie sich, dass alle Lebenszyklus-Hooks nach Ablauf der globalen Zeitüberschreitung oder Heartbeat-Zeitüberschreitung mit einem CONTINUE- oder ABANDON-Ergebnis enden.
Gehen Sie wie folgt vor, um in der Amazon-EC2-Konsole nach Lebenszyklus-Hook-Aktionen zu suchen:
- Öffnen Sie die Amazon-EC2-Konsole.
- Wählen Sie im Navigationsbereich unter Auto Scaling die Option Auto-Scaling-Gruppen aus.
- Wählen Sie im Inhaltsbereich Ihre Auto-Scaling-Gruppe aus.
- Wählen Sie die Registerkarte Aktivität aus und scrollen Sie dann zum Abschnitt Aktivitätsverlauf.
- Überprüfen Sie die Aktivität für alle laufenden Lebenszyklus-Hook-Aktionen.
Schritte zum Abschließen eines Lifecycle-Hooks finden Sie unter Complete a lifecycle action.
Verwandte Informationen
Wie behebe ich Skalierungsprobleme mit meiner Amazon EC2 Auto-Scaling-Gruppe?

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