Skalierungsruhephasen für Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

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.

Skalierungsruhephasen für Amazon EC2 Auto Scaling

Wichtig

Als bewährte Methode empfehlen wir Ihnen, keine einfachen Skalierungsrichtlinien und Skalierungs-Cooldowns zu verwenden. Eine Skalierungsrichtlinie für die Zielverfolgung oder eine Richtlinie für die schrittweise Skalierung ist besser für die Skalierung der Leistung. Für eine Skalierungsrichtlinie, welche die Größe Ihrer Auto-Scaling-Gruppe proportional verändert, wenn der Wert der Skalierungsmetrik ab- oder zunimmt, sollte eine Zielverfolgung statt einer einfachen oder Schrittskalierung verwendet werden.

Wenn Sie einfache Skalierungsrichtlinien für Ihre Auto-Scaling-Gruppe erstellen, empfehlen wir, dass Sie gleichzeitig die Skalierungs-Ruhephase konfigurieren.

Nachdem Ihre Auto-Scaling-Gruppe Instances gestartet oder beendet hat, wartet sie auf das Ende der Ruhephase, bevor weitere Skalierungsaktivitäten gestartet werden können, die durch einfache Skalierungsrichtlinien initiiert werden. Der Zweck der Ruhephase besteht darin, dass sich Ihre Auto-Scaling-Gruppe stabilisiert und verhindert, dass weitere Instances gestartet oder beendet werden, bevor die Auswirkungen der vorherigen Skalierungsaktivität sichtbar sind.

Angenommen, eine einfache Skalierungsrichtlinie für die CPU-Auslastung empfiehlt, zwei Instances zu starten. Amazon EC2 Auto Scaling startet zwei Instances und unterbricht dann die Skalierungen bis zum Ende der Ruhephase. Nach Ende der Ruhephase können alle Skalierungen, die durch einfache Skalierungsrichtlinien ausgelöst werden, fortgesetzt werden. Wenn die CPU-Auslastung erneut die Alarmhöhe verletzt, skaliert die Auto-Scaling-Gruppe erneut, und die Ruhephase tritt erneut in Kraft. Wenn jedoch zwei Instances ausgereicht haben, um den Metrikwert zu verringern, bleibt die aktuelle Größe der Gruppe erhalten.

Überlegungen

Die folgenden Überlegungen gelten bei der Arbeit mit einfachen Skalierungsrichtlinien und Skalierung von Cooldowns:

  • Richtlinien zur Zielverfolgung und zur Schrittskalierung können sofort eine Aufskalierungs-Aktivität initiieren, ohne auf das Ende der Ruhephase zu warten. Stattdessen haben die einzelnen Instances immer dann, wenn Ihre Auto Scaling Scaling-Gruppe Instances startet, eine Aufwärmphase. Weitere Informationen finden Sie unter Legen Sie die standardmäßige Instance-Vorbereitung für eine Auto-Scaling-Gruppe fest.

  • Wenn eine geplante Aktion während einer Ruhephase zum geplanten Zeitpunkt beginnt, kann sie umgehend eine Skalierung auslösen, ohne das Ende der Ruhephase abzuwarten.

  • Wenn eine Instance fehlerhaft wird, wartet Amazon EC2 Auto Scaling nicht auf das Ende der Ruhephase, bevor die Instance ersetzt wird.

  • Wenn mehrere Instances launchen oder beenden, beginnt die Ruhephase (sei es die standardmäßige oder die Skalierungsrichtlinienspezifische Ruhephase) nach erfolgtem Start oder erfolgter Beendigung der letzten Instance.

  • Wenn Sie Ihre Auto-Scaling-Gruppe manuell skalieren, wird standardmäßig nicht auf das Ende eines Cooldown-Vorgangs gewartet. Sie können dieses Verhalten jedoch überschreiben und die Standard-Abklingzeit beibehalten, wenn Sie das AWS CLI oder ein SDK für die manuelle Skalierung verwenden.

  • Standardmäßig wartet Elastic Load Balancing 300 Sekunden, um den Abmeldeprozess (Connection Draining) abzuschließen. Wenn sich die Gruppe hinter einer Elastic Load Balancing-Load-Balancer befindet, wartet sie, bis sich die abschließenden Instances abmelden, bevor die Ruhephase beginnt.

Lebenszyklus-Hooks können zusätzliche Verzögerungen verursachen

Wenn ein Lebenszyklus-Hook aufgerufen wird, beginnt die Ruhephase, nachdem Sie die Lebenszyklus-Aktion abgeschlossen haben oder nach Ende des Timeout-Zeitraums. Angenommen, eine Auto-Scaling-Gruppe besitzt einen Lebenszyklus-Hook für den Instance-Start. Steigt die Auslastung der Anwendung, startet die Gruppe eine Instance, um die Kapazität zu erhöhen. Da es einen Lebenszyklus-Hook gibt, wird die Instance in einen Wartezustand versetzt und Skalierungen aufgrund einfacher Skalierungsrichtlinien werden angehalten. Die Ruhephase beginnt, wenn die Instance in den Status InService versetzt wird. Nach Ablauf der Ruhephase werden einfache Skalierungsrichtlinien wieder aufgenommen.

Wenn Elastic Load Balancing für die Skalierung aktiviert ist, beginnt die Abklingzeit, wenn die für die Kündigung ausgewählte Instance mit dem Verbindungsabbau beginnt (Abmeldeverzögerung). Die Abklingzeit wartet nicht darauf, dass der Verbindungsabbau abgeschlossen ist oder der Lifecycle-Hook seine Aktion abgeschlossen hat. Dies bedeutet, dass alle Skalierungsaktivitäten aufgrund einfacher Skalierungsrichtlinien fortgesetzt werden können, sobald sich das Ergebnis des Abskalierungs-Ereignisses in der Kapazität der Gruppe widerspiegelt. Andernfalls erhöht das Warten auf den Abschluss aller drei Aktivitäten (Connection-Draining, Lebenszyklus-Hook und Ruhephase) die Zeit, welche die Auto-Scaling-Gruppe benötigt, um die Skalierung zu unterbrechen.

Ändern der standardmäßigen Ruhephase

Sie können den standardmäßige Cooldown-Vorgang nicht festlegen, wenn Sie zunächst eine Auto-Scaling-Gruppe in der Scaling-Konsole von Amazon EC2 Auto Scaling erstellen. Standardmäßig ist diese Ruhephase auf 300 Sekunden (5 Minuten) festgelegt. Bei Bedarf können Sie dies aktualisieren, nachdem die Gruppe erstellt wurde.

So ändern Sie die standardmäßige Ruhephase (Konsole)

Nach dem Erstellen der Auto-Scaling-Gruppe wählen Sie auf der Registerkarte Details, Advances configurations (Erweiterte Konfigurationen) und dann Edit (Bearbeiten) aus. Für Default cooldown (Standardmäßige Ruhephase/Cooldown-Vorgang) wählen Sie die gewünschte Zeit auf der Grundlage der Startzeit für Ihre Instance oder anderer Anwendungsanforderungen aus.

Ändern der standardmäßigen Ruhephase (AWS CLI)

Verwenden Sie die folgenden Befehle, um die standardmäßige Ruhephase für neue oder vorhandene Auto-Scaling-Gruppen zu ändern. Wenn die standardmäßige Ruhephase nicht definiert ist, wird der Standardwert von 300 Sekunden verwendet.

Verwenden Sie den Befehl, um den Wert der Standard-Abklingzeit zu bestätigen. describe-auto-scaling-groups

Festlegen einer Ruhephase für bestimmte einfache Skalierungsrichtlinien

Standardmäßig verwenden alle einfachen Skalierungsrichtlinien die für die Auto-Scaling-Gruppe definierte Standard-Ruhephase. Wenn Sie eine Ruhephase für bestimmte einfache Skalierungsrichtlinien angeben möchten, verwenden Sie den optionalen Parameter für die Ruhephase beim Erstellen oder Aktualisieren der Richtlinie. Wenn für eine Richtlinie eine Ruhephase angegeben wird, überschreibt sie die standardmäßige Ruhephase.

Eine skalierungsspezifische Ruhephase wird häufig mit einer Scale-In-Richtlinie verwendet. Da diese Richtlinie Instances beendet, benötigt Amazon EC2 Auto Scaling weniger Zeit, um zu ermitteln, ob weitere Instances zu beenden sind. Die Beendigung von Instances sollte viel schneller als der Start von Instances erfolgen. Die standardmäßige Ruhephase von 300 Sekunden ist daher zu lang. In diesem Fall kann Ihnen eine skalierungsspezifische Ruhephase mit einem niedrigeren Wert für Ihre Abskalierungs-Richtlinie helfen, Kosten zu senken, da die Gruppe schneller nach unten skaliert werden kann.

Um einfache Skalierungsrichtlinien in der Konsole zu erstellen oder zu aktualisieren, wählen Sie die Auto Scaling (Automatische Skalierung) nachdem Sie die Gruppe erstellt haben. Verwenden Sie den put-scaling-policyBefehl, um einfache Skalierungsrichtlinien mit dem AWS CLI zu erstellen oder zu aktualisieren. Weitere Informationen finden Sie unter Schrittweise und einfache Skalierungsrichtlinien.