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.
Von Amazon ECS verwaltetes Skalierungsverhalten
Wenn Sie Auto Scaling Scaling-Gruppenkapazitätsanbieter haben, die verwaltete Skalierung verwenden, schätzt Amazon ECS die optimale Anzahl von Instances, die Sie Ihrem Cluster hinzufügen können, und bestimmt anhand des Werts, wie viele Instances angefordert oder veröffentlicht werden müssen.
Verhalten für die verwaltete Skalierung nach oben
Amazon ECS wählt für jede Aufgabe einen Kapazitätsanbieter aus und folgt dabei der Kapazitätsanbieterstrategie des Service, der eigenständigen Aufgabe oder der Cluster-Standardeinstellung. Amazon ECS folgt den restlichen Schritten für einen einzelnen Kapazitätsanbieter.
Aufgaben ohne Kapazitätsanbieterstrategie werden von Kapazitätsanbietern ignoriert. Eine ausstehende Aufgabe, für die es keine Kapazitätsanbieterstrategie gibt, führt bei keinem Kapazitätsanbieter zum Aufskalieren. Aufgaben oder Services können keine Strategie für einen Kapazitätsanbieter festlegen, wenn diese Aufgabe oder dieser Service einen Starttyp festlegt.
Im Folgenden wird das Scale-Out-Verhalten detaillierter beschrieben.
-
Gruppieren Sie alle Bereitstellungsaufgaben für diesen Kapazitätsanbieter so, dass jede Gruppe genau die gleichen Ressourcenanforderungen hat.
-
Wenn Sie mehrere Instance-Typen in einer Auto-Scaling-Gruppe verwenden, werden die Instance-Typen in der Auto-Scaling-Gruppe nach ihren Parametern sortiert. Zu diesen Parametern gehören vCPU, Speicher, elastische Netzwerkschnittstellen (ENIs), Ports und GPUs. Die kleinsten und größten Instance-Typen für jeden Parameter werden ausgewählt. Weitere Informationen zur Auswahl des Instance-Typs finden Sie unter EC2 Amazon-Container-Instances für Amazon ECS.
Wichtig
Wenn eine Gruppe von Aufgaben einen Ressourcenbedarf hat, der größer ist als der kleinste Instance-Typ in der Auto-Scaling-Gruppe, dann kann diese Gruppe von Aufgaben nicht mit diesem Kapazitätsanbieter ausgeführt werden. Der Kapazitätsanbieter skaliert die Auto-Scaling-Gruppe nicht. Die Aufgaben verbleiben im Status
PROVISIONING
.Um zu verhindern, dass Aufgaben im Status
PROVISIONING
verbleiben, empfehlen wir Ihnen, separate Auto-Scaling-Gruppen und Kapazitätsanbieter für unterschiedliche Mindestressourcenanforderungen zu erstellen. Wenn Sie Aufgaben ausführen oder Services erstellen, fügen Sie nur Kapazitätsanbieter zur Kapazitätsanbieterstrategie hinzu, die die Aufgabe auf dem kleinsten Instance-Typ in der Auto-Scaling-Gruppe ausführen können. Für andere Parameter können Sie Platzierungsbeschränkungen verwenden -
Für jede Aufgabengruppe berechnet Amazon ECS die Anzahl der Instances, die zum Ausführen der nicht platzierten Aufgaben erforderlich sind. Diese Berechnung verwendet eine
binpack
-Strategie. Diese Strategie berücksichtigt die vCPU, den Arbeitsspeicher, die Elastic Network Interfaces (ENI), die Ports und die GPUs Anforderungen der Aufgaben. Es berücksichtigt auch die Ressourcenverfügbarkeit der EC2 Amazon-Instances. Die Werte für die größten Instance-Typen werden als maximale berechnete Instance-Anzahl behandelt. Die Werte für den kleinsten Instance-Typ werden als Schutz verwendet. Wenn der kleinste Instance-Typ nicht mindestens eine Instance der Aufgabe ausführen kann, betrachtet die Berechnung die Aufgabe als nicht kompatibel. Daher wird die Aufgabe von der Aufskalierungsberechnung ausgeschlossen. Wenn alle Aufgaben nicht mit dem kleinsten Instance-Typ kompatibel sind, stoppt das Auto Scaling des Clusters und der WertCapacityProviderReservation
bleibt auf dem WerttargetCapacity
. -
Amazon ECS veröffentlicht die
CapacityProviderReservation
Metrik in CloudWatch Bezug darauf,minimumScalingStepSize
ob einer der folgenden Punkte zutrifft.-
Die maximale berechnete Instance-Anzahl ist geringer als die minimale Skalierungsschrittgröße.
-
Der niedrigere Wert der
maximumScalingStepSize
oder der maximalen berechneten Instanzanzahl.
-
-
CloudWatch Alarme verwenden die
CapacityProviderReservation
Metrik für Kapazitätsanbieter. Wenn dieCapacityProviderReservation
-Metrik größer als dertargetCapacity
-Wert ist, erhöhen Alarme auch dieDesiredCapacity
der Auto-Scaling-Gruppe. DertargetCapacity
Wert ist eine Einstellung des Kapazitätsanbieters, die während der Aktivierungsphase für die auto Skalierung des Clusters an den CloudWatch Alarm gesendet wird.Die Standardeinstellung
targetCapacity
ist 100%. -
Die Auto Scaling Scaling-Gruppe startet zusätzliche EC2 Instances. Um eine übermäßige Bereitstellung zu verhindern, stellt Auto Scaling sicher, dass die Kapazität der kürzlich gestarteten EC2 Instances stabilisiert wird, bevor neue Instances gestartet werden. Auto Scaling prüft, ob alle vorhandenen Instances die
instanceWarmupPeriod
(jetzt abzüglich der Startzeit der Instance) überschritten haben. Das Scale-Out ist für Instances blockiert, die sich innerhalb von befinden.instanceWarmupPeriod
Die Standardanzahl von Sekunden für das Aufwärmen einer neu gelaunchten Instance beträgt 300.
Weitere Informationen finden Sie unter Detaillierte Informationen zum Auto Scaling von Amazon-ECS-Clustern
Überlegungen zum Aufskalieren
Berücksichtigen Sie Folgendes für den Aufskalierungs-Prozess:
-
Obwohl es mehrere Platzierungs-Einschränkungen gibt, empfehlen wir, dass Sie nur die
distinctInstance
-Einschränkung für die Aufgabenplatzierung nutzen. Dies verhindert, dass der Aufskalierungs-Prozess angehalten wird, da Sie eine Platzierungs-Einschränkung verwenden, die nicht mit den Stichproben-Instances kompatibel ist. -
Die verwaltete Skalierung funktioniert am besten, wenn Ihre Auto-Scaling-Gruppe dieselben oder ähnliche Instance-Typen verwendet.
-
Wenn ein Aufskalierungsprozess erforderlich ist und derzeit keine Container-Instances laufen, skaliert Amazon ECS zunächst immer auf zwei Instances und führt dann weitere Aufskalierungs- oder Abskalierungsprozesse durch. Bei jedem weiteren Aufskalieren wird auf die Aufwärmphase der Instance gewartet. Bei Aufskalierungsprozessen wartet Amazon ECS nach einem Aufskalierungsprozess immer 15 Minuten, bevor Abskalierungsprozesse gestartet werden.
-
Der zweite Aufskalierungs-Schritt muss warten, bis das
instanceWarmupPeriod
abläuft, was sich auf die Gesamtskalierungsgrenze auswirken kann. Wenn Sie diese Zeit reduzieren müssen, stellen Sie sicher, dass sie groß genuginstanceWarmupPeriod
ist, damit die EC2 Instance den Amazon ECS-Agenten starten und starten kann (wodurch eine Überbereitstellung verhindert wird). -
Cluster-Auto-Scaling unterstützt Startkonfiguration, Startvorlagen und mehrere Instance-Typen in der Auto-Scaling-Gruppe des Kapazitätsanbieters. Sie können auch die attributbasierte Instance-Typauswahl ohne mehrfache Instance-Typen verwenden.
-
Wenn Sie eine Auto-Scaling-Gruppe mit On-Demand-Instances und mehreren Instance-Typen oder Spot-Instances verwenden, platzieren Sie die größeren Instance-Typen höher in der Prioritätsliste und geben Sie keine Gewichtung an. Die Angabe einer Gewichtung wird derzeit nicht unterstützt. Weitere Informationen finden Sie unter Auto-Scaling-Gruppen mit mehreren Instance-Typen im AWS Auto Scaling -Benutzerhandbuch.
-
Amazon ECS startet dann entweder
minimumScalingStepSize
, wenn die maximal berechnete Instance-Anzahl kleiner als die minimale Skalierungsschrittgröße ist, oder den niedrigeren Wert vonmaximumScalingStepSize
oder der maximal berechneten Instance-Anzahl. -
Wenn ein Amazon ECS-Service oder eine Aufgabe
run-task
startet und die Container-Instances des Kapazitätsanbieters nicht über genügend Ressourcen verfügen, um die Aufgabe zu starten, begrenzt Amazon ECS die Anzahl der Aufgaben mit diesem Status für jeden Cluster und verhindert, dass Aufgaben dieses Limit überschreiten. Weitere Informationen finden Sie unter Amazon-ECS-Service-Kontingente.
Verwaltetes Abskalierungs-Verhalten
Amazon ECS überwacht Container-Instances für jeden Kapazitätsanbieter in einem Cluster. Wenn eine Container-Instance keine Aufgaben ausführt, gilt die Container-Instance als leer und Amazon ECS startet den Abskalierungsprozess.
CloudWatch Scale-In-Alarme benötigen 15 Datenpunkte (15 Minuten), bevor der Scale-In-Prozess für die Auto Scaling Scaling-Gruppe beginnt. Nachdem der Abskalierungs-Prozess gestartet wurde, bis Amazon ECS die Anzahl der angemeldeten Container-Instances reduzieren muss, legt die Auto-Scaling-Gruppe fest, dass der DesireCapacity
-Wert größer als eine Instance und weniger als 50 % pro Minute sein soll.
Wenn Amazon ECS eine Aufskalierung anfordert (wenn CapacityProviderReservation
größer als 100 ist), während ein Abskalierungs-Prozess durchgeführt wird, wird der Abskalierungs-Prozess angehalten und bei Bedarf von Neuem gestartet.
Im Folgenden wird das Abskalierungsverhalten im Detail beschrieben:
-
Amazon ECS berechnet die Anzahl der leeren Container-Instances. Eine Container-Instance gilt als leer, auch wenn keine Daemon-Aufgaben ausgeführt werden.
-
Amazon ECS setzt den Wert
CapacityProviderReservation
auf eine Zahl zwischen 0–100, die anhand der folgenden Formel das Verhältnis zwischen der erforderlichen Größe der Auto-Scaling-Gruppe und der tatsächlichen Größe darstellt, ausgedrückt in Prozent. Anschließend veröffentlicht Amazon ECS die Metrik für CloudWatch. Weitere Informationen darüber, wie die Metrik berechnet wird, finden Sie unter Deep Dive im Cluster-Auto-Scaling von Amazon-ECSCapacityProviderReservation = (number of instances needed) / (number of running instances) x 100
-
Die
CapacityProviderReservation
Metrik generiert einen CloudWatch Alarm. Dieser Alarm aktualisiert denDesiredCapacity
-Wert für die Auto-Scaling-Gruppe. Anschließend wird eine der folgenden Aktionen ausgeführt:-
Wenn Sie die vom Kapazitätsanbieter verwaltete Terminierung nicht verwenden, wählt die Auto Scaling Scaling-Gruppe EC2 Instances mithilfe der Auto Scaling Scaling-Gruppenbeendigungsrichtlinie aus und beendet die Instances, bis die Anzahl der EC2 Instances den
DesiredCapacity
erreicht. Die Container-Instances werden dann vom Cluster abgemeldet. -
Wenn alle Container-Instances einen verwalteten Beendigungsschutz verwenden, entfernt Amazon ECS den Abskalierungsschutz für leere Container-Instances. Die Auto Scaling Scaling-Gruppe kann dann die EC2 Instances beenden. Die Container-Instances werden dann vom Cluster abgemeldet.
-