Skalieren Sie Ihren ECS Amazon-Service automatisch - Amazon Elastic Container Service

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.

Skalieren Sie Ihren ECS Amazon-Service automatisch

Auto Scaling ist die Möglichkeit, die gewünschte Anzahl Aufgaben in Ihrem ECS Amazon-Service automatisch abhängig von der Nachfrage zu erhöhen oder zu verringern. Amazon ECS nutzt den Application Auto Scaling-Service, um diese Funktionalität bereitzustellen. Weitere Informationen finden Sie im Benutzerhandbuch zum Application Auto Scaling.

Amazon ECS veröffentlicht CloudWatch Metriken mit dem Durchschnitt CPU und der Arbeitsspeichernutzung Ihres Service. Weitere Informationen finden Sie unter Kennzahlen ECS zur Nutzung von Amazon-Services. Sie können diese und andere CloudWatch Kennzahlen verwenden, um Ihren Service aufwärts zu skalieren (weitere Aufgaben hinzufügen), um hohen Bedarf zu Spitzenzeiten zu bewältigen, und um Ihren Service abwärts zu skalieren (weniger Aufgaben ausführen), um Kosten in Zeiten geringer Auslastung zu senken.

ECSAmazon-Service-Auto-Scaling unterstützt die folgenden Typen des Auto Scalings:

Überlegungen

Beachten Sie bei Verwendung von Skalierungsrichtlinien die folgenden Überlegungen:

  • Amazon ECS sendet Metrikdaten in einminütigen Intervallen an CloudWatch. Die Metriken sind nicht verfügbar CloudWatch, bis die Cluster und Services diese senden und Sie können keine CloudWatch Alarme für Metriken erstellen, die noch nicht existieren.

  • Die Skalierungsrichtlinien unterstützen eine Ruhephase. Das ist die Anzahl Sekunden, für die darauf gewartet wird, dass eine vorherige Skalierungsaktivität wirksam wird.

    • Bei Scale-out-Ereignissen wird eine kontinuierliche (jedoch nicht übermäßige) horizontale Skalierung nach oben angestrebt. Nachdem Service Auto Scaling unter Verwendung einer Skalierungsrichtlinie erfolgreich horizontal nach oben skaliert hat, beginnt es mit der Berechnung der Ruhezeit. Die 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.

    • Bei Scale-In-Ereignissen wird eine vorsichtige horizontale Skalierung nach unten angestrebt, um die Verfügbarkeit Ihrer Anwendung aufrechtzuerhalten, sodass horizontale Skalierungen nach unten blockiert werden, bis die Ruhephase abgelaufen ist. Wenn jedoch während der Abskalierungs-Ruhephase ein anderer Alarm eine Aufskalierungs-Aktivität auslöst, skaliert Service Auto Scaling das Ziel auf. In diesem Fall wird die Scale-In-Ruhephase angehalten und nicht abgeschlossen.

  • Der Serviceplaner respektiert die gewünschte Anzahl zu jeder Zeit, aber solange Sie aktive Skalierungsrichtlinien und Alarme für einen Service haben, könnte Service Auto Scaling eine gewünschte Anzahl, die von Ihnen manuell festgelegt wurde, ändern.

  • Wenn die gewünschte Anzahl eines Service unter seinem minimalen Kapazitätswert eingestellt ist und ein Alarm eine Aufwärtsskalierung auslöst, skaliert Service Auto Scaling die gewünschte Anzahl bis zu dem minimalen Kapazitätswert aufwärts und führt dann die Aufwärtsskalierung wie gefordert fort, basierend auf der dem Alarm zugeordneten Skalierungsrichtlinie. Eine Herunterskalierung wird jedoch die gewünschte Anzahl nicht anpassen, da der Wert bereits unter dem Wert für die minimale Kapazität liegt.

  • Wenn die gewünschte Anzahl eines Service über seinem maximalen Kapazitätswert eingestellt ist und ein Alarm eine Abwärtsskalierung einleitet, skaliert Service Auto Scaling die gewünschte Anzahl bis zu dem maximalen Kapazitätswert aufwärts und führt dann die Abwärtsskalierung wie gefordert fort, basierend auf der dem Alarm zugeordneten Skalierungsrichtlinie. Eine Aufwärtsskalierung passt jedoch die gewünschte Anzahl nicht an, da der Wert bereits über dem Wert für die maximale Kapazität liegt.

  • Während der Skalierungsaktivitäten ist die tatsächliche Anzahl der laufenden Aufgaben in einem Service der Wert, den Service Auto Scaling als Ausgangspunkt verwendet, im Gegensatz zu der gewünschten Anzahl. Dies ist, was die Verarbeitungskapazität sein soll. Dies verhindert eine übermäßige (unkontrollierte) Skalierung, die z. B. nicht erfüllt werden könnte, wenn nicht genügend Ressourcen für die Container Instances vorhanden sind, um die zusätzlichen Aufgaben zu platzieren. Wenn die Container-Instance-Kapazität später verfügbar ist, kann die ausstehende Skalierung möglicherweise gelingen, und weitere Skalierungen können nach der Ruhephase erfolgen.

  • Wenn Sie möchten, dass die Anzahl der Aufgaben auf Null skaliert wird, wenn es keine Arbeit zu erledigen gibt, legen Sie eine Mindestkapazität von 0 fest. Wenn die tatsächliche Kapazität 0 ist und die Metrik darauf hinweist, dass Workload-Bedarf besteht, wartet Service Auto Scaling, bis ein Datenpunkt gesendet wird, bevor die Skalierung ausgeführt wird. In diesem Fall skaliert es um den minimal möglichen Betrag als Startpunkt und setzt dann die Skalierung basierend auf der tatsächlichen Anzahl der laufenden Tasks fort.

  • Application Auto Scaling deaktiviert Scale-In-Prozesse, während ECS Amazon-Bereitstellungen ausgeführt werden. Scale-Out-Prozesse werden während einer Bereitstellung jedoch weiterhin ausgeführt, es sei denn, sie werden angehalten. Weitere Informationen finden Sie unter Auto Scaling und Bereitstellung von Services.

  • Sie haben mehrere Application-Auto-Scaling-Optionen für ECS Amazon-Aufgaben. Die Zielverfolgung ist der am einfachsten zu verwendende Modus. Damit müssen Sie lediglich einen Zielwert für eine Metrik festlegen, z. B. die CPU durchschnittliche Auslastung. Anschließend verwaltet der Autoscaler automatisch die Anzahl der Aufgaben, die erforderlich sind, um diesen Wert zu erreichen. Mit der schrittweisen Skalierung können Sie schneller auf Bedarfsänderungen reagieren, da Sie die spezifischen Schwellenwerte für Ihre Skalierungsmetriken definieren und festlegen, wie viele Aufgaben hinzugefügt oder entfernt werden müssen, wenn die Schwellenwerte überschritten werden. Und was noch wichtiger ist: Sie können sehr schnell auf Änderungen der Nachfrage reagieren, indem Sie die Zeitspanne, in der ein Schwellenwertalarm überschritten wird, auf ein Minimum reduzieren.

Auto Scaling und Bereitstellung von Services

Application Auto Scaling deaktiviert Scale-In-Prozesse, während ECS Amazon-Bereitstellungen ausgeführt werden. Scale-Out-Prozesse werden während einer Bereitstellung jedoch weiterhin ausgeführt, es sei denn, sie werden angehalten. Wenn Sie Scale-Out-Prozesse anhalten möchten, während Bereitstellungen ausgeführt werden, führen Sie die folgenden Schritte aus.

  1. Rufen Sie den describe-scalable-targetsBefehl auf, indem Sie die Ressourcen-ID des ECS-Services angeben, der dem skalierbaren Ziel in Application Auto Scaling zugeordnet ist (Beispiel:service/default/sample-webapp). Zeichnen Sie die Ausgabe auf. Sie werden diese benötigen, wenn Sie den nächsten Befehl aufrufen.

  2. Rufen Sie den register-scalable-targetBefehl auf, indem Sie die Ressourcen-ID, den Namespace und die skalierbare Dimension angeben. Geben Sie true für sowohl DynamicScalingInSuspended als auch DynamicScalingOutSuspended an.

  3. Nach Abschluss der Bereitstellung können Sie den register-scalable-targetBefehl aufrufen, um die Skalierung fortzusetzen.

Weitere Informationen finden Sie unter Unterbrechen und Wiederaufnehmen der Skalierung für Application Auto Scaling.