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. Sie passt sich automatisch an die individuellen Nutzungsmuster Ihrer individuellen Anwendungen an. Auf diese Weise kann Ihre Anwendung die optimale Leistung und die hohe Auslastung Ihrer EC2 Instanzen aufrechterhalten und so die Kosteneffizienz verbessern, ohne dass manuelle Eingriffe erforderlich sind.

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.

Ein Beispiel: Angenommen, Sie verfügen über eine Webanwendung, die derzeit in zwei Instances ausgeführt wird, und Sie möchten, dass die CPU-Auslastung der Auto-Scaling-Gruppe bei etwa 50 Prozent bleibt, wenn sich die Last der Anwendung ändert. Auf diese Weise erlangen Sie zusätzliche Kapazität für Datenverkehrsspitzen, ohne übermäßig viele Ressourcen im Leerlauf zu verwalten.

Hierzu können Sie eine Skalierungsrichtlinie für die Zielverfolgung erstellen, die eine durchschnittliche CPU-Auslastung von 50 Prozent vorsieht. Dann skaliert Ihre Auto Scaling Scaling-Gruppe die Kapazität oder erhöht die Kapazität, wenn die CPU 50 Prozent überschreitet, um die erhöhte Last zu bewältigen. Die Kapazität wird erhöht oder verringert, wenn die CPU unter 50 Prozent fällt, 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. Vordefinierte Metriken bieten Ihnen einfacheren Zugriff auf die am häufigsten verwendeten Metriken für die Skalierung. Mit benutzerdefinierten Metriken können Sie auf andere verfügbare CloudWatch Metriken skalieren, einschließlich hochauflösender Metriken, die in kürzeren Intervallen in der Größenordnung von wenigen Sekunden veröffentlicht werden. Sie können Ihre eigenen hochauflösenden Metriken oder Metriken, die von anderen AWS Diensten veröffentlicht werden, veröffentlichen.

Weitere Informationen zum Erstellen von Richtlinien zur Zielverfolgung mithilfe hochauflösender Metriken finden Sie unterErstellen Sie eine Richtlinie zur Zielverfolgung mit hochauflösenden Metriken für eine schnellere Reaktion.

Target Tracking unterstützt die folgenden vordefinierten Metriken:

  • ASGAverageCPUUtilization – Durchschnittliche CPU-Nutzung der Auto-Scaling-Gruppe.

  • ASGAverageNetworkIn – Durchschnittliche Anzahl der von der Auto-Scaling-Gruppe auf allen Netzwerkschnittstellen empfangenen Bytes.

  • ASGAverageNetworkOut – Durchschnittliche Anzahl der von der Auto-Scaling-Gruppe auf allen Netzwerkschnittstellen gesendeten Bytes.

  • ALBRequestCountPerTarget – Durchschnittliche Anzahl der Application Load Balancer-Anforderungen pro Ziel für Ihre Auto-Scaling-Gruppe.

Wichtig

Weitere wertvolle Informationen über die Metriken für CPU-Auslastung, Netzwerk-I/O und die Anzahl der Application Load Balancer Balancer-Anforderungen pro Ziel finden Sie im EC2 Amazon-Benutzerhandbuch im Thema Verfügbare CloudWatch Metriken für Ihre Instances auflisten bzw. die CloudWatch Metriken für Ihr Application Load 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. 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 Messwerte zu verwenden, die in Intervallen von einer Minute oder weniger verfügbar sind, damit Sie schneller auf Nutzungsänderungen reagieren können. Metriken, die in kürzeren Intervallen veröffentlicht werden, ermöglichen es der Zielverfolgungsrichtlinie, Änderungen in der Auslastung Ihrer Auto Scaling Scaling-Gruppe schneller zu erkennen und darauf zu reagieren.

  • Wenn Sie vordefinierte Metriken wählen, die von Amazon veröffentlicht werden EC2, wie z. B. die CPU-Auslastung, empfehlen wir Ihnen, eine detaillierte Überwachung zu aktivieren. Standardmäßig werden alle EC2 Amazon-Metriken in Intervallen von fünf Minuten veröffentlicht, sie können jedoch auf ein niedrigeres Intervall von einer Minute konfiguriert werden, indem eine detaillierte Überwachung aktiviert wird. Informationen zur Aktivierung 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-Auslastung einer Auto Scaling Scaling-Gruppe (d. h. die 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 Amazon SQS SQS-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 kann sie bei Bedarf bearbeiten, ersetzen oder löschen, um das Skalierungserlebnis für Ihre Anwendungen und deren sich ändernde Nutzungsmuster anzupassen.

  • Eine Skalierungsrichtlinie für die Zielverfolgung priorisiert die Verfügbarkeit bei Datenverkehrsschwankungen durch langsameres Abskalieren bei nachlassendem Datenverkehr. Wenn Sie mehr Kontrolle wünschen, ist eine Richtlinie zur schrittweisen Skalierung möglicherweise die bessere Option. Sie können den Scale-In-Teil einer Richtlinie zur Zielverfolgung vorübergehend deaktivieren. Dies trägt dazu bei, eine Mindestanzahl von Instanzen für erfolgreiche Bereitstellungen aufrechtzuerhalten.

  • 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. Zum Beispiel: Sie setzen einen Zielwert von 50 Prozent für die CPU-Auslastung fest, und Ihre Auto-Scaling-Gruppe überschreitet dann diesen Zielwert. Wir könnten bestimmen, dass durch das Hinzufügen von 1,5 Instances die CPU-Auslastung auf beinahe 50 Prozent sinkt. Da es nicht möglich ist, 1,5 Instances hinzuzufügen, runden wir diesen Wert auf und fügen zwei Instances hinzu. Dadurch wird die CPU-Auslastung möglicherweise auf einen Wert unter 50 Prozent verringert, es wird jedoch sichergestellt, dass Ihre Anwendung über genügend Ressourcen verfügt, um dies zu unterstützen. Entsprechend entfernen wir nur eine Instance, wenn wir feststellen, dass das Entfernen von 1,5 Instances die 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.