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 auto Skalierung mit hochauflösenden Metriken
Standardmäßig veröffentlicht CPUUtilization Amazon ECS MemoryUtilization Messwerte mit einer Auflösung von 60 Sekunden. Sie können eine Auflösung von 20 Sekunden konfigurieren, um die auto Skalierung von Diensten zu beschleunigen.
Die folgenden hochauflösenden vordefinierten Metriken 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 auto 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 Create aus.
-
Wählen Sie im Formular Dienst erstellen im Abschnitt Monitoring-Konfiguration die Option Metrikkonfiguration hinzufügen aus.
-
Wählen Sie unter 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) die Option 20 aus.
-
(Optional) Um beide Metriken mit hoher Auflösung hinzuzufügen, wählen Sie erneut Metrikkonfiguration hinzufügen aus und wiederholen Sie die vorherigen beiden 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 Metrik mit hoher Auflösung aus. Wählen Sie beispielsweise aus,
ECSServiceAverageCPUUtilizationHighResolutionob Sie eine Auflösung von 20 Sekunden oderECSServiceAverageMemoryUtilizationHighResolutioneine Auflösung von 20 Sekunden konfiguriertMemoryUtilizationhaben.CPUUtilization -
Geben Sie als Zielwert den Prozentsatz der Zielauslastung ein. Service Auto Scaling skaliert Ihre Kapazität, bis die durchschnittliche Auslastung den Zielwert erreicht 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 Zeit in Sekunden ein, nach der gewartet werden soll, bis eine vorherige Scale-Out-Aktivität wirksam wird.
-
Geben Sie für die Scale-in Abklingzeit die Zeit in Sekunden nach Abschluss einer Scale-In-Aktivität ein, bevor eine weitere Scale-In-Aktivität beginnen kann.
-
-
Wählen Sie Create, 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 mithilfe des Befehls 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 -
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 -
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 Service, um hochauflösende Metriken für eine schnellere auto Skalierung zu verwenden
Die Aktualisierung eines vorhandenen Dienstes zur Verwendung hochauflösender Metriken für eine schnellere auto Service-Skalierung erfolgt in zwei Schritten. Sie müssen zuerst die Überwachungsauflösung aktualisieren, wodurch eine Servicebereitstellung ausgelöst wird. Nachdem die Bereitstellung erfolgreich abgeschlossen wurde und alle Aufgaben Metriken mit einer Auflösung von 20 Sekunden ausgeben, können Sie dann eine Skalierungsrichtlinie 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 in der Amazon ECS-Konsole verfügbar, nachdem Sie Ihren Service auf die metrische Auflösung von 20 Sekunden aktualisiert haben und die Servicebereitstellung abgeschlossen ist.
Schritt 1: Monitoring-Auflösung aktualisieren
-
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 Service aus und klicken Sie auf Aktualisieren.
-
Wählen Sie im Formular Service aktualisieren im Abschnitt Monitoring-Konfiguration die Option Metrikkonfiguration hinzufügen aus.
-
Wählen Sie unter 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) die Option 20 aus.
-
(Optional) Um beide Metriken mit hoher Auflösung hinzuzufügen, wählen Sie erneut Metrikkonfiguration hinzufügen aus und wiederholen Sie die vorherigen beiden Schritte für die andere Metrik.
-
Wählen Sie „Aktualisieren“, um die Änderung zu übermitteln. Dies löst eine Servicebereitstellung aus.
-
Warten Sie, bis die Bereitstellung abgeschlossen ist. Sie können den Fortschritt auf der Seite mit den Servicedetails auf der Registerkarte Bereitstellungen überwachen.
Anmerkung
Die metrischen Optionen für hochauflösende Skalierung sind im Bereich 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 für die Skalierung mit hoher Auflösung
Nachdem die Bereitstellung abgeschlossen ist, 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 eine bestehende Richtlinie bearbeiten).
-
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 unter Zielwert den Prozentsatz der Zielauslastung ein.
-
Konfigurieren Sie unter Zusätzliche Einstellungen Folgendes:
-
Geben Sie für die Scale-out Abklingzeit die Zeit in Sekunden ein, nach der gewartet werden soll, bis eine vorherige Scale-Out-Aktivität wirksam wird.
-
Geben Sie für die Scale-in Abklingzeit die Zeit in Sekunden nach Abschluss einer Scale-In-Aktivität ein, 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 aus (falls nicht bereits aktiviert).
-
Geben Sie für Mindestanzahl an Aufgaben die Untergrenze ein.
-
Geben Sie für Maximale Anzahl von 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 Metrik mit hoher Auflösung aus (die jetzt nach Abschluss der Bereitstellung aktiviert ist).
-
Geben Sie als Zielwert den Prozentsatz der Zielauslastung ein.
-
Stellen Sie unter Zusätzliche Einstellungen die Scale-out Abklingzeit und die Scale-in Abklingzeit ein.
-
Wählen Sie „Aktualisieren“, um die Änderung zu übermitteln.
-
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-Revision 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/1234567890123456789Vergewissern Sie sich, dass die Überwachungskonfiguration in der Antwort erscheint:
{ "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
Schritt 2: Konfigurieren Sie die Skalierungsrichtlinie für hohe Auflösung
-
Registrieren Sie den Dienst mit dem Befehl register-scalable-target als skalierbares Ziel, falls er noch nicht registriert ist.
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 Skalierungsrichtlinie für die Zielverfolgung mit einer hochauflösenden vordefinierten Metrik. Das folgende Beispiel zielt auf eine CPU-Auslastung von 50% 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
Validieren Sie die schnellere auto Skalierung von Diensten
Teil 1: Stellen Sie sicher, dass 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
MemoryUtilizationMetrikenCPUUtilizationund Kennzahlen für Ihren Service. -
Stellen Sie den Zeitraum auf 20 Sekunden ein. In Intervallen von 20 Sekunden sollten Ihnen Datenpunkte angezeigt werden, die bestätigen, dass hochauflösende Messwerte aktiv sind.
Teil 2: Stellen Sie sicher, 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 bestehenden Skalierungsrichtlinien an und vergewissern Sie sich, dass die Metrik auf eine Variante mit hoher Auflösung (
ECSServiceAverageCPUUtilizationHighResolutionoderECSServiceAverageMemoryUtilizationHighResolution) eingestellt ist. -
Überprüfen Sie 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 auf eine Metrik mit hoher Auflösung eingestellt ist.
Überlegungen
-
Die Überwachung von Konfigurationsänderungen führt zu einer neuen Service-Revision und erfordert eine Servicebereitstellung. Die Skalierungsmetrik 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 Balancers und Network Load Balancers verwenden. Dienste, die Classic Load Balancers 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 inCreateServiceoder in denUpdateServiceAntworten nicht zurückgegeben.