Optimieren Sie die auto Skalierung von Amazon ECS-Clustern - 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.

Optimieren Sie die auto Skalierung von Amazon ECS-Clustern

Kunden, die Amazon ECS in Amazon EC2 ausführen, können die Vorteile von Cluster Auto Scaling nutzen, um die Skalierung von Amazon-EC2-Auto-Scaling-Gruppen zu verwalten. Mit Cluster Auto Scaling können Sie Amazon ECS so konfigurieren, dass Ihre Auto-Scaling-Gruppe automatisch skaliert wird, sodass Sie sich ganz auf die Ausführung Ihrer Aufgaben konzentrieren können. Amazon ECS stellt sicher, dass die Auto-Scaling-Gruppe nach Bedarf auf- und abskaliert wird, ohne dass weitere Eingriffe erforderlich sind. Amazon-ECS-Kapazitätsanbieter werden verwendet, um die Infrastruktur in Ihrem Cluster zu verwalten, indem sichergestellt wird, dass genügend Container-Instances vorhanden sind, um die Anforderungen Ihrer Anwendung zu erfüllen. Informationen darüber, wie Cluster Auto Scaling unter der Haube funktioniert, finden Sie unter Deep Dive zu Amazon ECS Cluster Auto Scaling.

Cluster-Auto Scaling basiert auf einer CloudWatch basierten Integration mit der Auto Scaling-Gruppe zur Anpassung der Clusterkapazität. Daher ist eine inhärente Latenz verbunden mit

  • Veröffentlichung der CloudWatch Metriken,

  • Die Zeit, die die Metrik benötigt hatCapacityProviderReservation, um CloudWatch Alarme zu umgehen (sowohl bei hohen als auch bei niedrigen Alarmen)

  • Die Zeit, die eine neu gestartete Amazon-EC2-Instance zum Aufwärmen benötigt. Sie können folgende Aktionen durchführen, um Cluster Auto Scaling für schnellere Bereitstellungen reaktionsschneller zu gestalten:

Größen der schrittweisen Skalierung von Kapazitätsanbietern

Amazon ECS-Kapazitätsanbieter stellen grow/shrink die Container-Instances so her, dass sie die Anforderungen Ihrer Anwendung erfüllen. Die Mindestanzahl von Instances, die Amazon ECS startet, ist standardmäßig auf 1 festgelegt. Dies kann Ihre Bereitstellungen verlängern, wenn mehrere Instances für die Ausführung Ihrer ausstehenden Aufgaben erforderlich sind. Sie können die minimumScalingStepSize über die Amazon-ECS-API erhöhen, um die Mindestanzahl von Instances zu erhöhen, die Amazon ECS gleichzeitig auf- oder abskaliert. Wenn maximumScalingStepSize zu niedrig ist, kann dies einschränken, wie viele Container-Instances gleichzeitig auf- oder abskaliert werden, was Ihre Bereitstellungen verlangsamen kann.

Anmerkung

Diese Konfiguration ist derzeit nur über die Option CreateCapacityProvideroder verfügbar UpdateCapacityProvider APIs.

Instance-Aufwärmphase

Die Instance-Aufwärmphase ist der Zeitraum, nach dem eine neu gestartete Amazon EC2 EC2-Instance zu den CloudWatch Metriken für die Auto Scaling Scaling-Gruppe beitragen kann. Nach Ablauf der angegebenen Aufwärmphase wird die Instance auf die aggregierten Metriken der Auto-Scaling-Gruppe angerechnet, und Cluster Auto Scaling fährt mit der nächsten Berechnungsiteration fort, um die Anzahl der benötigten Instances zu schätzen.

Der Standardwert für instanceWarmupPeriodist 300 Sekunden, den Sie UpdateCapacityProvider APIs für eine reaktionsschnellere Skalierung auf einen niedrigeren Wert über CreateCapacityProvideroder konfigurieren können. Es empfiehlt sich, den Wert auf mehr als 60 Sekunden festzulegen, um eine Überbereitstellung zu vermeiden.

Freie Kapazität

Wenn Ihr Kapazitätsanbieter keine Container-Instances für die Aufgabenplatzierung zur Verfügung hat, muss er die Cluster-Kapazität erhöhen (aufskalieren), indem er Amazon-EC2-Instances im laufenden Betrieb startet und wartet, bis sie hochgefahren sind, bevor er Container auf ihnen starten kann. Dies kann die Startrate von Aufgaben erheblich senken. Sie haben hier zwei Optionen.

In diesem Fall erhöht sich die effektive Startrate von Aufgaben, wenn Amazon-EC2-Kapazitäten bereits gestartet und bereit sind, Aufgaben auszuführen. Sie können die Target Capacity-Konfiguration verwenden, um anzugeben, dass Sie freie Kapazitäten in Ihren Clustern beibehalten möchten. Wenn Sie beispielsweise für Target Capacity einen Wert von 80 % festlegen, geben Sie an, dass Ihr Cluster jederzeit 20 % freie Kapazität benötigt. Dank dieser freien Kapazität können alle eigenständigen Aufgaben sofort gestartet werden, wodurch sichergestellt wird, dass das Starten von Aufgaben nicht gedrosselt wird. Der Nachteil dieses Ansatzes sind potenziell höhere Kosten für die Beibehaltung von freier Cluster-Kapazität.

Ein alternativer Ansatz, den Sie in Betracht ziehen können, besteht darin, Ihrem Service mehr Spielraum zu verleihen, nicht dem Kapazitätsanbieter. Das bedeutet, dass Sie, anstatt die Target Capacity-Konfiguration zu reduzieren, um freie Kapazitäten bereitzustellen, die Anzahl der Replikate in Ihrem Service erhöhen können, indem Sie die Skalierungsmetrik der Ziel-Nachverfolgung oder die Schwellenwerte für die schrittweise Skalierung des Service-Auto-Scaling ändern. Beachten Sie, dass dieser Ansatz nur bei stark beanspruchten Workloads hilfreich ist, aber keine Auswirkungen hat, wenn Sie neue Services bereitstellen und zum ersten Mal von 0 auf N Aufgaben wechseln. Weitere Informationen zu den zugehörigen Skalierungsrichtlinien finden Sie unter Skalierungsrichtlinien der Ziel-Nachverfolgung oder schrittweise Skalierungsrichtlinien im Entwicklerhandbuch für Amazon Elastic Container Service.