Schrittweise und einfache Skalierungsrichtlinien 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.

Schrittweise und einfache Skalierungsrichtlinien für Amazon EC2 Auto Scaling

Schrittweise Skalierung und einfache Skalierungsrichtlinien skalieren die Kapazität Ihrer Auto Scaling Scaling-Gruppe in vordefinierten Schritten auf der Grundlage von CloudWatch Alarmen. Sie können separate Skalierungsrichtlinien definieren, um die Aufskalierung (Erhöhung der Kapazität) und die Abskalierung (Verringerung der Kapazität) zu handhaben, wenn ein Alarmschwellenwert überschritten wird.

Mit schrittweiser Skalierung und einfacher Skalierung erstellen und verwalten Sie die CloudWatch Alarme, die den Skalierungsprozess auslösen. Wenn ein Alarm verletzt wird, initiiert Amazon EC2 Auto Scaling die mit diesem Alarm verknüpfte Skalierungsrichtlinie.

Wir empfehlen dringend, Skalierungsrichtlinien für die Zielverfolgung zu verwenden, um anhand von Kennzahlen wie der durchschnittlichen CPU Auslastung oder der durchschnittlichen Anzahl von Anfragen pro Ziel zu skalieren. Metriken, die sich verringern, wenn die Kapazität zunimmt, und zunehmen, wenn die Kapazität abnimmt, können zur proportionalen Aufwärts- oder Abwärtsskalierung der Anzahl der Instances verwendet werden, welche die Zielverfolgung verwenden. Dadurch wird sichergestellt, dass Amazon EC2 Auto Scaling der Nachfragekurve für Ihre Anwendungen genau folgt. Weitere Informationen finden Sie unter Skalierungsrichtlinien für die Ziel-Nachverfolgung.

Funktionsweise von Skalierungsrichtlinien

Um Step Scaling zu verwenden, erstellen Sie zunächst einen CloudWatch Alarm, der eine Metrik für Ihre Auto Scaling Scaling-Gruppe überwacht. Sie definieren die Metrik, den Schwellenwert und die Anzahl der Bewertungszeiträume, die einen Alarmverstoß bestimmen. Erstellen Sie dann eine Richtlinie zur schrittweisen Skalierung, die definiert, wie Ihre Gruppe skaliert werden soll, wenn der Alarmschwellenwert überschritten wird.

Sie fügen die schrittweisen Anpassungen in der Richtlinie hinzu. Sie können verschiedene schrittweise Anpassungen basierend auf der Größe der Alarmüberschreitung definieren. Beispielsweise:

  • Skalieren Sie um 10 Instanzen, wenn die Alarmmetrik 60 Prozent erreicht

  • Skalieren Sie die Anzeige um 30 Instanzen, wenn die Alarmmetrik 75 Prozent erreicht

  • Skalieren Sie die Skala um 40 Instanzen, wenn die Alarmmetrik 85 Prozent erreicht

Wenn der Alarmschwellenwert für die angegebene Anzahl von Testzeiträumen überschritten wird, wendet Amazon EC2 Auto Scaling die in der Richtlinie definierten schrittweisen Anpassungen an. Die Anpassungen können bei weiteren Überschreitungen des Alarms fortgesetzt werden, bis der Alarmstatus OK wieder erreicht ist.

Jede Instance hat eine Aufwärmphase, um zu verhindern, dass Skalierungsaktivitäten zu reaktiv auf Änderungen reagieren, die sich über kurze Zeiträume ergeben. Sie können optional die Aufwärmphase für Ihre Skalierungsrichtlinie konfigurieren. Wir empfehlen jedoch, das standardmäßige Aufwärmen der Instanz zu verwenden, um die Aktualisierung aller Skalierungsrichtlinien zu vereinfachen, wenn sich die Aufwärmzeit ändert. Weitere Informationen finden Sie unter Legen Sie die standardmäßige Instance-Vorbereitung für eine Auto-Scaling-Gruppe fest.

Einfache Skalierungsrichtlinien ähneln den Richtlinien zur schrittweisen Skalierung, außer dass sie auf einer einzigen Skalierungsanpassung basieren und zwischen den einzelnen Skalierungsaktivitäten eine Abklingzeit besteht. Weitere Informationen finden Sie unter Einfache Skalierungsrichtlinien.

Schrittanpassungen für die Schrittskalierung

Wenn Sie eine Richtlinie zur schrittweise Skalierung erstellen, geben Sie eine oder mehrere Stufenanpassungen an, die automatisch die Anzahl der Instances dynamisch basierend auf der Größe der Alarmüberschreitung skalieren. Jede Schrittanpassung gibt Folgendes an:

  • Eine Untergrenze für den Metrikwert

  • Eine Obergrenze für den Metrikwert

  • Den Skalierungswert basierend auf dem Skalierungsanpassungstyp

CloudWatch aggregiert metrische Datenpunkte auf der Grundlage der Statistik für die Metrik, die Ihrem Alarm zugeordnet ist. CloudWatch Wenn der Alarm ausgelöst wird, wird die entsprechende Skalierungsrichtlinie ausgelöst. Amazon EC2 Auto Scaling wendet den Aggregationstyp auf die neuesten metrischen Datenpunkte von an CloudWatch (im Gegensatz zu den metrischen Rohdaten). Dieser aggregierte Metrikwert wird anschließend mit der Ober- und der Untergrenze verglichen, die durch die Schrittanpassungen definiert wurden. Dadurch wird ermittelt, welche Schrittanpassung auszuführen ist.

Sie geben die Ober- und Untergrenzen relativ zum Verletzungsschwellenwert an. Nehmen wir zum Beispiel an, Sie haben einen CloudWatch Alarm ausgelöst und eine Scale-Out-Richtlinie für den Fall festgelegt, dass die Metrik über 50 Prozent liegt. Dann haben Sie einen zweiten Alarm und eine Abskalierungsrichtlinie für den Fall erstellt, dass die Metrik unter 50 Prozent liegt. Sie haben für jede Richtlinie eine Reihe von schrittweisen Anpassungen mit dem Anpassungstyp PercentChangeInCapacity (oder Prozent der Gruppe in der Konsole) vorgenommen:

Beispiel: Schrittanpassungen für die Richtlinie zur horizontalen Skalierung nach oben
Untergrenze Obergrenze Anpassung

0

10

0

10

20

10

20

Null

30

Beispiel: Schrittanpassungen für die Richtlinie zur horizontalen Skalierung nach unten
Untergrenze Obergrenze Anpassung

-10

0

0

-20

-10

-10

Null

-20

-30

Dadurch wird die folgende Skalierungskonfiguration erstellt.

Metric value -infinity 30% 40% 60% 70% infinity ----------------------------------------------------------------------- -30% | -10% | Unchanged | +10% | +30% -----------------------------------------------------------------------

Nehmen wir nun an, Sie verwenden diese Skalierungskonfiguration für eine Auto Scaling Scaling-Gruppe, die sowohl eine aktuelle als auch eine gewünschte Kapazität von 10 hat. Die folgenden Punkte fassen das Verhalten der Skalierungskonfiguration in Bezug auf die gewünschte und aktuelle Kapazität der Gruppe zusammen:

  • Die gewünschte und die aktuelle Kapazität werden aufrechterhalten, solange der aggregierte Metrikwert größer als 40 und kleiner als 60 ist.

  • Steigt der Metrikwert auf 60, wird die gewünschte Kapazität der Gruppe auf Grundlage der zweiten Schrittanpassung der Richtlinie für die horizontale Skalierung nach oben (Erhöhen um 10 % von 10 Instances) um 1 Instance auf 11 Instances erhöht. Nachdem die neue Instanz ausgeführt wird und die angegebene Aufwärmzeit abgelaufen ist, erhöht sich die aktuelle Kapazität der Gruppe auf 11 Instanzen. Steigt der Metrikwert auch nach dieser Kapazitätserhöhung auf 70, erhöht sich die gewünschte Kapazität der Gruppe um weitere 3 Instances auf 14 Instances. Dies basiert auf der dritten Schrittanpassung der Richtlinie für die horizontale Skalierung nach oben (Erhöhung um 30 Prozent von 11 Instances, 3,3 Instances, abgerundet auf 3 Instances).

  • Fällt der Metrikwert auf 40 ab, wird die gewünschte Kapazität der Gruppe auf Grundlage der zweiten Schrittanpassung der Richtlinie für die horizontale Skalierung nach unten (Verringern um 10 % von 14 Instances, 1,4 Instances abgerundet auf 1 Instance) um 1 Instance auf 13 Instances reduziert. Wenn der Metrikwert selbst nach dieser Abnahme der Kapazität auf 30 fällt, sinkt die gewünschte Kapazität der Gruppe um weitere 3 Instances auf 10 Instances. Dies basiert auf der dritten Schrittanpassung der Richtlinie für die horizontale Skalierung nach unten (Abzug um 30 Prozent von 13 Instances, 3,9 Instances, abgerundet auf 3 Instances).

Wenn Sie die Schrittanpassungen für Ihre Skalierungsrichtlinie angeben, beachten Sie Folgendes:

  • Wenn Sie die verwenden AWS Management Console, geben Sie die Ober- und Untergrenzen als absolute Werte an. Wenn Sie AWS CLI oder an verwendenSDK, geben Sie die Ober- und Untergrenzen relativ zum Schwellenwert für Sicherheitsverletzungen an.

  • Die Bereiche der Schrittanpassungen dürfen sich nicht überschneiden oder Lücken aufweisen.

  • Nur eine Schrittanpassung darf über einen Nullwert als Untergrenze verfügen (negative Unendlichkeit). Verfügt eine Schrittanpassung über eine negative Untergrenze, muss eine Schrittanpassung mit einem Nullwert als Untergrenze vorhanden sein.

  • Nur eine Schrittanpassung darf über einen Nullwert als Obergrenze verfügen (positive Unendlichkeit). Verfügt eine Schrittanpassung über eine positive Obergrenze, muss eine Schrittanpassung mit einem Nullwert als Obergrenze vorhanden sein.

  • Ober- und Untergrenze einer Schrittanpassung können nicht gleichzeitig über einen Nullwert verfügen.

  • Liegt der Metrikwert oberhalb des Verletzungsschwellenwerts, wird die Untergrenze eingeschlossen und die Obergrenze ausgeschlossen. Liegt der Metrikwert unterhalb des Verletzungsschwellenwerts, wird die Untergrenze ausgeschlossen und die Obergrenze eingeschlossen.

Skalierungsanpassungstypen

Sie können eine Skalierungsrichtlinie definieren, welche die optimale Skalierungsaktion basierend auf dem von Ihnen gewählten Skalierungsanpassungstyp ausführt. Sie können den Anpassungstyp als Prozentsatz der aktuellen Kapazität Ihrer Auto-Scaling-Gruppe oder in Kapazitätseinheiten angeben. Normalerweise bedeutet eine Kapazitätseinheit eine Instanz, es sei denn, Sie verwenden die Funktion zur Gewichtung von Instanzen.

Amazon EC2 Auto Scaling unterstützt die folgenden Anpassungstypen für die schrittweise Skalierung und die einfache Skalierung:

  • ChangeInCapacity – Erhöhen oder Verringern der aktuellen Kapazität der Gruppe um den angegebenen Wert. Ein positiver Wert erhöht die Kapazität, ein negativer Anpassungswert verringert die Kapazität. Beispiel: Wenn die aktuelle Kapazität der Gruppe 3 und die Anpassung 5 beträgt, dann fügen wir bei der Durchführung dieser Richtlinie 5 Kapazitätseinheiten zur Kapazität hinzu, insgesamt also 8 Kapazitätseinheiten.

  • ExactCapacity – Ändern Sie die aktuelle Kapazität der Gruppe auf den angegebenen Wert. Geben Sie bei diesem Anpassungstyp einen nicht-negativen Wert an. Beispiel: Wenn die aktuelle Kapazität der Gruppe 3 und die Anpassung 5 beträgt, dann ändern wir bei der Durchführung dieser Richtlinie die Kapazität auf 5 Kapazitätseinheiten.

  • PercentChangeInCapacity – Erhöhen oder Verringern der aktuellen Kapazität der Gruppe um den angegebenen Prozentsatz. Ein positiver Wert erhöht die Kapazität, ein negativer Anpassungswert verringert die Kapazität. Beispiel: Wenn die aktuelle Kapazität 10 und die Anpassung 10 Prozent beträgt, dann fügen wir bei der Durchführung dieser Richtlinie 1 Kapazitätseinheit zur Kapazität hinzu, insgesamt also 11 Kapazitätseinheiten.

    Anmerkung

    Handelt es sich bei dem resultierenden Wert nicht um eine ganze Zahl, wird wie folgt gerundet:

    • Werte größer als 1 werden abgerundet. Beispielsweise wird 12.7 auf 12 gerundet.

    • Werte zwischen 0 und 1 werden auf 1 gerundet. Beispielsweise wird .67 auf 1 gerundet.

    • Werte zwischen 0 und -1 werden auf -1 gerundet. Beispielsweise wird -.58 auf -1 gerundet.

    • Werte kleiner als -1 werden aufgerundet. Beispielsweise wird -6.67 auf -6 gerundet.

Mit PercentChangeInCapacity können Sie auch die minimale Anzahl von Instances angeben, die mit dem MinAdjustmentMagnitude-Parameter skaliert werden sollen. Angenommen, Sie erstellen eine Richtlinie zum Hinzufügen von 25 % und geben an, dass mindestens 2 Instances hinzugefügt werden sollen. Wenn Sie über eine Auto-Scaling-Gruppe mit 4 Instances verfügen und die Skalierungsrichtlinie umgesetzt wird, ergeben 25 % von 4 Instances 1 Instance. Da Sie aber angegeben haben, dass mindestens 2 Instances hinzugefügt werden sollen, werden 2 Instances hinzugefügt.

Wenn Sie Instance-Gewichtungen verwenden, ändert sich der Effekt, wenn Sie den MinAdjustmentMagnitude Parameter auf einen Wert ungleich Null setzen. Der Wert wird in Kapazitätseinheiten angegeben. Um die Mindestanzahl der zu skalierenden Instances festzulegen, legen Sie diesen Parameter auf einen Wert fest, der mindestens so groß ist wie die größte Instance-Gewichtung.

Wenn Sie Instance-Gewichtungen verwenden, denken Sie daran, dass die aktuelle Kapazität Ihrer Auto Scaling Scaling-Gruppe bei Bedarf die gewünschte Kapazität überschreiten kann. Wenn Ihre absolute Zahl, die zu verringern ist, oder der Betrag, den der Prozentsatz zum Verringern angibt, geringer ist als die Differenz zwischen der aktuellen und der gewünschten Kapazität, wird keine Skalierungsaktion durchgeführt. Sie müssen diese Verhalten berücksichtigen, wenn Sie sich das Ergebnis einer Skalierungsrichtlinie ansehen, wenn die Schwelle eines Alarms überschritten wird. Angenommen, die gewünschte Kapazität beträgt 30 und die aktuelle Kapazität 32. Wenn beim Auslösen des Alarms die gewünschte Kapazität mittels Skalierungsrichtlinie um 1 verringert wird, wird keine Skalierungsaktion durchgeführt.

Instance-Aufwärmphase

Sie können für Stufenskalierung optional angeben, wie viele Sekunden die Vorbereitung einer neu gestarteten Instance dauert. Bis die angegebene Aufwärmzeit abgelaufen ist, wird eine Instance nicht auf die aggregierten EC2 Instance-Metriken der Auto Scaling Scaling-Gruppe angerechnet.

Während sich die Instances in der Aufwärmphase befinden, werden Ihre Skalierungsrichtlinien nur dann skaliert, wenn der Metrikwert von Instances, die sich nicht in der Warmlaufphase befinden, über dem Schwellenwert für die Alarm-Obergrenze der Richtlinie liegt.

Wenn die Gruppe erneut skaliert wird, werden die Instances, die noch vorbereitet werden, als Teil der gewünschten Kapazität für die nächste Aufskalieraktivität gezählt. Daher führen mehrere Alarmüberschreitungen, die in den Bereich derselben Schrittanpassung fallen, zu einer einzigen Skalierung. Der Zweck ist eine kontinuierliche (jedoch nicht exzessive) Erweiterung.

Nehmen wir an, Sie erstellen eine Richtlinie mit zwei Schritten. Im ersten Schritt werden 10 Prozent hinzugefügt, wenn die Metrik 60 erreicht, und im zweiten Schritt werden 30 Prozent hinzugefügt, wenn die Metrik 70 Prozent erreicht. Ihre Auto-Scaling-Gruppe hat eine gewünschte und eine aktuelle Kapazität von 10. Die gewünschte und die aktuelle Kapazität ändern sich nicht, solange der aggregierte Metrikwert kleiner als 60 ist. Nehmen wir an, die Metrik erreicht den Wert 60, sodass 1 Instance hinzugefügt wird (10 Prozent von 10 Instances). Dann erreicht die Metrik den Wert 62, während die neue Instance sich noch in der Aufwärmphase befindet. Die Skalierungsrichtlinie berechnet die neue gewünschte Kapazität auf Grundlage der aktuellen Kapazität, die immer noch 10 beträgt. Allerdings ist die gewünschte Kapazität der Gruppe bereits auf 11 Instances gestiegen, weswegen die Skalierungsrichtlinie die gewünschte Kapazität nicht weiter erhöht. Erreicht die Metrik jedoch den Wert 70, während sich die neue Instance noch in der Aufwärmphase befindet, müssen wir 3 Instances (30 % von 10 Instances) hinzufügen. Die gewünschte Kapazität der Gruppe beträgt jedoch bereits 11, sodass wir für die jetzt gewünschte Kapazität von 13 Instances nur weitere 2 Instances hinzufügen.

Während die Aufskalieraktivität läuft, werden alle durch Skalierungsrichtlinien initiierte Abskalieraktivitäten blockiert, bis die Instances vorbereitet wurden. Wenn die Instances mit dem Aufwärmen fertig sind und ein Abskalierungsereignis eintritt, werden alle Instances, die gerade beendet werden, bei der Berechnung der neuen gewünschten Kapazität auf die aktuelle Kapazität der Gruppe angerechnet. Deshalb entfernen wir nicht mehr Instances aus der Auto-Scaling-Gruppe als nötig. Wenn beispielsweise eine Instance bereits beendet ist und ein Alarm im Bereich der gleichen Schrittanpassung auftritt, die die gewünschte Kapazität um 1 verringert hat, wird keine Skalierungsmaßnahme ergriffen.

Standardwert

Wenn kein Wert festgelegt ist, verwendet die Skalierungsrichtlinie den Standardwert, d. h. den Wert für das für die Gruppe definierte Standard-Instance-Warmup. Wenn das Standard-Aufwärmen der Instanz Null ist, wird auf den Wert der Standard-Abklingzeit zurückgegriffen.

Überlegungen

Bei der Arbeit mit Richtlinien zur schrittweisen und einfachen Skalierung ist Folgendes zu beachten:

  • Überlegen Sie, ob Sie die Schrittanpassungen in der Anwendung genau genug vorhersagen können, um die schrittweise Skalierung zu verwenden. Wenn Ihre Skalierungsmetrik die Kapazität des skalierbaren Ziels proportional vergrößert oder verkleinert, raten wir stattdessen zur Verwendung einer Skalierungsrichtlinie für die Ziel-Nachverfolgung. Sie haben weiterhin die Möglichkeit, die Schrittskalierung als zusätzliche Richtlinie für eine erweiterte Konfiguration zu verwenden. Beispiel: Sie können eine striktere Antwort konfigurieren, sobald die Auslastung ein bestimmtes Niveau erreicht.

  • Achten Sie darauf, einen angemessenen Abstand zwischen den Schwellenwerten für Scale-Out und Scale-In zu wählen, um ein Flattern zu verhindern. Flattern beschreibt eine Endlosschleife aus Auf- und Abwärtsskalieren. Das heißt, wenn eine Skalierungsaktion durchgeführt wird, würde sich der Metrikwert ändern und eine weitere Skalierungsaktion in der umgekehrten Richtung starten.