Skalierungsrichtlinien zur Zielverfolgung 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.

Skalierungsrichtlinien zur Zielverfolgung für Amazon EC2 Auto Scaling

Eine Skalierungsrichtlinie für die Zielverfolgung skaliert automatisch die Kapazität Ihrer Auto Scaling Scaling-Gruppe auf der Grundlage eines Zielmetrikwerts. Auf diese Weise kann Ihre Anwendung ohne manuelles Eingreifen eine optimale Leistung und Kosteneffizienz aufrechterhalten.

Bei der Ziel-Nachverfolgung wählen Sie eine Metrik und einen Zielwert aus, der die ideale durchschnittliche Auslastung oder den idealen Durchsatz für Ihre Anwendung darstellt. Amazon EC2 Auto Scaling erstellt und verwaltet die CloudWatch Alarme, die Skalierungsereignisse auslösen, wenn die Metrik vom Ziel abweicht. Dies ähnelt beispielsweise der Art und Weise, wie ein Thermostat eine Zieltemperatur beibehält.

Nehmen wir beispielsweise an, Sie haben derzeit eine Anwendung, die auf zwei Instances ausgeführt wird, und Sie möchten, dass die CPU Auslastung der Auto Scaling Scaling-Gruppe bei etwa 50 Prozent bleibt, wenn sich die Auslastung der Anwendung ändert. Auf diese Weise erlangen Sie zusätzliche Kapazität für Datenverkehrsspitzen, ohne übermäßig viele Ressourcen im Leerlauf zu verwalten.

Sie können diesem Bedarf gerecht werden, indem Sie eine Skalierungsrichtlinie für die Zielverfolgung erstellen, die auf eine durchschnittliche CPU Auslastung von 50 Prozent abzielt. Dann skaliert Ihre Auto Scaling Scaling-Gruppe die Kapazität oder erhöht sie, wenn sie 50 Prozent CPU überschreitet, um die erhöhte Last zu bewältigen. Wenn die Kapazität unter 50 Prozent CPU fällt, wird sie skaliert oder verringert, um die Kosten in Zeiten geringer Auslastung zu optimieren.

Mehrere Skalierungsrichtlinien für die Zielverfolgung

Zur Optimierung der Skalierung können mehrere Skalierungsrichtlinien für die Zielverfolgung miteinander kombiniert werden. Diese müssen allerdings jeweils eine andere Metrik verwenden. Auslastung und Durchsatz können sich beispielsweise gegenseitig beeinflussen. Wenn sich eine dieser Metriken ändert, bedeutet das in der Regel, dass auch andere Metriken betroffen sind. Die Verwendung mehrerer Metriken liefert daher zusätzliche Informationen über die Last, unter der Ihre Auto Scaling Scaling-Gruppe steht. Dies kann Amazon EC2 Auto Scaling dabei helfen, fundiertere Entscheidungen zu treffen, wenn es darum geht, wie viel Kapazität zu Ihrer Gruppe hinzugefügt werden soll.

Die Absicht von Amazon EC2 Auto Scaling ist es, der Verfügbarkeit immer Priorität einzuräumen. Es wird die Auto Scaling-Gruppe skalieren, wenn eine der Zielverfolgungsrichtlinien für die Skalierung bereit ist. Die Skalierung erfolgt nur, wenn alle Richtlinien zur Zielverfolgung (wobei die Skalierung in Teilen aktiviert ist) für die Skalierung bereit sind.

Auswahl von Metriken

Sie können Skalierungsrichtlinien zur Zielverfolgung mit vordefinierten oder benutzerdefinierten Metriken erstellen.

Wenn Sie eine Skalierungsrichtlinie zur Zielverfolgung mit einem vordefinierten Metriktyp erstellen, wählen Sie eine Metrik aus der folgenden Liste vordefinierter Metriken aus.

  • ASGAverageCPUUtilization— Durchschnittliche CPU Auslastung der Auto Scaling Scaling-Gruppe.

  • ASGAverageNetworkIn – Die durchschnittliche Anzahl empfangener Bytes von einer einzigen Instance für alle Netzwerkschnittstellen.

  • ASGAverageNetworkOut – Die durchschnittliche Anzahl gesendeter Bytes von einer einzigen Instance für alle Netzwerkschnittstellen.

  • ALBRequestCountPerTarget – Die durchschnittliche Anzahl von Application Load Balancer-Anforderungen pro Ziel.

Wichtig

Weitere wertvolle Informationen zu den Metriken für CPU Auslastung, Netzwerk-I/O und Anzahl der Application Load Balancer Balancer-Anfragen pro Ziel finden Sie im Thema Verfügbare CloudWatch Metriken für Ihre Instances auflisten im EC2Amazon-Benutzerhandbuch bzw. die CloudWatch Metriken für Ihr Application Load Balancer Balancer-Thema im Benutzerhandbuch für Application Load Balancers.

Sie können andere verfügbare CloudWatch Metriken oder Ihre eigenen Metriken auswählen, CloudWatch indem Sie eine benutzerdefinierte Metrik angeben. Sie müssen das AWS CLI oder an verwendenSDK, um eine Zielverfolgungsrichtlinie mit einer benutzerdefinierten Metrikspezifikation zu erstellen. Ein Beispiel, das eine benutzerdefinierte Metrikspezifikation für eine Skalierungsrichtlinie zur Zielverfolgung mithilfe von spezifiziert AWS CLI, finden Sie unterBeispiel für Skalierungsrichtlinien für AWS CLI.

Berücksichtigen Sie die folgenden Aspekte, wenn Sie eine Metrik auswählen:

  • Wir empfehlen, nur Metriken zu verwenden, die in einminütigen Intervallen verfügbar sind, damit Sie schneller auf Änderungen der Auslastung reagieren können. Die Zielverfolgung wertet Metriken für alle vordefinierten und benutzerdefinierten Metriken aus, die mit einer Granularität von einer Minute aggregiert sind, aber die zugrunde liegende Metrik veröffentlicht die Daten möglicherweise weniger häufig. Beispielsweise werden alle EC2 Amazon-Metriken standardmäßig in Intervallen von fünf Minuten gesendet, sie können jedoch auf eine Minute konfiguriert werden (bekannt als detaillierte Überwachung). Diese Entscheidung liegt bei den einzelnen Services. Die meisten versuchen, das kleinstmögliche Intervall zu verwenden. Weitere Informationen zum Aktivieren der detaillierten Überwachung finden Sie unter Überwachung für Auto-Scaling-Instances konfigurieren.

  • Nicht alle benutzerdefinierten Metriken funktionieren für die Zielverfolgung. Die Metrik muss eine gültige Auslastungsmetrik sein und beschreiben, wie ausgelastet eine Instance ist. Der Wert der Metrik muss sich proportional zur Anzahl der Instances in der Auto-Scaling-Gruppe erhöhen oder verringern. Das muss so sein, damit die Metrikdaten verwendet werden können, um die Anzahl der Instances proportional zu skalieren. Beispielsweise funktioniert die CPU Nutzung einer Auto Scaling Scaling-Gruppe (d. h. der EC2 Amazon-Metrik CPUUtilization mit der metrischen DimensionAutoScalingGroupName), wenn die Last der Auto Scaling Scaling-Gruppe auf die Instances verteilt ist.

  • Die folgenden Metriken funktionieren nicht für die Ziel-Nachverfolgung:

    • Die Anzahl der Anfragen, die vom Load Balancer empfangen werden, der der Auto-Scaling-Gruppe gegenüber liegt (d. h. die Elastic Load Balancing-Metrik RequestCount). Die Anzahl der Anfragen, die vom Load Balancer empfangen werden, ändert sich nicht basierend auf der Auslastung der Auto-Scaling-Gruppe.

    • Load Balancer-Anfragelatenz (d. h. die Elastic Load Balancing-Metrik Latency). Die Anfragelatenz kann aufgrund der zunehmenden Nutzung zunehmen, ändert sich aber nicht notwendigerweise proportional.

    • Die CloudWatch SQS Amazon-WarteschlangenmetrikApproximateNumberOfMessagesVisible. Die Anzahl der Nachrichten in einer Warteschlange ändert sich möglicherweise nicht proportional zur Größe der Auto-Scaling-Gruppe, die Nachrichten aus der Warteschlange verarbeitet. Eine benutzerdefinierte Metrik, die die Anzahl der Nachrichten in der Warteschlange pro EC2 Instanz in der Auto Scaling Scaling-Gruppe misst, kann jedoch funktionieren. Weitere Informationen finden Sie unter Skalierungsrichtlinie auf Basis von Amazon SQS.

  • Um die Metrik ALBRequestCountPerTarget zu verwenden, müssen Sie den Parameter ResourceLabel angeben, um die Load Balancer-Zielgruppe zu identifizieren, die der Metrik zugeordnet ist. Ein Beispiel, das den ResourceLabel Parameter für eine Skalierungsrichtlinie für die Zielverfolgung mithilfe von spezifiziert AWS CLI, finden Sie unterBeispiel für Skalierungsrichtlinien für AWS CLI.

  • Wenn eine Metrik echte Werte von 0 ausgibt CloudWatch (z. B.ALBRequestCountPerTarget), kann eine Auto Scaling Scaling-Gruppe auf 0 skalieren, wenn über einen längeren Zeitraum kein Datenverkehr zu Ihrer Anwendung erfolgt. Damit Ihre Auto-Scaling-Gruppe auf 0 abskaliert werden kann, wenn keine Anfragen an sie weitergeleitet werden, muss die Mindestkapazität der Gruppe auf 0 festgelegt sein.

  • Anstatt neue Metriken zur Verwendung in Ihrer Skalierungsrichtlinie zu veröffentlichen, können Sie mit metrischer Mathematik bestehende Metriken kombinieren. Weitere Informationen finden Sie unter Erstellen Sie mithilfe metrischer Mathematik eine Skalierungsrichtlinie für die Zielverfolgung.

Definieren des Zielwerts

Wenn Sie eine Skalierungsrichtlinie für die Zielverfolgung erstellen, müssen Sie einen Zielwert angeben. Der Zielwert stellt die optimale durchschnittliche Auslastung oder den idealen durchschnittlichen Durchsatz für die Auto-Scaling-Gruppe dar. Für eine kosteneffiziente Ressourcennutzung sollte der Zielwert auf einen möglichst hohen Wert mit einem angemessenen Puffer für unerwartete Datenverkehrserhöhungen festgelegt werden. Wenn Ihre Anwendung optimal für einen normalen Datenverkehrsfluss aufskaliert wird, sollte der tatsächliche Metrikwert dem Zielwert entsprechen oder knapp darunter liegen.

Wenn eine Skalierungsrichtlinie auf dem Durchsatz basiert, z. B. der Anzahl der Anfragen pro Ziel für einen Application Load Balancer, dem Netzwerk-E/A oder anderen Zählmetriken, stellt der Zielwert den optimalen durchschnittlichen Durchsatz einer einzelnen Instance für einen Zeitraum von einer Minute dar.

Definieren Sie die Aufwärmzeit der Instanz

Sie können 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 im Warmup befinden, größer ist als die Zielauslastung der Richtlinie.

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. Der Zweck ist eine kontinuierliche (jedoch nicht exzessive) Erweiterung.

Während der Scale-Out-Aktivität werden alle Skalierungsaktivitäten, die durch Skalierungsrichtlinien initiiert wurden, blockiert, bis die Instances vollständig warmlaufen. Wenn die Instances mit dem Warmlaufen fertig sind und eine Skalierung 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.

Standardwert

Wenn kein Wert festgelegt ist, verwendet die Skalierungsrichtlinie den Standardwert, bei dem es sich um den Wert für das für die Gruppe definierte Standardinstanz-Warmup handelt. Wenn das Standard-Aufwärmen der Instanz Null ist, wird auf den Wert der Standard-Abklingzeit zurückgegriffen. Wir empfehlen, den Standard-Instance-Warmup zu verwenden, um die Aktualisierung aller Skalierungsrichtlinien zu vereinfachen, wenn sich die Aufwärmzeit ändert.

Überlegungen

Bei der Arbeit mit Skalierungsrichtlinien für die Zielverfolgung ist Folgendes zu beachten:

  • Erstellen, bearbeiten oder löschen Sie keine CloudWatch Alarme, die mit einer Skalierungsrichtlinie für die Zielverfolgung verwendet werden. Amazon EC2 Auto Scaling erstellt und verwaltet die CloudWatch Alarme, die mit Ihren Skalierungsrichtlinien für die Zielverfolgung verknüpft sind, und löscht sie, wenn sie nicht mehr benötigt werden.

  • Eine Skalierungsrichtlinie für die Zielverfolgung priorisiert die Verfügbarkeit bei Datenverkehrsschwankungen durch langsameres Abskalieren bei nachlassendem Datenverkehr. Wenn die Auto-Scaling-Gruppe sofort nach Abschluss einer Workload abskaliert werden soll, können Sie die Abskalierungskomponente der Richtlinie deaktivieren. Dadurch können Sie flexibel die Abskalierungsmethode nutzen, die Ihren Anforderungen bei geringer Auslastung am besten entspricht. Für eine möglichst schnelle Abskalierung empfiehlt es sich, keine einfache Skalierungsrichtlinie zu verwenden, um eine anschließende Ruhephase zu vermeiden.

  • Wenn der Metrik Datenpunkte fehlen, führt dies dazu, dass der CloudWatch Alarmstatus auf INSUFFICIENT_DATA geändert wird. In diesem Fall kann Amazon EC2 Auto Scaling Ihre Gruppe erst skalieren, wenn neue Datenpunkte gefunden wurden.

  • Wenn die Metrik konstruktionsbedingt nur spärlich gemeldet wird, kann metrische Mathematik hilfreich sein. Um beispielsweise die neuesten Werte zu verwenden, verwenden Sie die Funktion FILL(m1,REPEAT), wobei m1 die Metrik ist.

  • Möglicherweise werden Lücken zwischen den Datenpunkten für den Zielwert und die aktuelle Metrik angezeigt. Der Grund hierfür ist, dass wir konservativ agieren, indem beim Ermitteln der hinzuzufügenden oder zu entfernenden Instances Auf- oder Abrundungen vorgenommen werden. Dies hindert uns daran, eine unzureichende Anzahl von Instances hinzufügen oder zu viele Instances zu entfernen. Bei kleineren Auto-Scaling-Gruppen mit weniger Instances scheint die Auslastung der Gruppe jedoch weit vom Zielwert entfernt zu sein. Nehmen wir zum Beispiel an, Sie legen einen Zielwert von 50 Prozent für die CPU Auslastung fest und Ihre Auto Scaling Scaling-Gruppe überschreitet dann das Ziel. Wir könnten feststellen, dass durch das Hinzufügen von 1,5 Instances die CPU Auslastung auf fast 50 Prozent reduziert wird. Da es nicht möglich ist, 1,5 Instances hinzuzufügen, runden wir diesen Wert auf und fügen zwei Instances hinzu. Dadurch könnte die CPU Auslastung auf einen Wert unter 50 Prozent sinken, aber es wird sichergestellt, dass Ihre Anwendung über genügend Ressourcen verfügt, um sie zu unterstützen. Ebenso entfernen wir nur eine Instanz, wenn wir feststellen, dass das Entfernen von 1,5 Instances Ihre CPU Auslastung auf über 50 Prozent erhöht.

    Bei größeren Auto-Scaling-Gruppen mit mehr Instances wird die Auslastung auf eine größere Anzahl von Instances verteilt, wobei durch das Hinzufügen oder Entfernen von Instances eine kleinere Lücke zwischen dem Zielwert und den tatsächlichen metrischen Datenpunkten entsteht.

  • Eine Skalierungsrichtlinie für die Ziel-Nachverfolgung geht davon aus, dass Ihre Auto-Scaling-Gruppe aufskaliert werden soll, wenn die angegebene Metrik über dem Zielwert liegt. Sie können keine Skalierungsrichtlinie für die Ziel-Nachverfolgung verwenden, um Ihre Auto-Scaling-Gruppe zu aufzuskalieren, wenn die angegebene Metrik unter dem Zielwert liegt.