Utilizzare azioni pianificate per sovrascrivere i valori di previsione per Amazon ECS - Amazon Elastic Container Service

Utilizzare azioni pianificate per sovrascrivere i valori di previsione per Amazon ECS

Talvolta, potrebbero essere disponibili ulteriori informazioni sui requisiti futuri dell'applicazione che il calcolo del forecast non è in grado di prendere in considerazione. Ad esempio, i calcoli del forecast potrebbero sottovalutare le attività necessarie per un evento di marketing imminente. È possibile utilizzare le operazioni pianificate per sostituire temporaneamente il forecast nei periodi di tempo futuri. Le operazioni pianificate possono essere eseguite su base periodica o in una data e un'ora specifiche in cui si manifestino variazioni della domanda una tantum.

Ad esempio, è possibile creare un'operazione pianificata con un numero di attività superiore a quello previsto. In fase di runtime, Amazon ECS aggiorna il numero minimo di attività del servizio. Poiché il dimensionamento predittivo ottimizza il numero di attività, viene osservata un'azione pianificata con un numero di attività minimo superiore ai valori previsti. Ciò fa sì che il numero di attività non sia inferiore al previsto. Per interrompere l'override della previsione, utilizza una seconda operazione pianificata per riportare il numero di attività minimo all'impostazione originale.

La procedura seguente descrive le fasi per sostituire il forecast nei periodi di tempo futuri.

Importante

Questo argomento presuppone che si stia cercando di sostituire la previsione per passare a una capacità superiore a quella prevista. Se è necessario ridurre temporaneamente il numero di attività senza interferenze dovute a una policy di dimensionamento predittivo, utilizzare invece la modalità di sola previsione. In modalità di sola previsione, il dimensionamento predittivo continuerà a generare previsioni, ma non aumenterà automaticamente il numero di attività. È quindi possibile monitorare l'utilizzo delle risorse e ridurre manualmente il numero di attività in base alle esigenze.

Fase 1: analizza i dati di serie temporali (opzionale)

Inizia analizzando i dati delle serie temporali dei forecast. Si tratta di un passaggio facoltativo, ma è utile se desideri comprendere i dettagli del forecast.

  1. Recupero del forecast

    Dopo aver creato il forecast, puoi avviare una query per un periodo di tempo specifico nel forecast. L'obiettivo della query è ottenere lo scenario completo dei dati delle serie temporali per un periodo di tempo specifico.

    La query può includere fino a due giorni di dati di forecast futuro. Se utilizzi il dimensionamento predittivo per un certo periodo di tempo, puoi anche accedere ai dati dei forecast precedenti. Tuttavia, la durata massima tra l'ora di inizio e di fine è 30 giorni.

    Per ottenere il forecast utilizzando il comando get-predictive-scaling-forecast AWS CLI, fornisci i seguenti parametri al comando:

    • Inserire il nome del cluster nel parametro resource-id.

    • Inserire il nome della policy nel parametro --policy-name.

    • Inserisci l'ora di inizio nel parametro --start-time affinché restituisca solo i dati di forecast per il periodo di tempo o dopo l'intervallo di tempo specificato.

    • Inserisci l'ora di fine nel parametro --end-time affinché restituisca solo i dati di forecast per il periodo di tempo precedente all'intervallo di tempo specificato.

    aws application-autoscaling get-predictive-scaling-forecast \ --service-namespace ecs \ --resource-id service/MyCluster/test \ --policy-name cpu40-predictive-scaling-policy \ --scalable-dimension ecs:service:DesiredCount \ --start-time "2021-05-19T17:00:00Z" \ --end-time "2021-05-19T23:00:00Z"

    Se riuscito, il comando restituirà dati simili a quelli dell'esempio seguente:

    { "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" }

    La risposta include due forecast: LoadForecast e CapacityForecast. LoadForecast mostra il forecast del carico orario.CapacityForecast mostra i valori di forecast per la capacità necessaria su base oraria per gestire il carico previsto pur mantenendo un TargetValue di 40,0 (40% utilizzo medio della CPU).

  2. Identificazione del periodo di tempo di destinazione

    Identifica l'ora o le ore in cui deve avvenire la variazione della domanda una tantum. Ricorda che le date e le ore mostrate nel forecast sono in UTC.

Fase 2: creazione di due operazioni pianificate

Ora crea quindi due operazioni pianificate per un periodo di tempo specifico in cui l'applicazione avrà un carico superiore a quello previsto. Ad esempio, se è previsto un evento di marketing che genererà traffico nel tuo sito per un periodo di tempo limitato, puoi pianificare un'operazione singola per aggiornare la capacità minima all'ora di inizio prevista. Quindi, pianifica un'altra operazione per riportare la capacità minima all'impostazione originale al termine dell'evento.

  1. Apri la console all'indirizzo https://console.aws.amazon.com/ecs/v2.

  2. Nella pagina Cluster, scegliere il cluster.

  3. Nella pagina dei dettagli del cluster, nella sezione Servizi, selezionare il servizio.

    Si apre la pagina dei dettagli del servizio.

  4. Scegliere Dimensionamento automatico del servizio.

    Si apre la pagina delle policy.

  5. Scegliere Operazioni pianificate e poi scegliere Crea.

    Si apre la pagina Crea operazione pianificata.

  6. Per Nome operazione, inserire un nome univoco.

  7. In Time zone (Fuso orario), scegli un fuso orario.

    Tutti i fusi orari elencati provengono dal database del fuso orario IANA. Per ulteriori informazioni, consultare List of tz database time zones.

  8. Per Ora di inizio, inserire la data e l'ora di inizio dell'operazione.

  9. Per Recurrence (Ricorrenza), scegliere Once (Una tantum).

  10. In Regolazione delle attività, per Minimo, inserire un valore inferiore o uguale al numero massimo di attività.

  11. Scegli Crea operazione pianificata.

    Si apre la pagina delle policy.

  12. Configurare una seconda operazione programmata per ripristinare l'impostazione originale del numero di attività minimo alla fine dell'evento. Il dimensionamento predittivo può dimensionare il numero di attività solo quando il valore impostato per Minimo è inferiore ai valori di previsione.

Come creare due operazioni pianificate per eventi singoli (AWS CLI)

Per creare operazioni pianificate tramite la AWS CLI, utilizza il comando put-scheduled-update-group-action.

Ad esempio, definiamo una pianificazione che mantenga una capacità minima di tre istanze il 19 maggio alle 17:00 per otto ore. I comandi seguenti mostrano come implementare questo scenario.

Il primo comando, put-scheduled-update-group-action, indica a Dimensionamento automatico Amazon EC2 di aggiornare la capacità minima del gruppo con scalabilità automatica specificato alle 17:00 UTC del 19 maggio 2021.

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-start \ --auto-scaling-group-name my-asg --start-time "2021-05-19T17:00:00Z" --minimum-capacity 3

Il secondo comando indica a Dimensionamento automatico Amazon EC2 di impostare la capacità minima del gruppo su una alle 1:00 UTC del 20 maggio 2021.

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-end \ --auto-scaling-group-name my-asg --start-time "2021-05-20T01:00:00Z" --minimum-capacity 1

Dopo aver aggiunto queste operazioni pianificate al gruppo con scalabilità automatica, Dimensionamento automatico Amazon EC2 esegue le seguenti operazioni:

  • Alle 17:00 UTC del 19 maggio 2021, viene eseguita la prima operazione pianificata. Se il gruppo include meno di tre istanze, il gruppo si dimensiona su tre istanze. Durante questo periodo e per le otto ore successive, Dimensionamento automatico Amazon EC2 può continuare a essere aumentato orizzontalmente, se la capacità prevista è superiore alla capacità effettiva o se è in atto una policy di dimensionamento dinamico.

  • All' 01:00 UTC del 20 maggio 2021, viene eseguita la seconda operazione pianificata. Questo restituisce la capacità minima all'impostazione originale alla fine dell'evento.

Dimensionamento in base a pianificazioni ricorrenti

Per sostituire il forecast per lo stesso periodo di tempo ogni settimana, crea due operazioni pianificate e fornisci la logica di data e ora utilizzando un'espressione cron.

Il formato dell'espressione cron è costituito da cinque campi separati da spazi: [Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]. I campi possono contenere tutti i valori consentiti, inclusi i caratteri speciali.

Ad esempio, la seguente espressione cron campi esegue un'operazione ogni giorno alle 06:30. L'asterisco viene utilizzato come carattere jolly per abbinare tutti i valori di un campo.

30 6 * * 2

Consulta anche

Per ulteriori informazioni su come gestire le operazioni pianificate, consultare Usa azioni pianificate per scalare i servizi Amazon ECS.