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 Auto Scaling Scaling-Gruppenkapazitätsanbieter erstellen. Anschließend legen Sie einen Zielprozentsatz (dentargetCapacity) für die Instanznutzung in dieser Auto Scaling Scaling-Gruppe fest. Amazon ECS erstellt zwei benutzerdefinierte CloudWatch Metriken und eine Skalierungsrichtlinie für die Zielverfolgung für Ihre Auto Scaling Scaling-Gruppe. Amazon ECS verwaltet dann die Scale-In- und Scale-Out-Aktionen auf der Grundlage der Ressourcenauslastung, die Ihre Aufgaben verbrauchen.

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

  • Ein Alarm bei niedrigem metrischen Wert CloudWatch

  • Ein CloudWatch Alarm bei hohem metrischen Wert

  • Eine Skalierungsrichtlinie für die Ziel-Nachverfolgung.

    Anmerkung

    Amazon ECS erstellt die Skalierungsrichtlinie für die Ziel-Nachverfolgung und fügt sie an die Auto-Scaling-Gruppe an. 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 Maßnahmen zu ergreifen sind:

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 Auto-Scaling-Gruppe darzustellen. Anschließend veröffentlicht Amazon ECS die Metrik für CloudWatch. Weitere Informationen zur Berechnung der Metrik finden Sie unter Deep Dive on Amazon ECS Cluster Auto Scaling.

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

Die Kapazitätsmenge für die Auto-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 Auto-Scaling-Gruppe muss weder ab- noch aufskaliert werden. 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 Auto-Scaling-Gruppe. Die 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 Auto-Scaling-Gruppe. Die Auto Scaling Scaling-Gruppe verwendet diesen Wert, um EC2 Container-Instances zu beenden und sie dann vom Cluster abzumelden.

Die Auto-Scaling-Gruppe folgt der Beendigungsrichtlinie der Gruppe, um zu bestimmen, welche Instances sie bei Abskalieren-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 Steuern Sie die Instanzen, die Amazon ECS beendet. Weitere Informationen darüber, wie Auto Scaling Scaling-Gruppen Instances beenden, finden Sie unter Steuern, welche Auto Scaling Scaling-Instances während der Skalierung beendet werden im Amazon EC2 Auto 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 Auto-Scaling-Gruppe, die einem Kapazitätsanbieter zugeordnet ist, der über andere Skalierungsrichtlinien verfügt als die, die Amazon ECS verwaltet.

  • Wenn Amazon ECS ab 0 Instances skaliert, 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 Auto-Scaling-Gruppen benötigt der Benutzer, die Gruppe oder die Rolle, der bzw. die die Kapazitätsanbieter erstellt, die autoscaling:CreateOrUpdateTags-Berechtigung. Dies liegt daran, dass Amazon ECS an die Auto-Scaling-Gruppe ein Tag hinzufügt, wenn sie es dem Kapazitätsanbieter zuordnet.

    Wichtig

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

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

  • Wenn Auto Scaling (verwaltete Skalierung) aktiviert ist, kann ein Kapazitätsanbieter nur mit einem Cluster gleichzeitig verbunden sein. 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 unter 100% liegt, muss die Platzierungsstrategie die binpack Strategie verwenden, ohne dass die spread Strategie eine höhere Ordnung als die binpack Strategie hat. Dadurch wird verhindert, dass der Kapazitätsanbieter eine Skalierung durchführt, bis jede Aufgabe über eine eigene Instanz verfügt oder das Limit erreicht ist.

Auto Scaling von Clustern aktivieren

Sie können die auto Clusterskalierung mithilfe der Konsole oder der aktivieren AWS CLI.

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

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

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

  1. Vor dem Erstellen des Kapazitätsanbieters müssen Sie eine Auto-Scaling-Gruppe erstellen. Weitere Informationen finden Sie unter Auto Scaling Scaling-Gruppen im Amazon EC2 Auto Scaling Scaling-Benutzerhandbuch.

  2. Wird verwendetput-cluster-capacity-providers, um den Cluster-Kapazitätsanbieter zu ändern. Weitere Informationen finden Sie unter auto Skalierung des Amazon ECS-Clusters aktivieren.