Automatische Verwaltung der Amazon-ECS-Kapazität mit Cluster-Auto-Scaling - 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.

Automatische Verwaltung der Amazon-ECS-Kapazität mit Cluster-Auto-Scaling

Amazon ECS kann die Skalierung von EC2 Amazon-Instances verwalten, die in Ihrem Cluster registriert sind. Dies wird als Auto Scaling für Amazon-ECS-Cluster bezeichnet. Sie aktivieren die verwaltete Skalierung, wenn Sie den Amazon ECS Amazon EC2 Auto Scaling Scaling-Gruppenkapazitätsanbieter erstellen. Anschließend legen Sie einen Zielprozentsatz (dentargetCapacity) für die Instance-Nutzung in dieser Amazon EC2 Auto Scaling Scaling-Gruppe fest. Amazon ECS erstellt zwei benutzerdefinierte CloudWatch Metriken und eine Skalierungsrichtlinie für die Zielverfolgung für Ihre Amazon EC2 Auto Scaling Scaling-Gruppe. Anschließend verwaltet Amazon ECS die Aktionen zum Auf- und Abskalieren je nach der Ressourcenauslastung, die Ihre Aufgaben verursachen.

Für jeden Amazon EC2 Auto Scaling Scaling-Gruppenkapazitätsanbieter, der einem Cluster zugeordnet ist, erstellt und verwaltet Amazon ECS die folgenden Ressourcen:

  • Ein CloudWatch Alarm bei niedrigem metrischen Wert

  • Ein CloudWatch Alarm bei hohem metrischen Wert

  • Eine Skalierungsrichtlinie für die Ziel-Nachverfolgung.

    Anmerkung

    Amazon ECS erstellt die Skalierungsrichtlinie für die Zielverfolgung und fügt sie der Amazon EC2 Auto Scaling Scaling-Gruppe hinzu. Um die Skalierungsrichtlinie für die Ziel-Nachverfolgung zu aktualisieren, aktualisieren Sie die vom Kapazitätsanbieter verwalteten Skalierungseinstellungen, statt die Skalierungsrichtlinie direkt zu aktualisieren.

Wenn Sie die verwaltete Skalierung deaktivieren oder den Kapazitätsanbieter von einem Cluster trennen, entfernt Amazon ECS sowohl die CloudWatch Metriken als auch die Ressourcen der Ziel-Tracking-Skalierungsrichtlinie.

Amazon ECS verwendet die folgenden Metriken, um zu bestimmen, welche Aktionen ausgeführt werden sollen:

CapacityProviderReservation

Der Prozentsatz der Container-Instances, die für einen bestimmten Kapazitätsanbieter verwendet werden. Amazon ECS generiert diese Metrik.

Amazon ECS legt den Wert CapacityProviderReservation auf eine Zahl zwischen 0–100 fest. Amazon ECS verwendet die folgende Formel, um das Verhältnis der verbleibenden Kapazität in der Amazon EC2 Auto Scaling Scaling-Gruppe darzustellen. 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 zu Amazon ECS Cluster Auto Scaling

CapacityProviderReservation = (number of instances needed) / (number of running instances) x 100
DesiredCapacity

Die Menge an Kapazität für die Amazon EC2 Auto Scaling Scaling-Gruppe. Diese Metrik wurde nicht veröffentlicht in CloudWatch.

Amazon ECS veröffentlicht die CapacityProviderReservation Metrik CloudWatch im AWS/ECS/ManagedScaling Namespace. Die CapacityProviderReservation-Metrik führt zu einer der folgenden Aktionen:

Der Wert CapacityProviderReservation entspricht targetCapacity

Die Amazon EC2 Auto Scaling Scaling-Gruppe muss weder nach innen noch nach außen skalieren. Der angestrebte Nutzungsprozentsatz wurde erreicht.

Der Wert CapacityProviderReservation ist größer als targetCapacity

Es gibt mehr Aufgaben, die einen höheren Prozentsatz der Kapazität beanspruchen als Ihr targetCapacity-Prozentsatz. Der erhöhte Wert der CapacityProviderReservation Metrik führt dazu, dass der zugehörige CloudWatch Alarm ausgelöst wird. Dieser Alarm aktualisiert den DesiredCapacity Wert für die Amazon EC2 Auto Scaling Scaling-Gruppe. Die Amazon EC2 Auto Scaling Scaling-Gruppe verwendet diesen Wert, um EC2 Instances zu starten und sie dann im Cluster zu registrieren.

Wenn die targetCapacity der Standardwert 100 % ist, befinden sich die neuen Aufgaben im Status PENDING während der Skalierung, da auf den Instances keine Kapazität zur Ausführung der Aufgaben verfügbar ist. Nachdem sich die neuen Instances bei ECS registriert haben, werden diese Aufgaben auf den neuen Instances gestartet.

Der Wert CapacityProviderReservation ist kleiner als targetCapacity

Es gibt weniger Aufgaben, die einen niedrigeren Prozentsatz der Kapazität beanspruchen als Ihr targetCapacity-Prozentsatz, und es gibt mindestens eine Instance, die beendet werden kann. Der verringerte Wert der CapacityProviderReservation Metrik führt dazu, dass der zugehörige CloudWatch Alarm ausgelöst wird. Dieser Alarm aktualisiert den DesiredCapacity Wert für die Amazon EC2 Auto Scaling Scaling-Gruppe. Die Amazon EC2 Auto Scaling Scaling-Gruppe verwendet diesen Wert, um EC2 Container-Instances zu beenden und sie dann vom Cluster abzumelden.

Die Amazon EC2 Auto Scaling Scaling-Gruppe legt anhand der Gruppenbeendigungsrichtlinie fest, welche Instances sie bei Scale-In-Ereignissen zuerst beendet. Außerdem werden Instances vermieden, für die der Instance-Abskalierungsschutz aktiviert ist. Cluster-Auto-Scaling kann verwalten, für welche Instances die Einstellung für den Instance-Abskalierungsschutz gilt, wenn Sie den verwalteten Beendigungsschutz aktivieren. Weitere Informationen zum verwalteten Beendigungsschutz finden Sie unter Die Instances steuern, die Amazon ECS beendet. Weitere Informationen darüber, wie Amazon EC2 Auto Scaling Scaling-Gruppen Instances beenden, finden Sie unter Steuern, welche Amazon EC2 Auto Scaling-Instances während der Skalierung beendet werden im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.

Bei Verwendung von Cluster-Auto-Scaling sollte Folgendes berücksichtigt werden:

  • Ändern oder verwalten Sie nicht die gewünschte Kapazität für die Amazon EC2 Auto Scaling Scaling-Gruppe, die einem Kapazitätsanbieter zugeordnet ist, der andere Skalierungsrichtlinien als die von Amazon ECS verwaltete hat.

  • Wenn Amazon ECS ab 0 Instances aufskaliert, werden automatisch 2 Instances gestartet.

  • Amazon ECS verwendet die AWSServiceRoleForECS serviceverknüpfte IAM-Rolle für die Berechtigungen, die erforderlich sind, um in Ihrem Namen AWS Auto Scaling aufzurufen. Weitere Informationen finden Sie unter Verwendung von serviceverknüpften Rollen für Amazon ECS.

  • Bei der Verwendung von Kapazitätsanbietern mit Amazon EC2 Auto Scaling Scaling-Gruppen benötigt der Benutzer, die Gruppe oder die Rolle, die die Kapazitätsanbieter erstellt, die autoscaling:CreateOrUpdateTags entsprechende Genehmigung. Das liegt daran, dass Amazon ECS der Amazon EC2 Auto Scaling Scaling-Gruppe ein Tag hinzufügt, wenn es sie dem Kapazitätsanbieter zuordnet.

    Wichtig

    Stellen Sie sicher, dass die von Ihnen verwendeten Tools das AmazonECSManaged Tag nicht aus der Amazon EC2 Auto Scaling Scaling-Gruppe entfernen. Wenn dieses Tag entfernt wird, kann Amazon ECS das Skalieren nicht verwalten.

  • Die auto Clusterskalierung ändert das MinimumCapacityoder MaximumCapacityfür die Gruppe nicht. Damit die Gruppe horizontal skaliert werden kann, MaximumCapacitymuss der Wert für größer als Null sein.

  • Wenn Amazon EC2 Auto Scaling (verwaltete Skalierung) aktiviert ist, kann ein Kapazitätsanbieter nur mit einem Cluster gleichzeitig verbunden werden. Wenn Ihr Kapazitätsanbieter die verwaltete Skalierung deaktiviert hat, können Sie ihn mehreren Clustern zuordnen.

  • Wenn die verwaltete Skalierung deaktiviert ist, führt der Kapazitätsanbieter keine Auf- oder Abskalierung durch. Sie können eine Kapazitätsanbieter-Strategie verwenden, um Ihre Aufgaben zwischen Kapazitätsanbietern auszugleichen.

  • Die binpack-Strategie ist in Bezug auf die Kapazität die effizienteste Strategie.

  • Wenn die Zielkapazität im Rahmen der Platzierungsstrategie unter 100 % liegt, muss die binpack-Strategie eine höhere Ordnung als die spread-Strategie haben. Dadurch wird verhindert, dass der Kapazitätsanbieter aufskaliert, bis jede Aufgabe über eine Dedicated Instance verfügt oder das Limit erreicht ist.

Auto Scaling von Clustern aktivieren

Verwenden Sie die Konsole oder die AWS CLI, um das Cluster Auto Scaling zu aktivieren.

Wenn Sie mithilfe der Konsole einen Cluster erstellen, der EC2 Kapazitätsanbieter verwendet, erstellt Amazon ECS in Ihrem Namen eine Amazon EC2 Auto Scaling Scaling-Gruppe und legt die Zielkapazität fest. Weitere Informationen finden Sie unter Erstellen eines Amazon ECS-Clusters für EC2 Amazon-Workloads.

Sie können auch eine Amazon EC2 Auto Scaling Scaling-Gruppe erstellen und sie dann einem Cluster zuweisen. Weitere Informationen finden Sie unter Aktualisieren eines Amazon-ECS-Kapazitätsanbieters.

Wenn Sie den verwenden AWS CLI, nachdem Sie den Cluster erstellt haben

  1. Bevor Sie den Kapazitätsanbieter erstellen, müssen Sie eine Amazon EC2 Auto Scaling Scaling-Gruppe erstellen. Weitere Informationen finden Sie unter Amazon EC2 Auto Scaling Scaling-Gruppen im Amazon EC2 Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.

  2. Verwenden Sie put-cluster-capacity-providers, um den Cluster-Kapazitätsanbieter zu ändern. Weitere Informationen finden Sie unter Amazon ECS Cluster Auto Scaling aktivieren.