View a markdown version of this page

Schnellere automatische Skalierung mit hochauflösenden Messwerten - 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.

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

  1. Wählen Sie auf der Seite Cluster den Cluster aus, in dem Sie den Service erstellen möchten.

  2. Wählen Sie im Abschnitt Dienste die Option Erstellen aus.

  3. Wählen Sie im Formular Dienst erstellen im Abschnitt Überwachungskonfiguration die Option Metrikkonfiguration hinzufügen aus.

  4. Wählen Sie als Metrikname die Metrik aus, die Sie mit hoher Auflösung erfassen möchten. Wählen Sie CPUUtilization oder MemoryUtilization.

  5. Wählen Sie für Auflösung (Sekunden) den Wert 20 aus.

  6. (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.

  7. Wählen Sie im Abschnitt Service Auto Scaling die Option Service Auto Scaling verwenden aus.

  8. 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.

  9. 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.

  10. Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.

  11. Wählen Sie als Metriktyp die entsprechende hochauflösende Metrik aus. Wählen Sie beispielsweise aus, ECSServiceAverageCPUUtilizationHighResolution ob Sie mit CPUUtilization einer Auflösung von 20 Sekunden oder ECSServiceAverageMemoryUtilizationHighResolution mit einer Auflösung von 20 Sekunden konfiguriert MemoryUtilization haben.

  12. 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.

  13. Konfigurieren Sie unter Zusätzliche Einstellungen Folgendes:

    1. Geben Sie für die Scale-out Abklingzeit die Wartezeit in Sekunden ein, bis eine vorherige Scale-Out-Aktivität wirksam wird.

    2. 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.

  14. Wählen Sie Erstellen, um den Service zu erstellen.

  1. Erstellen Sie den Dienst mit der Überwachungskonfiguration mithilfe des Befehls create-service.

    aws ecs create-service --region us-east-1 \ --cluster my-cluster \ --service-name my-service \ --task-definition my-app:1 \ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. 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-capacity 1 \ --max-capacity 10 \ --region us-east-1
  3. 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-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  4. 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 \ --region us-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

  1. Wählen Sie auf der Seite Cluster den Cluster aus, der den Service enthält, den Sie aktualisieren möchten.

  2. Wählen Sie im Abschnitt Dienste den Dienst aus und klicken Sie auf Aktualisieren.

  3. Wählen Sie im Formular Update Service im Abschnitt Monitoring-Konfiguration die Option Messobjektkonfiguration hinzufügen aus.

  4. Wählen Sie als Metrikname die Metrik aus, die Sie mit hoher Auflösung erfassen möchten. Wählen Sie CPUUtilization oder MemoryUtilization.

  5. Wählen Sie für Auflösung (Sekunden) den Wert 20 aus.

  6. (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.

  7. Wählen Sie „Aktualisieren“, um die Änderung zu übertragen. Dies löst eine Servicebereitstellung aus.

  8. 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
  1. Wählen Sie auf der Seite mit den Servicedetails die Registerkarte Service Auto Scaling aus.

  2. Wählen Sie Skalierungsrichtlinie erstellen (oder bearbeiten Sie eine vorhandene Richtlinie).

  3. Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.

  4. Wählen Sie als Metriktyp die Metrik mit hoher Auflösung aus. Zum Beispiel ECSServiceAverageCPUUtilizationHighResolution oder ECSServiceAverageMemoryUtilizationHighResolution.

  5. Geben Sie als Zielwert den Zielauslastungsprozentsatz ein.

  6. Konfigurieren Sie unter Zusätzliche Einstellungen Folgendes:

    1. Geben Sie für die Scale-out Abklingzeit die Wartezeit in Sekunden ein, bis eine vorherige Scale-Out-Aktivität wirksam wird.

    2. 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.

  7. Wählen Sie Skalierungsrichtlinie erstellen aus.

Option B: Serviceformular aktualisieren
  1. Wählen Sie auf der Seite mit den Servicedetails die Option Aktualisieren aus.

  2. Wählen Sie im Abschnitt Service Auto Scaling die Option Service Auto Scaling verwenden (falls nicht bereits aktiviert) aus.

  3. Geben Sie für Mindestanzahl an Aufgaben die Untergrenze ein.

  4. Geben Sie für Maximale Anzahl an Aufgaben die Obergrenze ein.

  5. Wählen Sie für Scaling policy type (Typ der Skalierungsrichtlinie) Target tracking (Ziel-Nachverfolgung) aus.

  6. Wählen Sie als Metriktyp die hochauflösende Metrik aus (die jetzt nach Abschluss der Bereitstellung aktiviert ist).

  7. Geben Sie als Zielwert den Zielauslastungsprozentsatz ein.

  8. Stellen Sie unter Zusätzliche Einstellungen die Scale-out Abklingzeit und die Scale-in Abklingzeit ein.

  9. Wähle „Aktualisieren“, um die Änderung zu übertragen.

Schritt 1: Monitoring-Auflösung aktualisieren

  1. Aktualisieren Sie den Dienst mit der Überwachungskonfiguration mithilfe des Befehls update-service.

    aws ecs update-service --region us-east-1 \ --cluster my-cluster \ --service my-service \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. 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 --region us-east-1 \ --cluster my-cluster \ --services my-service
  3. 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-services Ausgabe ab und führen Sie dann Folgendes aus:

    aws ecs describe-service-revisions --region us-east-1 \ --service-revision-arns arn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789

    Bestä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

  1. 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-capacity 1 \ --max-capacity 10 \ --region us-east-1
  2. 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-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  3. 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 \ --region us-east-1

Überprüfen Sie die schnellere automatische Skalierung von Diensten

Teil 1: Überprüfen Sie, ob hochauflösende Metriken veröffentlicht werden

  1. Navigieren Sie zur CloudWatch Konsole.

  2. Wählen Sie im Navigationsbereich Metriken und dann Alle Metriken aus.

  3. Wählen Sie den Namespace AWS/ECS aus.

  4. Wählen Sie ClusterName, ServiceName.

  5. Suchen Sie die CPUUtilization und MemoryUtilization -Metriken für Ihren Service.

  6. 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

  1. Wählen Sie auf der Seite mit den Servicedetails die Registerkarte Service Auto Scaling aus.

  2. 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.

  3. Ü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 \ --region us-east-1

    Vergewissern Sie sich, dass PredefinedMetricType in 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_DEPLOY oder EXTERNAL Deployment Controller verwenden, nicht unterstützt.

  • Sie können die Überwachungskonfiguration für Ihren Service mithilfe von anzeigenDescribeServiceRevisions. Die Überwachungskonfiguration wird in CreateService unseren UpdateService Antworten nicht zurückgegeben.