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 Arten 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 der 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 ergriffen werden soll, wenn der zugehörige CloudWatch Alarm ausgelöst wird. ALARM 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. (Nehmen wir zum Beispiel an, Sie haben eine Auto Scaling Scaling-Gruppe mit zwei Instances, wobei eine Instance bei 60 Prozent CPU und die andere bei 40 Prozent liegtCPU. Im Durchschnitt liegen sie bei 50 ProzentCPU.) Wenn die Richtlinie in Kraft ist, passt Amazon EC2 Auto Scaling die gewünschte Kapazität der Gruppe nach oben oder unten an, wenn der Schwellenwert eines Alarms überschritten wird.

Wenn eine dynamische Skalierungsrichtlinie aufgerufen wird und die Kapazitätsberechnung eine Zahl außerhalb des Mindest- und Maximalgrößenbereichs der Gruppe ergibt, stellt Amazon EC2 Auto Scaling sicher, dass die neue Kapazität niemals die Mindest- und Höchstgrößenbeschränkungen überschreitet. 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 Richtlinie 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. Beim Aufrufen dieser Richtlinie 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 die Nachfrage sinkt und die Kapazität sinkt, kann Amazon EC2 Auto Scaling wieder skalieren.

Die Ausnahme ist, wenn Sie Instance-Gewichtungen verwenden. In diesem Fall kann Amazon EC2 Auto Scaling die maximale Größenbeschränkung überschreiten, jedoch nur bis zu Ihrem maximalen 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. Beim Aufrufen der Richtlinie entscheidet sich Amazon EC2 Auto Scaling dafür, je nach Zuweisungsstrategie einen Instance-Typ mit einer Gewichtung von 6 zu starten. 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 veranschaulichen, wie mehrere dynamische Skalierungsrichtlinien zusammenarbeiten, stellen Sie sich eine Anwendung vor, die eine Auto Scaling Scaling-Gruppe und eine SQS Amazon-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 Richtlinie zur Zielverfolgung, die eine benutzerdefinierte Metrik verwendet, um Kapazität auf der Grundlage 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 SQS benutzerdefinierte Metrik den Schwellenwert des benutzerdefinierten Metrik-Alarms ansteigt und überschreitet.

Wenn diese Situationen auftreten, wählt Amazon EC2 Auto Scaling die Richtlinie, die die größte Kapazität sowohl für Scale-Out als auch für Scale-In bietet. Nehmen wir zum Beispiel an, dass die Richtlinie für den CPUUtilization Start einer Instance, während die Richtlinie für die SQS Warteschlange zwei Instances startet. Wenn die Scale-Out-Kriterien für beide Richtlinien gleichzeitig erfüllt sind, räumt Amazon EC2 Auto Scaling der SQS Warteschlangenrichtlinie Vorrang ein. 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. Wenn beispielsweise eine Richtlinie drei Instances beendet, eine andere Richtlinie die Anzahl der Instances um 25 Prozent verringert und die Gruppe zum Zeitpunkt der Skalierung über acht Instances verfügt, gibt Amazon EC2 Auto Scaling der Richtlinie Vorrang, die 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). Dadurch 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 Ziel-Tracking-Richtlinie zur 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.