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
Automatische Skalierung ist die Fähigkeit, die gewünschte Anzahl von Aufgaben in Ihrem ECS Amazon-Service automatisch zu erhöhen oder zu verringern. Amazon ECS nutzt den Service Application Auto Scaling, um diese Funktionalität bereitzustellen. Weitere Informationen finden Sie im Benutzerhandbuch zum Application Auto Scaling.
Amazon ECS veröffentlicht CloudWatch Kennzahlen mit dem Durchschnitt CPU und der Speichernutzung Ihres Services. Weitere Informationen finden Sie unter Kennzahlen ECS zur Nutzung von Amazon-Services. Sie können diese und andere CloudWatch Kennzahlen verwenden, um Ihren Service zu skalieren (mehr Aufgaben hinzufügen), um der hohen Nachfrage in Spitzenzeiten gerecht zu werden, und um Ihren Service zu skalieren (weniger Aufgaben ausführen), um die Kosten in Zeiten geringer Auslastung zu senken.
Amazon ECS Service Auto Scaling unterstützt die folgenden Arten der automatischen Skalierung:
-
Verwenden Sie eine Zielmetrik, um ECS Amazon-Services zu skalieren – Erhöhen oder verringern Sie die Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage eines Zielwerts für eine bestimmte Metrik. Dies ähnelt der Art und Weise, wie ein Thermostat die Temperatur in Ihrem Zuhause konstant hält. Sie wählen eine Temperatur aus und der Thermostat erledigt den Rest.
-
Verwenden Sie vordefinierte Inkremente, die auf CloudWatch Alarmen basieren, um ECS Amazon-Services zu skalieren – Erhöhen oder verringern Sie die Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage einer Gruppe von Skalierungsanpassungen, die als Schrittanpassungen bezeichnet werden und je nach Ausmaß der Alarmüberschreitung variieren.
-
Verwenden Sie geplante Aktionen, um ECS Amazon-Services zu skalieren— Erhöhen oder verringern Sie die Anzahl der Aufgaben, die Ihr Service ausführt, je nach Datum und Uhrzeit.
-
Verwenden Sie historische Muster, um ECS Amazon-Services mit vorausschauender Skalierung zu skalieren— Erhöhen oder verringern Sie die Anzahl der Aufgaben, die Ihr Service auf der Grundlage von Analysen historischer Lastdaten ausführt, um tägliche oder wöchentliche Muster im Verkehrsfluss zu erkennen.
Überlegungen
Beachten Sie bei Verwendung von Skalierungsrichtlinien die folgenden Überlegungen:
-
Amazon ECS sendet Metriken in 1-Minuten-Intervallen an CloudWatch. Metriken sind erst verfügbar, wenn die Cluster und Services die Metriken an sie senden CloudWatch, und Sie können keine CloudWatch Alarme für Metriken erstellen, die 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 Dienstes unter seinem Mindestkapazitätswert liegt und ein Alarm eine Scale-Out-Aktivität einleitet, skaliert Service Auto Scaling die gewünschte Anzahl bis zum Mindestkapazitätswert und skaliert dann nach Bedarf weiter, basierend auf der Skalierungsrichtlinie, die dem Alarm zugeordnet ist. 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 Dienstes über seinem maximalen Kapazitätswert liegt und ein Alarm eine Aktivitätsskalierung einleitet, skaliert Service Auto Scaling die gewünschte Anzahl auf den maximalen Kapazitätswert und skaliert dann nach Bedarf weiter, basierend auf der Skalierungsrichtlinie, die dem Alarm zugeordnet ist. 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 laufen. 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 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 Kennzahl 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 laufen. 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.
-
Rufen Sie den describe-scalable-targetsBefehl auf und geben Sie die Ressourcen-ID des Dienstes an, 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. -
Rufen Sie den register-scalable-targetBefehl auf und geben Sie die Ressourcen-ID, den Namespace und die skalierbare Dimension an. Geben Sie
true
für sowohlDynamicScalingInSuspended
als auchDynamicScalingOutSuspended
an. -
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.