Dynamische Skalierung 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.

Dynamische Skalierung für Amazon EC2 Auto Scaling

Bei der dynamischen Skalierung wird die Kapazität Ihrer Auto-Scaling-Gruppe skaliert, wenn sich der Datenverkehr ändert.

Amazon EC2 Auto Scaling unterstützt die folgenden Typen von dynamischen Skalierungsrichtlinien:

  • Skalierung der Zielverfolgung — Erhöhen und verringern Sie die aktuelle Kapazität der Gruppe auf der Grundlage einer CloudWatch Amazon-Metrik und eines Zielwerts. Das funktioniert ähnlich wie bei einem Thermostat, der die Temperatur in Ihrem Zuhause aufrechterhält: Sie wählen eine Temperatur und der Thermostat erledigt den Rest.

  • Step scaling (Schrittweise Skalierung): Erhöht und verringert die aktuelle Kapazität der Gruppe auf der Grundlage einer Reihe von Skalierungsanpassungen, die als Schrittanpassungen bezeichnet werden und je nach Ausmaß der Alarmüberschreitung variieren.

  • Simple scaling (Einfache Skalierung): Erhöht und verringert die aktuelle Kapazität der Gruppe auf der Grundlage einer einzelnen Skalierungsanpassung und mit einer Ruhephase zwischen den einzelnen Skalierungsaktivitäten.

Wir empfehlen dringend, dass Sie Skalierungsrichtlinien für die Zielverfolgung verwenden und eine Metrik wählen, die sich umgekehrt proportional zu einer Änderung der Kapazität Ihrer Auto Scaling Scaling-Gruppe ändert. Wenn Sie also die Größe Ihrer Auto Scaling Scaling-Gruppe verdoppeln, sinkt die Metrik um 50 Prozent. Auf diese Weise können die Metrikdaten genau proportionale Skalierungsereignisse auslösen. Enthalten sind Metriken wie die durchschnittliche CPU-Auslastung oder die durchschnittliche Anzahl von Anfragen pro Ziel.

Mit Target Tracking skaliert Ihre Auto Scaling-Gruppe direkt proportional zur tatsächlichen Auslastung Ihrer Anwendung. Das bedeutet, dass eine Zielverfolgungsrichtlinie nicht nur den unmittelbaren Kapazitätsbedarf deckt, indem sie auf Laständerungen reagiert, sondern sich auch an Laständerungen anpassen kann, die im Laufe der Zeit auftreten (beispielsweise aufgrund saisonaler Schwankungen).

Richtlinien zur Zielverfolgung machen es außerdem überflüssig, CloudWatch Alarme und Skalierungsanpassungen manuell zu definieren. Amazon EC2 Auto Scaling verarbeitet dies automatisch auf der Grundlage des von Ihnen festgelegten Ziels.

Funktionsweise von dynamischen Skalierungsrichtlinien

Eine dynamische Skalierungsrichtlinie weist Amazon EC2 Auto Scaling an, eine bestimmte CloudWatch Metrik zu verfolgen, und sie definiert, welche Aktion zu ergreifen ist, wenn der zugehörige CloudWatch Alarm in ALARM ist. Die Metriken, die zum Auslösen des Alarmstatus verwendet werden, sind eine Aggregation von Metriken, die von allen Instances in der Auto-Scaling-Gruppe stammen. (Angenommen, Sie haben eine Auto-Scaling-Gruppe mit zwei Instances, bei denen eine Instance 60 Prozent CPU und die andere 40 Prozent CPU hat. Im Durchschnitt liegen sie bei 50 Prozent CPU.) Wenn die Richtlinie in Kraft ist, passt Amazon EC2 Auto Scaling die gewünschte Kapazität der Gruppe nach oben oder unten an, wenn die Schwelle eines Alarms überschritten wurde.

Wenn eine dynamische Skalierungsrichtlinie aufgerufen wird und die Kapazitätsberechnung eine Zahl außerhalb des minimalen und maximalen Größenbereichs der Gruppe erzeugt, stellt Amazon EC2 Auto Scaling sicher, dass die neue Kapazität niemals außerhalb der minimalen und maximalen Größengrenzen liegt. Die Kapazität wird auf zwei Arten gemessen: mit denselben Einheiten, die Sie bei der Festlegung der gewünschten Kapazität in Form von Instances ausgewählt haben, oder mit Kapazitätseinheiten (wenn Instance-Gewichtungen angewendet werden).

  • Beispiel 1: Eine Auto-Scaling-Gruppe hat eine maximale Kapazität von 3, eine aktuelle Kapazität von 2 und eine dynamische Skalierungsrichtlinie, die drei Instances hinzufügt. Beim Aufrufen dieser Skalierungsrichtlinie fügt Amazon EC2 Auto Scaling der Gruppe nur eine Instance hinzu, um zu verhindern, dass die Gruppe ihre maximale Größe überschreitet.

  • Beispiel 2: Eine Auto-Scaling-Gruppe hat eine Mindestkapazität von 2, eine aktuelle Kapazität von 3 und eine dynamische Skalierungsrichtlinie, die zwei Instances entfernt. Wenn Sie diese Richtlinie aufrufen, entfernt Amazon EC2 Auto Scaling nur eine Instance aus der Gruppe, um zu verhindern, dass die Gruppe ihre Mindestgröße unterschreitet.

Wenn die gewünschte Kapazität die maximale Größengrenze erreicht, stoppt die Skalierung. Wenn der Bedarf sinkt und die aktuelle genutzte Kapazität abnimmt, kann Amazon EC2 Auto Scaling entsprechend aufwärts skalieren.

Die Ausnahme ist, wenn Sie Instance-Gewichte verwenden. In diesem Fall kann Amazon EC2 Auto Scaling über die maximale Größenbeschränkung hinaus skaliert werden, aber nur um das maximale Instance-Gewicht. Die Absicht ist, so nah wie möglich an die neue gewünschte Kapazität zu kommen, aber dennoch die für die Gruppe festgelegten Zuordnungsstrategien einzuhalten. Die Zuweisungsstrategien legen fest, welche Instance-Typen gestartet werden sollen. Die Gewichtungen legen fest, wie viele Kapazitätseinheiten jede Instance auf der Grundlage ihres Instance-Typs zur gewünschten Kapazität der Gruppe beiträgt.

  • Beispiel 3: Eine Auto-Scaling-Gruppe hat eine maximale Kapazität von 12, eine aktuelle Kapazität von 10 und eine dynamische Skalierungsrichtlinie, die 5 Kapazitätseinheiten hinzufügt. Den Instance-Typen ist jeweils eine von drei Gewichtungen zugewiesen: 1, 4 oder 6. Wenn Sie die Skalierungsrichtlinie aufrufen, wählt Amazon EC2 Auto Scaling einen Instance-Typ mit einer Gewichtung von 6 basierend auf der Zuordnungsstrategie zum Start. Das Ergebnis dieses Scale-Out-Ereignisses ist eine Gruppe mit einer gewünschten Kapazität von 12 und einer aktuellen Kapazität von 16.

Mehrere dynamische Skalierungsrichtlinien

In den meisten Fällen reicht eine Skalierungsrichtlinie für die Zielnachverfolgung aus, um Ihre Auto-Scaling-Gruppe für eine automatische Auf- und Abwärtsskalierung zu konfigurieren. Eine Skalierungsrichtlinie für die Ziel-Nachverfolgung ermöglicht es Ihnen, ein gewünschtes Ergebnis auszuwählen und die Auto-Scaling-Gruppe nach Bedarf Instances hinzufügen und entfernen zu lassen, um dieses Ergebnis zu erreichen.

Für eine erweiterte Skalierungskonfiguration kann Ihre Auto-Scaling-Gruppe mehr als eine Skalierungsrichtlinie haben. So können Sie beispielsweise eine oder mehrere Skalierungsrichtlinien zur Ziel-Nachverfolgung, eine oder mehrere Richtlinien für schrittweise Skalierung oder beides definieren. Dies bietet eine größere Flexibilität, um mehrere Szenarien abzudecken.

Um zu sehen, wie mehrere dynamische Skalierungsrichtlinien zusammenarbeiten, betrachten Sie eine Anwendung, die eine Auto-Scaling-Gruppe und eine Amazon SQS-Warteschlange verwendet, um Anfragen an eine einzelne EC2-Instance zu senden. Zwei Richtlinien steuern, wann die Auto-Scaling-Gruppe eine horizontale Skalierung nach oben durchführt, um die optimale Leistung der Anwendung sicherzustellen. Eine davon ist eine Zielverfolgungsrichtlinie, die eine benutzerdefinierte Metrik verwendet, um Kapazität basierend auf der Anzahl der SQS-Nachrichten in der Warteschlange hinzuzufügen und zu entfernen. Die andere ist eine schrittweise Skalierungsrichtlinie, die die CloudWatch CPUUtilization Amazon-Metrik verwendet, um Kapazität hinzuzufügen, wenn die Instance für einen bestimmten Zeitraum eine Auslastung von 90 Prozent überschreitet.

Wenn mehrere Richtlinien gleichzeitig in Kraft sind, besteht die Möglichkeit, dass jede Richtlinie die Auto-Scaling-Gruppe anweisen könnte, sich gleichzeitig zu vergrößern (oder zu verkleinern). Es ist beispielsweise möglich, dass die CPUUtilization Metrik den Schwellenwert des CloudWatch Alarms erreicht und diesen überschreitet, während die benutzerdefinierte SQS-Metrik den Schwellenwert des benutzerdefinierten Metrik-Alarms ansteigt und überschreitet.

In einer solchen Situation wählt Amazon EC2 Auto Scaling die Richtlinie, welche die größte Kapazität für das Aufwärtskalieren und Abwärtskalieren bietet. Angenommen, die Richtlinie für CPUUtilization startet eine einzelne Instance, während die Richtlinie für die SQS-Warteschlange zwei Instances startet. Sind die Kriterien zur Skalierung nach oben für beide Richtlinien gleichzeitig erfüllt, gibt Amazon EC2 Auto Scaling der SQS-Warteschlange den Vorrang. Daher startet die Auto-Scaling-Gruppe zwei Instances.

Der Ansatz, der Richtlinie mit der größten Kapazität Vorrang einzuräumen, gilt auch dann, wenn die Richtlinien unterschiedliche Kriterien für das Herunterskalieren verwenden. Beispiel: Wenn eine Richtlinie beispielsweise drei Instances beendet, eine andere Richtlinie die Anzahl der Instances um 25 Prozent verringert und die Gruppe zum Zeitpunkt der Abwärtsskalierung über acht Instances verfügt, räumt Amazon EC2 Auto Scaling der Richtlinie Vorrang ein, welche die größte Anzahl von Instances für die Gruppe bereitstellt. Dies führt dazu, dass die Auto-Scaling-Gruppe zwei Instances beendet (25 Prozent von 8 = 2). Damit soll verhindert werden, dass Amazon EC2 Auto Scaling zu viele Instances entfernt.

Sie sollten bei der Verwendung von Zielverfolgungs-Skalierungsrichtlinien mit Schrittskalierungsrichtlinien jedoch vorsichtig sein, da Konflikte zwischen diesen Richtlinien zu unerwünschtem Verhalten führen können. Wenn die Richtlinie zur schrittweisen Skalierung beispielsweise eine Skalierung der Aktivität initiiert, bevor die Zielverfolgungsrichtlinie für die Skalierung bereit ist, wird die Skalierung der Aktivität nicht blockiert. Nach Abschluss der Skalierung der Aktivität könnte die Zielverfolgungsrichtlinie die Gruppe anweisen, erneut zu skalieren.