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.
Schnellere automatische Skalierung mit hochauflösenden Messwerten
Amazon ECS veröffentlicht CPUUtilization MemoryUtilization Metriken standardmäßig mit einer Auflösung von 60 Sekunden. Sie können eine Auflösung von 20 Sekunden konfigurieren, um die automatische Service-Skalierung zu beschleunigen.
Die folgenden vordefinierten Metriken mit hoher Auflösung sind für Skalierungsrichtlinien zur Zielverfolgung verfügbar:
| PredefinedMetricType | Description |
|---|---|
ECSServiceAverageCPUUtilizationHighResolution |
Durchschnittliche CPU-Auslastung bei einer Auflösung von 20 Sekunden |
ECSServiceAverageMemoryUtilizationHighResolution |
Durchschnittliche Speicherauslastung bei einer Auflösung von 20 Sekunden |
Erstellen Sie einen neuen Service mit hochauflösenden Metriken für eine schnellere automatische Skalierung
-
Wählen Sie auf der Seite Cluster den Cluster aus, in dem Sie den Service erstellen möchten.
-
Wählen Sie im Abschnitt Dienste die Option Erstellen aus.
-
Wählen Sie im Formular Dienst erstellen im Abschnitt Überwachungskonfiguration die Option Metrikkonfiguration hinzufügen aus.
-
Wählen Sie als Metrikname die Metrik aus, die Sie mit hoher Auflösung erfassen möchten. Wählen Sie
CPUUtilizationoderMemoryUtilization. -
Wählen Sie für Auflösung (Sekunden) den Wert 20 aus.
-
(Optional) Um beide Metriken mit hoher Auflösung hinzuzufügen, wählen Sie erneut Messobjektkonfiguration hinzufügen aus und wiederholen Sie die beiden vorherigen Schritte für die andere Metrik.
-
Wählen Sie im Abschnitt Service Auto Scaling die Option Service Auto Scaling verwenden aus.
-
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 Höchstanzahl an Aufgaben die Obergrenze der Anzahl der Aufgaben an, die das Service-Auto-Scaling verwenden kann. Die gewünschte Anzahl wird diese Anzahl nicht überschreiten.
-
Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.
-
Wählen Sie als Metriktyp die entsprechende hochauflösende Metrik aus. Wählen Sie beispielsweise aus,
ECSServiceAverageCPUUtilizationHighResolutionob Sie mitCPUUtilizationeiner Auflösung von 20 Sekunden oderECSServiceAverageMemoryUtilizationHighResolutionmit einer Auflösung von 20 Sekunden konfiguriertMemoryUtilizationhaben. -
Geben Sie als Zielwert den Zielauslastungsprozentsatz ein. Service Auto Scaling skaliert Ihre Kapazität so lange, bis die durchschnittliche Auslastung den Zielwert erreicht hat oder bis die von Ihnen angegebene maximale Anzahl von Aufgaben erreicht ist.
-
Konfigurieren Sie unter Zusätzliche Einstellungen Folgendes:
-
Geben Sie für die Scale-out Abklingzeit die Wartezeit in Sekunden ein, bis eine vorherige Scale-Out-Aktivität wirksam wird.
-
Geben Sie für die Scale-in Abklingzeit die Zeit in Sekunden ein, nach der eine Scale-In-Aktivität abgeschlossen ist, bevor eine weitere Scale-In-Aktivität beginnen kann.
-
-
Wählen Sie Erstellen, um den Service zu erstellen.
-
Erstellen Sie den Dienst mit der Überwachungskonfiguration mithilfe des Befehls create-service.
aws ecs create-service --regionus-east-1\ --clustermy-cluster\ --service-namemy-service\ --task-definitionmy-app:1\ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
Registrieren Sie den Dienst mit dem Befehl https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html register-scalable-target als skalierbares Ziel.
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --min-capacity1\ --max-capacity10\ --regionus-east-1 -
Erstellen Sie mithilfe des Befehls put-scaling-policy eine Ziel-Tracking-Skalierungsrichtlinie mit einer vordefinierten Metrik mit hoher Auflösung. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
Stellen Sie sicher, dass die Richtlinie mithilfe des Befehls describe-scaling-policies erstellt wurde. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-policies.html
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1
Aktualisieren Sie einen vorhandenen Dienst, um hochauflösende Metriken für eine schnellere automatische Skalierung zu verwenden
Die Aktualisierung eines vorhandenen Dienstes zur Verwendung hochauflösender Metriken für eine schnellere automatische Service-Skalierung erfolgt in zwei Schritten. Sie müssen zuerst die Überwachungsauflösung aktualisieren, was eine Servicebereitstellung auslöst. Nachdem die Bereitstellung erfolgreich abgeschlossen wurde und alle Aufgaben Messwerte mit einer Auflösung von 20 Sekunden ausgeben, können Sie eine Richtlinie zur Skalierung mit hoher Auflösung konfigurieren.
Wichtig
Wenn Ihr Service zuvor eine metrische Auflösung von 60 Sekunden verwendet hat, sind hochauflösende Metriken für die Skalierungsrichtlinie erst auf der Amazon ECS-Konsole verfügbar, nachdem Sie Ihren Service auf eine metrische Auflösung von 20 Sekunden aktualisiert haben und die Servicebereitstellung abgeschlossen ist.
Schritt 1: Aktualisieren Sie die Monitoring-Auflösung
-
Wählen Sie auf der Seite Cluster den Cluster aus, der den Service enthält, den Sie aktualisieren möchten.
-
Wählen Sie im Abschnitt Dienste den Dienst aus und klicken Sie auf Aktualisieren.
-
Wählen Sie im Formular Update Service im Abschnitt Monitoring-Konfiguration die Option Messobjektkonfiguration hinzufügen aus.
-
Wählen Sie als Metrikname die Metrik aus, die Sie mit hoher Auflösung erfassen möchten. Wählen Sie
CPUUtilizationoderMemoryUtilization. -
Wählen Sie für Auflösung (Sekunden) den Wert 20 aus.
-
(Optional) Um beide Metriken mit hoher Auflösung hinzuzufügen, wählen Sie erneut Messobjektkonfiguration hinzufügen aus und wiederholen Sie die beiden vorherigen Schritte für die andere Metrik.
-
Wählen Sie „Aktualisieren“, um die Änderung zu übertragen. Dies löst eine Servicebereitstellung aus.
-
Warten Sie, bis die Bereitstellung abgeschlossen ist. Sie können den Fortschritt auf der Seite mit den Dienstdetails auf der Registerkarte Bereitstellungen überwachen.
Anmerkung
Die Optionen für hochauflösende Skalierungsmetriken sind im Abschnitt Service Auto Scaling ausgegraut, bis die Bereitstellung erfolgreich ist und alle Aufgaben mit einer Auflösung von 20 Sekunden ausgegeben werden.
Schritt 2: Konfigurieren Sie die Richtlinie zur Skalierung mit hoher Auflösung
Nach Abschluss der Bereitstellung konfigurieren Sie die Skalierungsrichtlinie mit einer der folgenden Methoden:
- Option A: Seite mit den Servicedetails
-
-
Wählen Sie auf der Seite mit den Servicedetails die Registerkarte Service Auto Scaling aus.
-
Wählen Sie Skalierungsrichtlinie erstellen (oder bearbeiten Sie eine vorhandene Richtlinie).
-
Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.
-
Wählen Sie als Metriktyp die Metrik mit hoher Auflösung aus. Zum Beispiel
ECSServiceAverageCPUUtilizationHighResolutionoderECSServiceAverageMemoryUtilizationHighResolution. -
Geben Sie als Zielwert den Zielauslastungsprozentsatz ein.
-
Konfigurieren Sie unter Zusätzliche Einstellungen Folgendes:
-
Geben Sie für die Scale-out Abklingzeit die Wartezeit in Sekunden ein, bis eine vorherige Scale-Out-Aktivität wirksam wird.
-
Geben Sie für die Scale-in Abklingzeit die Zeit in Sekunden ein, nach der eine Scale-In-Aktivität abgeschlossen ist, bevor eine weitere Scale-In-Aktivität beginnen kann.
-
-
Wählen Sie Skalierungsrichtlinie erstellen aus.
-
- Option B: Serviceformular aktualisieren
-
-
Wählen Sie auf der Seite mit den Servicedetails die Option Aktualisieren aus.
-
Wählen Sie im Abschnitt Service Auto Scaling die Option Service Auto Scaling verwenden (falls nicht bereits aktiviert) aus.
-
Geben Sie für Mindestanzahl an Aufgaben die Untergrenze ein.
-
Geben Sie für Maximale Anzahl an Aufgaben die Obergrenze ein.
-
Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.
-
Wählen Sie als Metriktyp die hochauflösende Metrik aus (die jetzt nach Abschluss der Bereitstellung aktiviert ist).
-
Geben Sie als Zielwert den Zielauslastungsprozentsatz ein.
-
Stellen Sie unter Zusätzliche Einstellungen die Scale-out Abklingzeit und die Scale-in Abklingzeit ein.
-
Wähle „Aktualisieren“, um die Änderung zu übertragen.
-
Schritt 1: Monitoring-Auflösung aktualisieren
-
Aktualisieren Sie den Dienst mit der Überwachungskonfiguration mithilfe des Befehls update-service.
aws ecs update-service --regionus-east-1\ --clustermy-cluster\ --servicemy-service\ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
Warten Sie, bis die Bereitstellung abgeschlossen ist. Sie können den Fortschritt mit dem Befehl describe-services überwachen und den Bereitstellungsstatus überprüfen.
aws ecs describe-services --regionus-east-1\ --clustermy-cluster\ --servicesmy-service -
Stellen Sie nach Abschluss der Bereitstellung sicher, dass die Überwachungskonfiguration aktiv ist, indem Sie die Service-Version beschreiben. Rufen Sie den ARN der aktiven Dienstrevision aus der
describe-servicesAusgabe ab und führen Sie dann Folgendes aus:aws ecs describe-service-revisions --regionus-east-1\ --service-revision-arnsarn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789Bestätigen Sie, dass die Überwachungskonfiguration in der Antwort angezeigt wird:
{ "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
Schritt 2: Konfigurieren Sie die Richtlinie zur Skalierung mit hoher Auflösung
-
Registrieren Sie den Dienst als skalierbares Ziel, falls er noch nicht registriert ist, indem Sie den Befehl https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html register-scalable-target verwenden.
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --min-capacity1\ --max-capacity10\ --regionus-east-1 -
Erstellen Sie mithilfe des Befehls put-scaling-policy eine Ziel-Tracking-Skalierungsrichtlinie mit einer vordefinierten Metrik mit hoher Auflösung. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html Das folgende Beispiel zielt auf eine 50-prozentige CPU-Auslastung ab:
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
Stellen Sie sicher, dass die Richtlinie erstellt wurde:
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1
Überprüfen Sie die schnellere automatische Skalierung von Diensten
Teil 1: Überprüfen Sie, ob hochauflösende Metriken veröffentlicht werden
-
Navigieren Sie zur CloudWatch Konsole.
-
Wählen Sie im Navigationsbereich Metriken und dann Alle Metriken aus.
-
Wählen Sie den Namespace AWS/ECS aus.
-
Wählen Sie ClusterName, ServiceName.
-
Suchen Sie die
CPUUtilizationundMemoryUtilization-Metriken für Ihren Service. -
Stellen Sie den Zeitraum auf 20 Sekunden ein. Sie sollten Datenpunkte in Intervallen von 20 Sekunden sehen, um zu bestätigen, dass hochauflösende Metriken aktiv sind.
Teil 2: Vergewissern Sie sich, dass die Skalierungsrichtlinie die hochauflösende Metrik verwendet
-
Wählen Sie auf der Seite mit den Servicedetails die Registerkarte Service Auto Scaling aus.
-
Sehen Sie sich Ihre vorhandenen Skalierungsrichtlinien an und vergewissern Sie sich, dass für die Metrik eine Variante mit hoher Auflösung (
ECSServiceAverageCPUUtilizationHighResolutionoderECSServiceAverageMemoryUtilizationHighResolution) festgelegt ist. -
Überprüfen Sie dies alternativ mit der CLI:
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1Vergewissern Sie sich, dass
PredefinedMetricTypein der Antwort eine Metrik mit hoher Auflösung angegeben ist.
Überlegungen
-
Die Überwachung von Konfigurationsänderungen führt zu einer neuen Service-Revision und erfordert eine Servicebereitstellung. Die Metrik für die Skalierung mit hoher Auflösung ist erst verfügbar, wenn die Bereitstellung abgeschlossen ist und alle Aufgaben mit einer Auflösung von 20 Sekunden ausgegeben werden.
-
High-resolution Metriken werden für Dienste unterstützt, die Application Load Balancer und Network Load Balancer verwenden. Dienste, die Classic Load Balancer ohne Zielgruppen verwenden, werden nicht unterstützt.
-
High-resolution Metriken werden für Dienste, die die Typen
CODE_DEPLOYoderEXTERNALDeployment Controller verwenden, nicht unterstützt. -
Sie können die Überwachungskonfiguration für Ihren Service mithilfe von anzeigen
DescribeServiceRevisions. Die Überwachungskonfiguration wird inCreateServiceunserenUpdateServiceAntworten nicht zurückgegeben.