Eine Richtlinie für die prädiktive Skalierung für Service-Auto-Scaling von Amazon ECS erstellen
Erstellen Sie eine Richtlinie für die prädiktive Skalierung, damit Amazon ECS die Anzahl der Aufgaben, die von Ihrem Service ausgeführt werden, auf Grundlage historischer Daten erhöht oder verringert.
Anmerkung
Ein neuer Service muss Daten für mindestens 24 Stunden bereitstellen, bevor eine Prognose generiert werden kann.
-
Zusätzlich zu den IAM-Standardberechtigungen für das Erstellen und Aktualisieren von Services benötigen Sie zusätzliche Berechtigungen. Weitere Informationen finden Sie unter Erforderliche IAM-Berechtigungen für Service-Auto-Scaling von Amazon ECS.
-
Ermitteln Sie die Metriken, die für die Richtlinie verwendet werden sollen. Die folgenden Metriken sind verfügbar:
-
ECSServiceAverageCPUUtilization – Durchschnittliche CPU-Auslastung, die der Service verwenden soll.
-
ECSServiceAverageMemoryUtilisation – Durchschnittliche Speicherauslastung, die der Service nutzen soll.
-
ALBRequestCountPerTarget – Die durchschnittliche Anzahl von Anfragen pro Minute, die eine Aufgabe idealerweise empfangen sollte.
Sie können alternativ eine benutzerdefinierte Metrik verwenden. Sie müssen die folgenden Werte definieren:
-
Auslastung – eine Metrik, die die volle Auslastung Ihrer Anwendung genau wiedergibt und den Aspekt Ihrer Anwendung darstellt, der für die Skalierung am wichtigsten ist.
-
Skalierungsmetrik – der beste Indikator dafür, wie viel Auslastung für Ihre Anwendung ideal ist.
-
Öffnen Sie die Konsole unter https://console.aws.amazon.com/ecs/v2
. -
Wählen Sie auf der Cluster-Seite den Cluster aus.
-
Wählen Sie auf der Seite mit den Cluster-Details im Abschnitt Services den Service aus.
Die Service-Detailseite wird angezeigt.
-
Wählen Sie Service-Auto-Scaling und dann Anzahl der Aufgaben festlegen aus.
-
Wählen Sie unter Anzahl der Aufgaben für den Amazon-ECS-Service die Option Auto Scaling verwenden aus.
Der Abschnitt Anzahl der Aufgaben wird angezeigt.
-
Geben Sie unter Mindestanzahl an Aufgaben, die Untergrenze der Anzahl der Aufgaben an, die das Service-Auto-Scaling verwenden kann. Die gewünschte Anzahl wird diese Anzahl nicht unterschreiten.
-
Geben Sie unter Maximum die Höchstanzahl der Aufgaben an, die Service-Auto-Scaling verwenden kann. Die gewünschte Anzahl wird diese Anzahl nicht überschreiten.
-
Wählen Sie Speichern.
Die Richtlinien-Seite wird angezeigt.
-
-
Wählen Sie Skalierungsrichtlinie erstellen aus.
Die Seite Richtlinie erstellen wird angezeigt.
-
Wählen Sie für Typ der Skalierungsrichtlinie die Option Prädiktive Skalierung aus.
-
Geben Sie unter Policy name (Richtlinienname) einen Namen für diese Richtlinie ein.
-
Für Metrikpaar wählen Sie Ihre Metriken aus der Liste der Optionen aus.
Wenn Sie Anzahl der Application Load Balancer pro Ziel auswählen, wählen Sie anschließend in Zielgruppe eine Zielgruppe aus. Anzahl and Anforderungen pro Ziel für Application Load Balancer wird nur unterstützt, wenn Sie eine Zielgruppe für Application Load Balancer an Ihren Service angehängt haben.
Wenn Sie Benutzerdefiniertes Metrikpaar auswählen, wählen Sie dann aus den Listen individuelle Metriken für Lastmetrik und Skalierungsmetrik aus.
-
Geben Sie für Zielauslastung den Zielwert für den Prozentsatz der Aufgaben ein, die Amazon ECS aufrechterhalten soll. Service-Auto-Scaling skaliert Ihre Kapazität auf, bis die durchschnittliche Auslastung der Zielauslastung entspricht oder bis sie die von Ihnen angegebene maximale Anzahl von Aufgaben erreicht.
-
Wählen Sie Skalierungsrichtlinie erstellen aus.
Verwenden Sie die AWS CLI folgendermaßen, um die Richtlinien für die prädiktive Skalierung für Ihren Amazon-ECS-Service zu konfigurieren. Ersetzen Sie jedes Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.
Weitere Informationen zu CloudWatch-Metriken, die Sie angeben können, finden Sie unter PredictiveScalingMetricSpecification in der API-Referenz zu Amazon EC2 Auto Scaling.
Beispiel 1: Eine Richtlinie für die prädiktive Skalierung mit vordefiniertem Arbeitsspeicher.
Nachstehend finden Sie eine Beispielrichtlinie mit einer vordefinierten Speicherkonfiguration.
cat policy.json { "MetricSpecifications": [ { "TargetValue":40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization" } } ], "SchedulingBufferTime":3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
Um diese Richtlinie zu erstellen, führen Sie den Befehl put-scaling-policy wie im folgenden Beispiel beschrieben aus und geben Sie die Konfigurationsdatei an.
aws application-autoscaling put-scaling-policy \ --service-namespaceecs\ --regionus-east-1\ --policy-namepredictive-scaling-policy-example\ --resource-idservice/MyCluster/test\ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json
Wenn der Befehl erfolgreich ausgeführt wurde, gibt er den ARN der Richtlinie zurück.
{
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
"Alarms": []
}
Beispiel 2: Eine Richtlinie für die prädiktive Skalierung mit vordefiniertem CPU.
Folgendes ist eine Beispielrichtlinie mit einer vordefinierten CPU-Konfiguration.
cat policy.json { "MetricSpecifications": [ { "TargetValue":0.00000004, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization" } } ], "SchedulingBufferTime":3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
Um diese Richtlinie zu erstellen, führen Sie den Befehl put-scaling-policy wie im folgenden Beispiel beschrieben aus und geben Sie die Konfigurationsdatei an.
aws aas put-scaling-policy \ --service-namespaceecs\ --regionus-east-1\ --policy-namepredictive-scaling-policy-example\ --resource-idservice/MyCluster/test\ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json
Wenn der Befehl erfolgreich ausgeführt wurde, gibt er den ARN der Richtlinie zurück.
{
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
"Alarms": []
}