Service Auto Scaling - Amazon ECS

Service Auto Scaling

Automatische Skalierung ist die Fähigkeit, die gewünschte Anzahl Aufgaben in Ihrem Amazon-ECS-Service automatisch abhängig von der Nachfrage zu erhöhen oder zu verringern. Amazon ECS nutzt den Application Auto Scaling-Service, um diese Funktionalität bereitzustellen. Weitere Informationen finden Sie im Benutzerhandbuch zum Application Auto Scaling.

Amazon ECS veröffentlicht CloudWatch-Metriken mit der durchschnittlichen CPU- und Arbeitsspeichernutzung Ihres Service. Weitere Informationen finden Sie unter Service-Nutzung. Sie können diese und andere CloudWatch-Metriken verwenden, um Ihren Service aufwärts zu skalieren (weitere Aufgaben hinzufügen), um hohen Bedarf zu Spitzenzeiten zu bewältigen, und um Ihren Service abwärts zu skalieren (weniger Aufgaben ausführen), um Kosten in Zeiten geringer Auslastung zu senken.

Amazon ECS-Service Auto Scaling unterstützt die folgenden Typen automatischer Skalierung:

  • Skalierungsrichtlinien für die Ziel-Nachverfolgung: Erhöht oder verringert die Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage eines Zielwerts für eine bestimmte Metrik. Dies ähnelt der Art und Weise, wie ein Thermostat die Temperatur in Ihrem Zuhause konstant hält. Sie wählen eine Temperatur aus und der Thermostat erledigt den Rest.

  • Richtlinien zur schrittweisen Skalierung: Erhöhen oder Verringern der Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage einer Gruppe von Skalierungsanpassungen, die als Schrittanpassungen bezeichnet werden und je nach Ausmaß der Alarmüberschreitung variieren.

  • Geplante Skalierung: Erhöhen oder verringern der Anzahl der Aufgaben, die Ihr Service basierend auf Datum und Uhrzeit ausführt.

Automatische Skalierung und Bereitstellung von Services

Application Auto Scaling deaktiviert Scale-In-Prozesse, während Amazon ECS-Bereitstellungen ausgeführt werden. Scale-Out-Prozesse werden während einer Bereitstellung jedoch weiterhin ausgeführt, es sei denn, sie werden angehalten. Wenn Sie Scale-Out-Prozesse anhalten möchten, während Bereitstellungen ausgeführt werden, führen Sie die folgenden Schritte aus.

  1. Rufen Sie den Befehl describe-scalable-targets auf, indem Sie die Ressourcen-ID des ECS-Services angeben, der dem skalierbaren Ziel in Application Auto Scaling zugeordnet ist (Beispiel: service/default/sample-webapp). Zeichnen Sie die Ausgabe auf. Sie werden diese benötigen, wenn Sie den nächsten Befehl aufrufen.

  2. Rufen Sie den Befehl register-scalable-target auf, indem Sie die Ressourcen-ID, den Namespace und die skalierbare Dimension angeben. Geben Sie true für sowohl DynamicScalingInSuspended als auch DynamicScalingOutSuspended an.

  3. Nach Abschluss der Bereitstellung können Sie den Befehl register-scalable-target aufrufen, um die Skalierung fortzusetzen.

Weitere Informationen finden Sie unter Unterbrechen und Wiederaufnehmen der Skalierung für Application Auto Scaling.

Erforderliche IAM-Berechtigungen für Service Auto Scaling

Service Auto Scaling wird durch eine Kombination der Amazon ECS-, Amazon CloudWatch- und Application Auto Scaling-APIs ermöglicht. Services werden mit Amazon ECS, Alarme mit CloudWatch und Skalierungsrichtlinien mit Application Auto Scaling erstellt.

Neben den Standard-IAM-Berechtigungen für das Erstellen und Aktualisieren von Services, muss der IAM-Benutzer, der auf die Service Auto Scaling-Einstellungen zugreift, über die entsprechenden Berechtigungen für die Services verfügen, die dynamische Skalierung unterstützen. IAM-Benutzer müssen die Berechtigung haben, die Aktionen in der folgenden Beispielrichtlinie zu verwenden.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ecs:DescribeServices", "ecs:UpdateService", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": [ "*" ] } ] }

Die Beispiele für IAM-Richtlinien Beispiel für die Service-Erstellung und Beispiel für die Service-Aktualisierung zeigen die Berechtigungen an, die erforderlich sind, damit IAM-Benutzer Service Auto Scaling in AWS Management Consolebenutzen können.

Der Application Auto Scaling-Service benötigt auch eine Berechtigung, um Ihre Amazon-ECS-Services und CloudWatch-Alarme zu beschreiben, sowie Berechtigungen zum Ändern der gewünschten Anzahl Ihrer Services in Ihrem Namen. Die sns:-Berechtigungen gelten für die Benachrichtigungen, die CloudWatch an ein Amazon-SNS-Thema sendet, wenn ein Schwellenwert überschritten wurde. Wenn Sie die automatische Skalierung für Ihre Amazon-ECS-Services benutzen, wird eine serviceverknüpfte Rolle namens AWSServiceRoleForApplicationAutoScaling_ECSService erstellt. Diese serviceverknüpfte Rolle gewährt die Application Auto Scaling-Berechtigung, die Alarme für Ihre Richtlinien zu beschreiben, die aktuelle Anzahl der laufenden Aufgaben des Services zu überwachen und die gewünschte Anzahl des Services zu ändern. Die ursprüngliche verwaltete Amazon ECS-Rolle für Application Auto Scaling war ecsAutoscaleRole, diese wird jedoch nicht mehr benötigt. Die Service-verknüpfte Rolle ist die Standardrolle für Application Auto Scaling. Weitere Informationen finden Sie unter Serviceverknüpfte Rollen für Application Auto Scaling im Benutzerhandbuch zu Application Auto Scaling.