Geplante Aktionen verwenden, um Prognosewerte für Amazon ECS zu überschreiben
Manchmal haben Sie möglicherweise zusätzliche Informationen zu Ihren zukünftigen Anwendungsanforderungen, die bei der Prognoseberechnung nicht berücksichtigt werden können. Prognoseberechnungen können beispielsweise die Aufgaben unterschätzen, die für ein bevorstehendes Marketing-Ereignis benötigt wird. Sie können geplante Aktionen verwenden, um die Prognose in zukünftigen Zeiträumen vorübergehend zu überschreiben. Die geplanten Aktionen können auf einer wiederkehrenden Basis oder zu einem bestimmten Zeitpunkt ausgeführt werden, wenn einmalige Nachfrageschwankungen auftreten.
Sie können beispielsweise eine geplante Aktion mit einer höheren Anzahl an Aufgaben als die prognostizierte erstellen. Zur Laufzeit aktualisiert Amazon ECS die Mindestanzahl von Aufgaben in Ihrem Service. Da die prädiktive Skalierung die Anzahl der Aufgaben optimiert, wird eine geplante Aktion mit einer minimalen Anzahl an Aufgaben, die höher als die Prognosewerte ist, berücksichtigt. Dadurch wird verhindert, dass die Anzahl der Aufgaben geringer ist als erwartet. Um das Überschreiben der Prognose zu stoppen, setzen Sie über eine zweite geplante Aktion die minimale Anzahl an Aufgaben auf ihre ursprüngliche Einstellung zurück.
Im folgenden Verfahren werden die Schritte zum Überschreiben der Prognose in zukünftigen Zeiträumen erläutert.
Themen
Wichtig
In diesem Thema wird davon ausgegangen, dass Sie versuchen, die Prognose zu überschreiben, um auf eine höhere Kapazität als die prognostizierte zu skalieren. Wenn Sie die Anzahl der Aufgaben vorübergehend verringern müssen, ohne dass dies durch eine Richtlinie zur prädiktiven Skalierung beeinträchtigt wird, verwenden Sie stattdessen den Modus Nur Prognose. Im Modus Nur Prognose generiert die prädiktive Skalierung zwar weiterhin Prognosen, die Anzahl der Aufgaben wird jedoch nicht automatisch erhöht. Anschließend können Sie die Ressourcennutzung überwachen und die Anzahl der Aufgaben nach Bedarf manuell verringern.
Schritt 1: (Optional) Analysieren von Zeitreihendaten
Beginnen Sie mit der Analyse der Prognose-Zeitreihendaten. Dies ist ein optionaler Schritt, aber es ist hilfreich, wenn Sie die Details der Prognose verstehen möchten.
-
Rufen Sie die Prognose ab
Nachdem die Prognose erstellt wurde, können Sie einen bestimmten Zeitraum in der Prognose abfragen. Ziel der Abfrage ist es, einen vollständigen Überblick über die Zeitreihendaten für einen bestimmten Zeitraum zu erhalten.
Ihre Abfrage kann Prognosedaten bis zwei Tage in die Zukunft enthalten. Wenn Sie die prädiktive Skalierung eine Weile verwenden, können Sie auch auf Ihre früheren Prognosedaten zugreifen. Der maximale Zeitraum zwischen der Start- und Endzeit beträgt jedoch 30 Tage.
Um die Prognose mit dem AWS CLI-Befehl get-predictive-scaling-forecast zu erhalten, geben Sie die folgenden Parameter im Befehl an:
-
Geben Sie den Namen des Clusters im Parameter
resource-idan. -
Geben Sie den Namen der Richtlinie im
--policy-name-Parameter an. -
Geben Sie die Startzeit im
--start-time-Parameter an, um nur prognostizierte Daten für den angegebenen Zeitpunkt oder danach zurückzugeben. -
Geben Sie die Endzeit im
--end-time-Parameter an, um nur prognostizierte Daten für den angegebenen Zeitpunkt oder davor zurückzugeben.
aws application-autoscaling get-predictive-scaling-forecast \ --service-namespace ecs \ --resource-id service/MyCluster/test \ --policy-namecpu40-predictive-scaling-policy\ --scalable-dimension ecs:service:DesiredCount \ --start-time "2021-05-19T17:00:00Z" \ --end-time "2021-05-19T23:00:00Z"Bei erfolgreicher Ausführung gibt der Befehl Daten zurück, die in etwa wie folgt aussehen:
{ "LoadForecast": [ { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 153.0655799339254, 128.8288551285919, 107.1179447150675, 197.3601844551528, 626.4039934516954, 596.9441277518481, 677.9675713779869 ], "MetricSpecification": { "TargetValue": 40.0, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } } ], "CapacityForecast": { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 2.0, 2.0, 2.0, 2.0, 4.0, 4.0, 4.0 ] }, "UpdateTime": "2021-05-19T01:52:50.118000+00:00" }Die Antwort enthält zwei Prognosen:
LoadForecastundCapacityForecast.LoadForecastzeigt die stündliche Lastprognose an.CapacityForecastzeigt Prognosewerte für die Kapazität an, die stündlich benötigt wird, um die prognostizierte Last zu verarbeiten, während einTargetValuevon 40,0 (40 % durchschnittliche CPU-Auslastung) aufrechterhalten bleibt. -
-
Identifizieren des Zielzeitraums
Ermitteln Sie die Stunde oder die Stunden, zu der/zu denen die einmalige Nachfrageschwankung stattfinden soll. Denken Sie daran, dass die in der Prognose angezeigten Datumsangaben und Uhrzeiten in UTC angegeben sind.
Schritt 2: Erstellen von zwei geplanten Aktionen
Erstellen Sie als Nächstes zwei geplante Aktionen für einen bestimmten Zeitraum, in dem Ihre Anwendung eine höhere Last aufweist als die prognostizierte Last. Wenn Sie beispielsweise während eines Marketing-Ereignisses für einen begrenzten Zeitraum ein erhöhtes Daten-Volume erwarten, können Sie eine einmalige Aktion planen, um die Mindestkapazität bei deren Beginn zu aktualisieren. Planen Sie dann eine weitere Aktion, um die Mindestkapazität auf die ursprüngliche Einstellung zurückzusetzen, wenn das Ereignis endet.
Ö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 aus.
Die Richtlinien-Seite wird angezeigt.
-
Wählen Sie Geplante Aktionen und dann Erstellen aus.
Die Seite Geplante Aktion erstellen wird angezeigt.
-
Geben Sie für Aktionsname einen eindeutigen Namen ein.
-
Wählen Sie für Zeitzone eine Zeitzone aus.
Alle aufgelisteten Zeitzonen stammen aus der IANA-Zeitzonendatenbank. Weitere Informationen finden Sie unter Liste der Zeitzonen der TZ-Datenbank
. -
Geben Sie als Startzeit das Datum und die Uhrzeit ein, zu der die Aktion gestartet wird.
-
Wählen Sie für Recurrence (Wiederholung) Once (Einmal) aus.
-
Geben Sie unter Aufgabenanpassungen für Minimum einen Wert ein, der kleiner oder gleich der maximalen Anzahl von Aufgaben ist.
-
Wählen Sie Geplante Aktion erstellen.
Die Richtlinien-Seite wird angezeigt.
-
Konfigurieren Sie eine zweite geplante Aktion, um die Mindestanzahl an Aufgaben am Ende des Ereignisses wieder auf die ursprüngliche Einstellung zurückzustellen. Die prädiktive Skalierung kann die Kapazität nur skalieren, wenn der Wert, den Sie für Minimum angeben, niedriger ist als die Prognosewerte.
Erstellen von zwei geplanten Aktionen für einmalige Ereignisse (AWS CLI)
Um die AWS CLI zu verwenden, um die geplanten Aktionen zu erstellen, verwenden Sie den Befehl put-scheduled-update-group-action.
Lassen Sie uns als Beispiel einen Zeitplan definieren, der am 19. Mai um 17:00 Uhr acht Stunden lang eine Mindestkapazität von drei Instances beibehält. Die folgenden Befehle veranschaulichen die Implementierung dieses Szenarios.
Der erste Befehl put-scheduled-update-group-action weist Amazon EC2 Auto Scaling an, die Mindestkapazität der angegebenen Auto-Scaling-Gruppe am 19. Mai 2021 um 17:00 Uhr UTC zu aktualisieren.
aws autoscaling put-scheduled-update-group-action --scheduled-action-namemy-event-start\ --auto-scaling-group-namemy-asg--start-time "2021-05-19T17:00:00Z" --minimum-capacity3
Der zweite Befehl weist Amazon EC2 Auto Scaling an, die Mindestkapazität der Gruppe am 20. Mai 2021 um 1:00 Uhr UTC auf eins zu setzen.
aws autoscaling put-scheduled-update-group-action --scheduled-action-namemy-event-end\ --auto-scaling-group-namemy-asg--start-time "2021-05-20T01:00:00Z" --minimum-capacity1
Nachdem Sie der Auto-Scaling-Gruppe diese geplanten Aktionen hinzugefügt haben, führt Amazon EC2 Auto Scaling folgende Schritte aus:
-
Um 17:00 Uhr UTC am 19. Mai 2021 wird die erste geplante Aktion ausgeführt. Wenn die Gruppe derzeit weniger als drei Instances hat, wird die Gruppe auf drei Instances skaliert. Während dieser Zeit und für die Dauer der nächsten acht Stunden kann Amazon EC2 Auto Scaling weiterhin skaliert werden, wenn die prognostizierte Kapazität höher als die tatsächliche Kapazität ist oder wenn eine Richtlinie für dynamische Skalierung in Kraft ist.
-
Um 1:00 Uhr UTC am 20. Mai 2021 wird die zweite geplante Aktion ausgeführt. Dadurch wird die Mindestkapazität am Ende des Ereignisses auf die ursprüngliche Einstellung zurückgesetzt.
Skalierung basierend auf wiederkehrenden Zeitplänen
Um die Prognose jede Woche während des gleichen Zeitraums zu überschreiben, erstellen Sie zwei geplante Aktionen und stellen die Zeit- und Datumslogik mithilfe eines Cron-Ausdrucks bereit.
Der Cron-Ausdruck besteht aus fünf Feldern, getrennt durch Leerzeichen: [Minute] [Stunde] [Tag_des_Monats] [Monat_des_Jahres] [Wochentag]. Felder können alle zulässigen Werte enthalten, einschließlich Sonderzeichen.
Beispielsweise führt der folgende Cron-Ausdruck jeden Dienstag um 6:30 Uhr die Aktion aus. Das Sternchen wird als Platzhalter verwendet, um alle Werte für ein Feld abzugleichen.
30 6 * * 2
Weitere Informationen finden Sie auch unter
Weitere Informationen zur Verwaltung von geplanten Aktionen finden Sie unter Verwenden geplanter Aktionen für die Skalierung von Amazon-ECS-Services.