So funktioniert die Zielverfolgungsskalierung für Application Auto Scaling - Application 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.

So funktioniert die Zielverfolgungsskalierung für Application Auto Scaling

In diesem Thema wird beschrieben, wie die Skalierung der Zielverfolgung funktioniert, und es werden die wichtigsten Elemente einer Skalierungsrichtlinie für die Zielverfolgung vorgestellt.

Funktionsweise

Um die Skalierung der Zielverfolgung zu verwenden, erstellen Sie eine Skalierungsrichtlinie für die Zielverfolgung und geben Folgendes an:

  • CloudWatch Metrik — Eine zu verfolgende Metrik, z. B. die durchschnittliche CPU-Auslastung oder die durchschnittliche Anzahl von Anfragen pro Ziel.

  • Zielwert – der Zielwert für die Metrik, z. B. 50 Prozent CPU-Auslastung oder 1 000 Anfragen pro Ziel pro Minute.

Application Auto Scaling erstellt und verwaltet die CloudWatch Alarme, die die Skalierungsrichtlinie aufrufen, und berechnet die Skalierungsanpassung auf der Grundlage der Metrik und des Zielwerts. Es wird so viel Kapazität wie erforderlich hinzugefügt oder entfernt, damit die Metrik auf oder nahe an dem Zielwert gehalten wird.

Wenn die Metrik über dem Zielwert liegt, skaliert Application Auto Scaling auf, indem Kapazität hinzugefügt wird, um die Differenz zwischen dem Metrikwert und dem Zielwert zu verringern. Wenn die Metrik unter dem Zielwert liegt, skaliert Application Auto Scaling ab, indem Kapazität entfernt wird.

Zwischen den Skalierungsaktivitäten liegen Ruhephasen, um schnelle Kapazitätsschwankungen zu vermeiden. Sie können die Ruhephasen für Ihre Richtlinie optional konfigurieren.

Das folgende Diagramm zeigt einen Überblick über die Funktionsweise einer Zielverfolgungsrichtlinie, wenn die Einrichtung abgeschlossen ist.

Übersichtsdiagramm einer Skalierungsrichtlinie zur Zielverfolgung

Hinweis: Eine Skalierungsrichtlinie für die Ziel-Nachverfolgung ist aggressiver beim Hinzufügen von Kapazität bei steigender Auslastung als beim Entfernen von Kapazität bei sinkender Auslastung. Wenn zum Beispiel die in der Richtlinie angegebene Metrik ihren Zielwert erreicht, geht die Richtlinie davon aus, dass Ihre Anwendung bereits stark belastet ist. Daher reagiert sie, indem sie so schnell wie möglich Kapazität proportional zum metrischen Wert hinzufügt. Je höher die Metrik, desto mehr Kapazität wird hinzugefügt.

Wenn die Metrik unter den Zielwert fällt, geht die Richtlinie davon aus, dass die Auslastung letztendlich wieder steigt. In diesem Fall verlangsamt sie die Skalierung, indem sie Kapazitäten nur dann entfernt, wenn die Auslastung einen Schwellenwert überschreitet, der weit genug unter dem Zielwert liegt (in der Regel um mehr als 10 %), damit die Auslastung als verlangsamt angesehen werden kann. Mit diesem vorsichtigeren Verhalten soll sichergestellt werden, dass Kapazitäten erst dann entfernt werden, wenn die Anwendung nicht mehr so häufig aufgerufen wird wie zuvor.

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 Liste der vordefinierten Metriken in Vordefinierte Metriken für Skalierungsrichtlinien für die Zielverfolgung aus.

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

  • Nicht alle benutzerdefinierten Metriken funktionieren für die Zielverfolgung. Die Metrik muss eine gültige Auslastungsmetrik sein und beschreiben, wie ausgelastet ein skalierbares Ziel ist. Der Metrikwert muss proportional zur Kapazität des skalierbaren Ziels steigen oder fallen, damit die metrischen Daten zur proportionalen Skalierung des skalierbaren Ziels verwendet werden können.

  • Um die Metrik ALBRequestCountPerTarget zu verwenden, müssen Sie den Parameter ResourceLabel angeben, um die Zielgruppe zu identifizieren, die der Metrik zugeordnet ist.

  • Wenn eine Metrik echte Werte von 0 ausgibt CloudWatch (z. B.ALBRequestCountPerTarget), kann Application Auto Scaling auf 0 skalieren, wenn über einen längeren Zeitraum kein Datenverkehr zu Ihrer Anwendung erfolgt. Damit Ihr skalierbares Ziel auf 0 skaliert wird, wenn keine Anforderungen an es weitergeleitet werden, muss die Mindestkapazität des skalierbaren Ziels auf 0 gesetzt werden.

  • 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 einer Skalierungsrichtlinie für Zielnachverfolgung für Application Auto Scaling mit Metrikberechnungen.

  • Informationen dazu, ob der von Ihnen verwendete Service die Angabe einer benutzerdefinierten Metrik in der Konsole des Service unterstützt, finden Sie in der Dokumentation für den betreffenden Service.

  • Wir empfehlen, 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. So werden beispielsweise alle Amazon-EC2-Metriken standardmäßig in Fünf-Minuten-Intervallen gesendet, können aber auch 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.

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 Ihre Anwendung 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 Einheit (z. B. eines einzelnen Ziels aus Ihrer Zielgruppe für Application Load Balancer) für einen Zeitraum von einer Minute dar.

Ruhephasen definieren

In Ihrer Skalierungsrichtlinie für die Zielverfolgung können Sie optional Ruhephasen definieren.

Eine Ruhephase ist die Zeitspanne, die die Skalierungsrichtlinie warten muss, bis eine vorherige Skalierungsaktivität wirksam wird.

Es gibt zwei Arten von Ruhephasen:

  • Mit der Abkühlungsphase der Aufskalierung wird beabsichtigt, kontinuierlich (aber nicht übermäßig) zu skalieren. Nachdem Application Auto Scaling unter Verwendung einer Skalierungsrichtlinie erfolgreich aufskaliert wurde, wird die Berechnung der Ruhezeit gestartet. Eine Skalierungsrichtlinie erhöht die gewünschte Kapazität nicht erneut, es sei denn, es wird eine größere Aufskalierung ausgelöst oder die Ruhephase endet. Während die Scale-Out-Ruhephase wirksam ist, wird die durch die initiierende horizontale Skalierung nach oben (Scale-Out) hinzugefügte Kapazität als Teil der gewünschten Kapazität für die nächste horizontale Skalierung nach oben berechnet.

  • Mit der Ruhephase für die Abskalierung ist beabsichtigt, die Abskalierung konservativ durchzuführen, um die Verfügbarkeit Ihrer Anwendung zu schützen, sodass Abskalierungsaktivitäten blockiert werden, bis die Ruhephase für die Abskalierung abgelaufen ist. Wenn jedoch ein anderer Alarm während der Abkühlphase nach einer Abskalier-Aktivität eine Aufskalier-Aktivität auslöst, wird das Ziel durch Application Auto Scaling sofort abskaliert. In diesem Fall wird die Ruhephase für die Abskalierung angehalten und nicht abgeschlossen.

Jede Ruhephase wird in Sekunden gemessen und gilt nur für Skalierungsrichtlinien-bezogene Skalierungen. Wenn eine geplante Aktion während einer Ruhephase zum geplanten Zeitpunkt beginnt, kann sie umgehend eine Skalierung auslösen, ohne das Ablaufen der Ruhephase abzuwarten.

Sie können mit den Standardwerten beginnen, die später optimiert werden können. So kann es beispielsweise erforderlich sein, die Ruhephase zu verlängern, um zu verhindern, dass Ihre Skalierungsrichtlinie zur Ziel-Nachverfolgung zu aggressiv auf Änderungen reagiert, die über kurze Zeiträume auftreten.

Standardwerte

Application Auto Scaling bietet einen Standardwert von 600 für ElastiCache Replikationsgruppen und einen Standardwert von 300 für die folgenden skalierbaren Ziele:

  • AppStream 2.0-Flotten

  • Aurora-DB-Cluster

  • ECS-Services

  • Neptune-Cluster

  • SageMaker Endpunkt-Varianten

  • SageMaker Inferenzkomponenten

  • SageMaker Serverlos bereitgestellte Parallelität

  • Spot Flotten

  • Pool von WorkSpaces

  • Benutzerdefinierte Ressourcen

Für alle anderen skalierbaren Ziele ist der Standardwert 0 oder NULL:

  • Amazon Comprehend-Dokumentklassifizierungs- und Entitätserkennungs-Endpunkte

  • DynamoDB-Tabellen und globale sekundäre Indizes

  • Amazon Keyspace-Tabellen

  • Parallelität per Lambda

  • Amazon MSK-Broker-Speicher

NULL-Werte werden genauso behandelt wie Nullwerte, wenn Application Auto Scaling die Ruhephase auswertet.

Sie können jeden der Standardwerte, einschließlich NULL-Werte, aktualisieren, um Ihre eigenen Ruhephasen festzulegen.

Ü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. Application 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.

  • Wenn der Metrik Datenpunkte fehlen, führt dies dazu, dass der CloudWatch Alarmstatus auf INSUFFICIENT_DATA geändert wird. In diesem Fall kann Application Auto Scaling das skalierbare Ziel erst wieder skalieren, wenn neue Datenpunkte gefunden wurden. Weitere Informationen finden Sie unter Konfiguration der Behandlung fehlender Daten durch CloudWatch Alarme im CloudWatch Amazon-Benutzerhandbuch.

  • 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. Dies liegt daran, dass Application Auto Scaling immer konservativ vorgeht, indem sie auf- oder abrundet, wenn sie bestimmt, wie viel Kapazität hinzugefügt oder entfernt werden soll. Dadurch wird verhindert, dass zu wenig Kapazität hinzufügt oder zu viel Kapazität entfernt wird. Bei einem skalierbaren Ziel mit geringer Kapazität können die tatsächlichen metrischen Datenpunkte jedoch scheinbar weit vom Zielwert entfernt sein.

    Bei einem skalierbaren Ziel mit größerer Kapazität führt das Hinzufügen oder Entfernen von Kapazität zu einem geringeren Abstand zwischen dem Zielwert und den tatsächlichen metrischen Datenpunkten.

  • Eine Skalierungsrichtlinie für die Ziel-Nachverfolgung geht davon aus, dass sie eine horizontale Skalierung nach oben vornehmen soll, wenn die angegebene Metrik über dem Zielwert liegt. Sie können keine Skalierungsrichtlinie für die Ziel-Nachverfolgung verwenden, um eine horizontale Skalierung nach oben vorzunehmen, wenn die angegebene Metrik unter dem Zielwert liegt.

Mehrere Skalierungsrichtlinien

Sie können mehrere Skalierungsrichtlinien für die Ziel-Nachverfolgung für ein skalierbares Ziel besitzen, vorausgesetzt, dass diese alle verschiedene Metriken verwenden. Die Absicht von Application Auto Scaling ist es, der Verfügbarkeit immer Vorrang einzuräumen. Daher unterscheidet sich das Verhalten von Application Auto Scaling, je nachdem, ob die Ziel-Tracking-Richtlinien für die Skalierung nach außen oder nach innen bereit sind. Sofern Richtlinien für die Ziel-Nachverfolgung für die horizontale Skalierung nach oben bereit sind, findet eine horizontale Skalierung des skalierbaren Ziels nach oben statt. Eine horizontale Skalierung nach unten wird jedoch nur vorgenommen, wenn alle Richtlinien für die Ziel-Nachverfolgung (mit aktivierter horizontaler Skalierung nach unten) zur horizontalen Skalierung nach unten bereit sind.

Wenn mehrere Richtlinien das skalierbare Ziel gleichzeitig zum Auf- oder Abskalieren anweisen, erfolgt die Skalierung durch Application Auto Scaling auf Grundlage der Richtlinie, die die größte Kapazität für die Ab- und Aufskalierung bereitstellt. Das bietet Ihnen eine größere Flexibilität für verschiedene Szenarien und stellt sicher, dass immer ausreichend Kapazität zur Verarbeitung Ihrer Workloads vorhanden ist.

Sie können den Abskalierungsteil einer Skalierungsrichtlinie für die Zielnachverfolgung deaktivieren, um eine andere Methode für die Abskalierung zu verwenden als für die Aufskalierung. Sie können z. B. eine Schrittskalierungsrichtlinie für die Skalierung nach unten verwenden, während Sie eine Skalierungsrichtlinie für die Ziel-Nachverfolgung für die Skalierung nach oben verwenden.

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 beispielsweise die Schrittskalierungsrichtlinie eine Abwärtsskalierungsaktivität initiiert, bevor die Zielverfolgungsrichtlinie abwärts skaliert werden kann, wird die Abwärtsskalierungsaktivität nicht blockiert. Nach Abschluss der herunterskalierenden Aktivität könnte die Zielverfolgungsrichtlinie das skalierbare Ziel anweisen, erneut zu skalieren.

Für zyklisch anfallende Verarbeitungslasten haben Sie außerdem die Möglichkeit, Kapazitätsänderungen in einem Zeitplan mithilfe der geplanten Skalierung zu automatisieren. Für jede geplante Aktion können ein neuer Kapazitätsmindestwert und ein neuer Kapazitätshöchstwert festgelegt werden. Diese Werte bilden die Grenzen der Skalierungsrichtlinie. Die Kombination aus geplanter Skalierung und Skalierung zur Zielnachverfolgung kann dazu beitragen, die Auswirkungen eines starken Anstiegs des Auslastungsgrades zu verringern, wenn die Kapazität sofort benötigt wird.

Häufig verwendete Befehle zur Erstellung, Verwaltung und Löschung von Skalierungsrichtlinien

Zu den häufig verwendeten Befehlen für die Arbeit mit Skalierungsrichtlinien gehören:

  • register-scalable-targetum Ressourcen als skalierbare Ziele zu registrieren AWS oder anzupassen (eine Ressource, die Application Auto Scaling skalieren kann) und die Skalierung auszusetzen und wieder aufzunehmen.

  • put-scaling-policyum Skalierungsrichtlinien für ein vorhandenes skalierbares Ziel hinzuzufügen oder zu ändern.

  • describe-scaling-activitiesum Informationen über Skalierungsaktivitäten in einer AWS Region zurückzugeben.

  • describe-scaling-policiesum Informationen über Skalierungsrichtlinien in einer AWS Region zurückzugeben.

  • delete-scaling-policyum eine Skalierungsrichtlinie zu löschen.

Informationen zum Erstellen von Skalierungsrichtlinien für die Ziel-Nachverfolgung für Auto-Scaling-Gruppen finden Sie unter Skalierungsrichtlinien für die Ziel-Nachverfolgung für Amazon EC2 Auto Scaling im Benutzerhandbuch für Amazon EC2 Auto Scaling.

Einschränkungen

Bei der Verwendung von Zielverfolgungs-Skalierungsrichtlinien gibt es folgende Einschränkungen:

  • Das skalierbare Ziel kann nicht ein Amazon EMR-Cluster sein. Zielverfolgungs-Skalierungsrichtlinien werden für Amazon EMR nicht unterstützt.

  • Wenn ein Amazon MSK-Cluster das skalierbare Ziel ist, ist scale in deaktiviert und kann nicht aktiviert werden.

  • Sie können die RegisterScalableTarget oder PutScalingPolicy API-Operationen nicht verwenden, um einen AWS Auto Scaling Skalierungsplan zu aktualisieren.

  • Der Konsolenzugriff zum Anzeigen, Hinzufügen, Aktualisieren oder Entfernen von Skalierungsrichtlinien für die Ziel-Nachverfolgung auf skalierbaren Ressourcen hängt von der verwendeten Ressource ab. Weitere Informationen finden Sie unter AWS-Services die Sie mit Application Auto Scaling verwenden können.