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 für die Ziel-Nachverfolgung für Amazon EC2 Auto Scaling
Eine Ziel-Tracking-Skalierungsrichtlinie skaliert automatisch die Kapazität Ihrer Auto 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 hohe Auslastung Ihrer EC2-Instances aufrechterhalten und so eine bessere Kosteneffizienz ohne manuelles Eingreifen erzielen.
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 aufrechterhä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-Gruppe oder erhöht die Kapazität, wenn die CPU 50 Prozent überschreitet, um die erhöhte Auslastung zu bewältigen. Sie skaliert oder verringert die Kapazität, wenn die CPU-Auslastung unter 50 Prozent fällt, um die Kosten in Zeiten niedriger 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 Auslastung Ihrer Auto Scaling-Gruppe. Dies kann Amazon EC2 Auto Scaling helfen, fundiertere Entscheidungen zu treffen, wenn es darum geht, wie viel Kapazität Ihrer Gruppe hinzugefügt werden soll.
Die Absicht von Amazon EC2 Auto Scaling besteht darin, der Verfügbarkeit stets Priorität einzuräumen. Die Auto Scaling-Gruppe wird skaliert, wenn eine der Ziel-Tracking-Richtlinien für eine Skalierung bereit ist. Die Skalierung erfolgt nur, wenn alle Ziel-Tracking-Richtlinien (bei aktivierter Teilskalierung) für die Skalierung bereit sind.
Auswahl von Metriken
Sie können Skalierungsrichtlinien zur Zielverfolgung mit vordefinierten oder benutzerdefinierten Metriken erstellen. Vordefinierte Metriken erleichtern Ihnen den Zugriff auf die am häufigsten für die Skalierung verwendeten Metriken. Benutzerdefinierte Metriken ermöglichen es Ihnen, andere verfügbare CloudWatch Metriken zu skalieren, einschließlich hochauflösender Metriken, die in kleineren Intervallen in der Größenordnung von wenigen Sekunden veröffentlicht werden. Sie können Ihre eigenen hochauflösenden Metriken oder Metriken veröffentlichen, die von anderen AWS Diensten veröffentlicht werden.
Weitere Informationen zum Erstellen von Richtlinien zur Zielverfolgung mithilfe hochauflösender Metriken finden Sie unterErstellen Sie eine Richtlinie zur Zielverfolgung mithilfe hochauflösender Metriken, um schneller reagieren zu können.
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 zu den Metriken für die CPU-Auslastung, das Netzwerk I/O und die Anzahl der Application Load Balancer-Anfragen pro Ziel finden Sie im Amazon EC2-Benutzerhandbuch unter dem Thema Liste der verfügbaren CloudWatch Metriken für Ihre Instances im Amazon EC2-Benutzerhandbuch bzw. im Thema CloudWatch Metriken für Ihren Application Load Balancer im Benutzerhandbuch für Application Load Balancer.
Sie können andere verfügbare CloudWatch Metriken oder Ihre eigenen Metriken auswählen, CloudWatch indem Sie eine benutzerdefinierte Metrik angeben. Ein Beispiel, in dem eine benutzerdefinierte Metrikspezifikation für eine Skalierungsrichtlinie zur Zielverfolgung mithilfe von angegeben wird 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 Intervallen von einer Minute oder weniger verfügbar sind, damit Sie schneller auf Nutzungsänderungen reagieren können. Metriken, die in niedrigeren Intervallen veröffentlicht werden, ermöglichen es der Target-Tracking-Richtlinie, Änderungen in der Auslastung Ihrer Auto Scaling-Gruppe schneller zu erkennen und darauf zu reagieren.
-
Wenn Sie vordefinierte Metriken auswählen, die von Amazon EC2 veröffentlicht werden, wie z. B. die CPU-Auslastung, empfehlen wir Ihnen, die detaillierte Überwachung zu aktivieren. Standardmäßig werden alle Amazon EC2-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-Gruppe (d. h. die Amazon EC2-Metrik
CPUUtilizationmit der MetrikdimensionAutoScalingGroupName), wenn die Last auf der Auto-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-Warteschlangenmetrik
ApproximateNumberOfMessagesVisible. 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, welche die Anzahl der Nachrichten in der Warteschlange pro EC2-Instance in der Auto-Scaling-Gruppe misst, kann jedoch auch funktionieren. Weitere Informationen finden Sie unter Die Skalierungsrichtlinie basiert auf Amazon SQS.
-
-
Um die Metrik
ALBRequestCountPerTargetzu verwenden, müssen Sie den ParameterResourceLabelangeben, um die Load Balancer-Zielgruppe zu identifizieren, die der Metrik zugeordnet ist. Ein Beispiel, das denResourceLabelParameter für eine Skalierungsrichtlinie zur Zielverfolgung mithilfe von angibt AWS CLI, finden Sie unterBeispiel für Skalierungsrichtlinien für AWS CLI. -
Wenn eine Metrik echte Werte von 0 CloudWatch (z. B.
ALBRequestCountPerTarget) ausgibt, kann eine Auto Scaling-Gruppe auf 0 skalieren, wenn Ihre Anwendung über einen längeren Zeitraum keinen Traffic erhält. 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 mathematischer Kennzahlen eine Ziel-Tracking-Skalierungsrichtlinie.
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, ein Netzwerk I/O oder andere Zählmetriken, stellt der Zielwert den optimalen Durchschnittsdurchsatz 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ärmphase abgelaufen ist, wird eine Instance nicht in den aggregierten Metriken der EC2-Instance der Auto-Scaling-Gruppe berücksichtigt.
Während sich Instances in der Aufwärmphase befinden, skalieren Ihre Skalierungsrichtlinien nur dann, wenn der Metrikwert von Instances, die sich nicht aufwärmen, höher 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 die Scale-Out-Aktivität läuft, werden alle Skalierungsaktivitäten, die durch Skalierungsrichtlinien initiiert wurden, blockiert, bis die Instances vollständig warmgefahren sind. Wenn die Instances mit dem Warmlaufen fertig sind und eine Skalierung stattfindet, 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, d. h. den Wert für das für die Gruppe definierte Standard-Instance-Warmup. Wenn der Standard-Instanz-Warmup Null ist, fällt er auf den Wert der Standard-Abklingzeit zurück. Wir empfehlen, das Standard-Warmup der Instance zu verwenden, um es einfacher zu machen, alle Skalierungsrichtlinien zu aktualisieren, 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 Ziel-Tracking-Skalierungsrichtlinie verwendet werden. Amazon EC2 Auto Scaling erstellt und verwaltet die CloudWatch Alarme, die Ihren Ziel-Tracking-Skalierungsrichtlinien zugeordnet sind, und kann sie bei Bedarf bearbeiten, ersetzen oder löschen, um das Skalierungserlebnis an 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 Ziel-Tracking-Richtlinie vorübergehend deaktivieren. Dies hilft dabei, eine Mindestanzahl von Instanzen für erfolgreiche Bereitstellungen aufrechtzuerhalten.
-
Wenn der Metrik Datenpunkte fehlen, ändert sich der CloudWatch Alarmstatus auf.
INSUFFICIENT_DATAAmazon EC2 Auto Scaling kann Ihre Gruppe dann erst wieder 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), wobeim1die 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.
Angenommen, Sie legen einen Zielwert von 50 Prozent für die CPU-Auslastung fest und Ihre Auto Scaling-Gruppe überschreitet dann den 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. Wenn wir ebenfalls feststellen, dass das Entfernen von 0,5 Instances Ihre CPU-Auslastung auf über 50 Prozent erhöht, entscheiden wir uns, keine Skalierung vorzunehmen, bis die Metrik so weit abgesenkt ist, dass wir davon ausgehen, dass eine Skalierung keine Oszillation verursacht.
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.