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 Kapazitätsanbieter für Auto-Scaling-Gruppen haben, die verwaltete Skalierung verwenden, schätzt Amazon ECS die optimale Anzahl von Instances, die Ihrem Cluster hinzugefügt werden sollen, und verwendet diesen Wert, um zu bestimmen, wie viele Instances angefordert oder veröffentlicht werden müssen.
Verhalten für die verwaltete Skalierung nach oben
Amazon ECS wählt einen Kapazitätsanbieter für jede Aufgabe aus, indem es der Kapazitätsanbieter-Strategie des Service, der eigenständigen Aufgabe oder der Cluster-Standardeinstellung folgt. Amazon ECS folgt den restlichen Schritten für einen einzelnen Kapazitätsanbieter.
Aufgaben ohne Kapazitätsanbieter-Strategie werden von Kapazitätsanbietern ignoriert. Eine ausstehende Aufgabe, für die es keine Kapazitätsanbieter-Strategie 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 eines 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
PROVISIONINGverbleiben, 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ätsanbieter-Strategie 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 WertCapacityProviderReservationbleibt auf dem WerttargetCapacity. -
Amazon ECS veröffentlicht die
CapacityProviderReservationMetrik in CloudWatch Bezug darauf,minimumScalingStepSizeob einer der folgenden Punkte zutrifft.-
Die maximale berechnete Instance-Anzahl ist geringer als die minimale Skalierungsschrittgröße.
-
Der niedrigere Wert von entweder
maximumScalingStepSizeoder der maximal berechneten Instance-Anzahl.
-
-
CloudWatch Alarme verwenden die
CapacityProviderReservationMetrik für Kapazitätsanbieter. Wenn dieCapacityProviderReservation-Metrik größer als dertargetCapacity-Wert ist, erhöhen Alarme auch dieDesiredCapacityder Auto-Scaling-Gruppe. DertargetCapacityWert ist eine Einstellung des Kapazitätsanbieters, die während der Aktivierungsphase für die auto Skalierung des Clusters an den CloudWatch Alarm gesendet wird.Der Standardwert für
targetCapacityist 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. Die Aufskalierung ist für Instances, die sich innerhalb derinstanceWarmupPeriodbefinden, gesperrt.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
instanceWarmupPeriodabläuft, was sich auf die Gesamtskalierungsgrenze auswirken kann. Wenn Sie diese Zeit reduzieren müssen, stellen Sie sicher, dass sie groß genuginstanceWarmupPeriodist, 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 vonmaximumScalingStepSizeoder der maximal berechneten Instance-Anzahl. -
Wenn ein Amazon-ECS-Service oder
run-taskeine Aufgabe startet und die Container-Instances des Kapazitätsanbieters nicht über genügend Ressourcen verfügen, um die Aufgabe zu starten, dann 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
CapacityProviderReservationauf 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
CapacityProviderReservationMetrik 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
DesiredCapacityerreicht. 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.
-