Come funziona il target tracking scaling per Application Auto Scaling - Application Auto Scaling

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Come funziona il target tracking scaling per Application Auto Scaling

Questo argomento descrive come funziona il ridimensionamento del tracciamento del target e introduce gli elementi chiave di una politica di ridimensionamento del tracciamento del target.

Come funziona

Per utilizzare il ridimensionamento del tracciamento del target, create una politica di ridimensionamento del tracciamento del target e specificate quanto segue:

  • Metrica: una CloudWatch metrica da monitorare, ad esempio l'utilizzo medio della CPU o il numero medio di richieste per destinazione.

  • Valore target: il valore target per il parametro, ad esempio il 50% di utilizzo della CPU o 1000 richieste per target al minuto.

Application Auto Scaling crea e gestisce gli CloudWatch allarmi che richiamano la politica di scalabilità e calcola la regolazione della scalabilità in base alla metrica e al valore target. Aggiunge e rimuove la capacità in base alle necessità, per mantenere il parametro al valore di destinazione specificato o vicino a esso.

Quando il parametro è superiore al valore target, Application Auto Scaling impiega la scalabilità orizzontale aggiungendo capacità per ridurre la differenza tra il valore del parametro e il valore di destinazione. Quando il parametro è inferiore al valore target, Application Auto Scaling impiega il ridimensionamento rimuovendo la capacità.

Le attività di dimensionamento vengono eseguite con periodi di raffreddamento intermedi per evitare rapide fluttuazioni della capacità. Facoltativamente, puoi configurare i tempi di raffreddamento per la tua policy di dimensionamento.

Il diagramma seguente mostra una panoramica del funzionamento di una policy di dimensionamento del monitoraggio delle destinazioni una volta completata la configurazione.

Diagramma generale di una politica di ridimensionamento del tracciamento degli obiettivi

Una policy di dimensionamento del monitoraggio della destinazione è più aggressiva nell'aggiunta di capacità quando l'utilizzo aumenta, rispetto alla rimozione della capacità quando l'utilizzo diminuisce. Ad esempio, se il parametro specificato della policy raggiunge il valore obiettivo, la policy presuppone che l'applicazione sia già sottoposta a un forte carico. Quindi risponde aggiungendo capacità proporzionale al valore del parametro il più velocemente possibile. Più alto è il parametro, maggiore è la capacità aggiunta.

Quando il parametro scende al di sotto del valore di destinazione, la policy prevede che l'utilizzo aumenterà di nuovo. In questo caso, rallenta il dimensionamento rimuovendo la capacità solo quando l'utilizzo supera una soglia che è sufficientemente inferiore al valore obiettivo (in genere almeno del 10% inferiore) per considerare l'utilizzo rallentato. Lo scopo di questo comportamento più conservativo è garantire che la rimozione della capacità avvenga solo quando l'applicazione non riscontra più una domanda allo stesso livello elevato come in precedenza.

Selezionare i parametri.

Puoi creare policy di dimensionamento con monitoraggio degli obiettivi sia con parametri predefiniti che personalizzati.

Quando crei una policy di dimensionamento del monitoraggio degli obiettivi con un tipo parametro predefinito, scegli un parametro dalla lista di parametri predefiniti in Policy di dimensionamento del monitoraggio degli obiettivi con parametri predefiniti.

Quando scegli un parametro, tieni presente quanto segue:

  • Non tutti i parametri personalizzati funzionano per il monitoraggio degli obiettivi. Il parametro deve essere un parametro di utilizzo valido e deve descrivere il livello di occupazione di un target scalabile. Il valore del parametro deve aumentare o diminuire in modo proporzionale alla capacità del target scalabile in modo che i dati del parametro possano essere utilizzati per eseguire il dimensionamento proporzionale del target scalabile.

  • Per utilizzare il parametro ALBRequestCountPerTarget, è necessario specificare il parametro ResourceLabel per identificare il gruppo di destinazione associato al parametro.

  • Quando una metrica emette valori 0 reali su CloudWatch (ad esempioALBRequestCountPerTarget), Application Auto Scaling può scalare fino a 0 quando non c'è traffico verso l'applicazione per un periodo di tempo prolungato. Per fare in modo che l'obiettivo scalabile si riduca orizzontalmente a 0 istanze quando non riceve richieste instradate, la capacità minima dell'obiettivo scalabile deve essere impostata su 0.

  • Invece di pubblicare nuove metriche da utilizzare nella politica di scalabilità, è possibile utilizzare la matematica delle metriche per combinare quelle esistenti. Per ulteriori informazioni, consulta Creazione di una policy di dimensionamento con monitoraggio degli obiettivi per l'Applicazione di Dimensionamento automatico tramite la matematica dei parametri.

  • Per vedere se il servizio che stai utilizzando supporta la possibilità di specificare un parametro personalizzato nella console del servizio, consulta la documentazione per tale servizio.

  • Ti consigliamo di utilizzare parametri disponibili a intervalli di un minuto per aiutarti a dimensionare più rapidamente quando viene modificato l'utilizzo. Il monitoraggio degli obiettivi valuta i parametri aggregati con una granularità di un minuto per tutti i parametri predefiniti e personalizzati, ma il parametro sottostante potrebbe pubblicare i dati meno frequentemente. Ad esempio, tutti i parametri di Amazon EC2 vengono inviati a intervalli di cinque minuti per impostazione predefinita, ma sono configurabili fino a un minuto (noto come monitoraggio dettagliato). Questa scelta spetta ai singoli servizi. La maggior parte dei servizi cerca di utilizzare l'intervallo più breve possibile.

Definire il valore target

Quando si crea una policy di dimensionamento del monitoraggio degli obiettivi, è necessario specificare un valore target. Il valore di destinazione rappresenta l'utilizzo medio ideale o la velocità di trasmissione effettiva per l’applicazione. Per utilizzare le risorse in modo efficiente in termini di costi, impostare il valore target il più alto possibile con un buffer ragionevole per aumenti di traffico imprevisti. Quando l'applicazione viene aumentata orizzontalmente in modo ottimale per un normale flusso di traffico, il valore del parametro effettivo deve essere pari o appena inferiore al valore di destinazione.

Quando una policy di scalabilità si basa sulla velocità di trasmissione effettiva, ad esempio il conteggio delle richieste per destinazione per un Application Load Balancer, I/O di rete o altri parametri di conteggio, il valore di destinazione rappresenta la velocità di trasmissione effettiva media ottimale da una singola entità (ad esempio una singola destinazione del gruppo di destinazione Application Load Balancer), per un periodo di un minuto.

Definizione dei tempi di raffreddamento

Facoltativamente, puoi definire i tempi di raffreddamento nella policy di dimensionamento del monitoraggio degli obiettivi.

Il tempo di raffreddamento indica la quantità di tempo che la policy di dimensionamento attende prima di rendere effettiva una precedente attività di dimensionamento.

Esistono due tipi di tempi di raffreddamento:

  • Con il periodo di attesa di incremento, l'intenzione è di dimensionare in modo continuo (ma non eccessivamente). Dopo che Application Auto Scaling ha impiegato correttamente la scalabilità orizzontale utilizzando una policy di dimensionamento, inizia a calcolare il tempo di raffreddamento. Una policy di dimensionamento non aumenta di nuovo la capacità desiderata, a meno che non venga impiegata una scalabilità orizzontale maggiore o che il tempo di raffreddamento finisca. Mentre è attivo il periodo di attesa di incremento, la capacità aggiunta dall'attività di incremento iniziale viene calcolata come parte della capacità desiderata per il successivo evento di incremento.

  • Con il tempo di raffreddamento per il ridimensionamento, l'intenzione è di ridimensionare in modo conservativo per proteggere la disponibilità dell'applicazione, per cui le attività di ridimensionamento vengono bloccate fino alla scadenza del tempo di raffreddamento per il ridimensionamento. Tuttavia, se un altro allarme attiva un'attività di incremento durante il periodo di attesa, Application Auto Scaling incrementa immediatamente la destinazione. In questo caso, il tempo di raffreddamento per il ridimensionamento si interrompe e non viene completato.

Ogni periodo di attesa viene misurato in secondi e si applica solo alle attività di dimensionamento correlate alle policy. Durante un periodo di attesa, quando un'operazione pianificata inizia all'ora pianificata, può attivare immediatamente un'attività di dimensionamento senza attendere la scadenza del periodo di attesa.

È possibile iniziare con i valori predefiniti, che possono essere poi ottimizzati. Ad esempio, potrebbe essere necessario aumentare un periodo di attesa per evitare che la policy di dimensionamento del monitoraggio di destinazione sia troppo aggressiva rispetto alle modifiche che si verificano in brevi periodi di tempo.

Valori predefiniti

Application Auto Scaling fornisce un valore predefinito di 600 per i gruppi di ElastiCache replica e un valore predefinito di 300 per le seguenti destinazioni scalabili:

  • AppStream flotte 2.0

  • Cluster di database Aurora

  • Servizi ECS

  • Cluster di Neptune

  • SageMaker varianti di endpoint

  • SageMaker componenti di inferenza

  • SageMaker Concorrenza fornita senza server

  • Parco istanze Spot

  • Pool di WorkSpaces

  • Risorse personalizzate

Per tutti gli altri obiettivi dimensionabili, il valore predefinito è 0 oppure null:

  • Endpoint di classificazione dei documenti Amazon Comprehend e di riconoscimento delle identità

  • Tabelle DynamoDB e indici secondari globali

  • Tabelle di Amazon Keyspaces

  • Concorrenza con provisioning di Lambda

  • Storage di broker Amazon MSK

I valori null vengono considerati come valori zero quando Application Auto Scaling valuta il tempo di raffreddamento.

Puoi aggiornare qualsiasi valore predefinito, inclusi i valori null, per impostare i tempi di raffreddamento.

Considerazioni

Le seguenti considerazioni si applicano quando si usano le policy di dimensionamento con monitoraggio degli obiettivi:

  • Non creare, modificare o eliminare gli CloudWatch allarmi utilizzati con una politica di ridimensionamento di Target Tracking. Application Auto Scaling crea e gestisce gli CloudWatch allarmi associati alle politiche di scalabilità di tracciamento di Target e li elimina quando non sono più necessari.

  • Se nella metrica mancano punti dati, lo stato di CloudWatch allarme passa a. INSUFFICIENT_DATA In questo caso, Application Auto Scaling non può dimensionare l'obiettivo scalabile finché non vengono trovati nuovi punti dati. Per ulteriori informazioni, consulta Configurazione del modo in cui gli CloudWatch allarmi trattano i dati mancanti nella Amazon CloudWatch User Guide.

  • Se la metrica viene riportata scarsamente in base alla progettazione, la matematica metrica può essere utile. Ad esempio, per utilizzare i valori più recenti, utilizzate la FILL(m1,REPEAT) funzione dove m1 è la metrica.

  • Potrebbero esserci delle differenze tra il valore di destinazione e i punti di dati dei parametri reali. Ciò avviene perché Application Auto Scaling agisce sempre con prudenza, arrotondando per eccesso o per difetto quando determina la capacità da aggiungere o rimuovere. In questo modo si impedisce l'aggiunta di capacità insufficiente o la rimozione di capacità eccessiva. Tuttavia, per un obiettivo scalabile con piccole capacità, i punti di dati dei parametri reali potrebbero sembrare lontani dal valore di destinazione.

    Per un obiettivo scalabile con maggiori capacità, l'aggiunta o la rimozione di capacità fa sì che vi sia un intervallo minore tra il valore di destinazione e i punti di dati dei parametri reali.

  • Una policy di dimensionamento di monitoraggio obiettivi presuppone che essa debba eseguire un dimensionamento orizzontale quando il parametro specificato supera il valore di destinazione. Non puoi utilizzare una policy di dimensionamento di monitoraggio obiettivi per il dimensionamento orizzontale quando il parametro specificato è inferiore al valore di destinazione.

Più policy di dimensionamento

È possibile avere più policy di dimensionamento del monitoraggio di target per un target scalabile, purché ciascuna di esse utilizzi un parametro diverso. Lo scopo di Application Auto Scaling è sempre quello di assegnare la priorità alla disponibilità, quindi il suo comportamento varia a seconda che le policy di monitoraggio degli obiettivi siano pronte o meno per l'aumento o la riduzione orizzontale. L'obiettivo scalabile viene aumentato se una qualsiasi delle policy di monitoraggio dei target è pronta per l'aumento e viene ridotto solo se tutte le policy di monitoraggio dei target (con la porzione di riduzione abilitata) sono pronte per essere ridotte.

Se più policy di dimensionamento impongono all'obiettivo scalabile una riduzione o un aumento orizzontale allo stesso tempo, Application Auto Scaling dimensiona in base alla policy che fornisce la capacità massima sia per la riduzione sia per l'aumento orizzontale. Ciò offre maggiore flessibilità per coprire scenari diversi e garantisce che vi sia sempre capacità sufficiente per elaborare i carichi di lavoro delle applicazioni.

Puoi disabilitare la porzione del ridimensionamento di una policy di dimensionamento del monitoraggio degli obiettivi per utilizzare un metodo di ridimensionamento diverso da quello usato per la scalabilità orizzontale. Ad esempio, è possibile utilizzare un altro tipo di policy di dimensionamento per il dimensionamento verticale e utilizzare una policy di dimensionamento del monitoraggio obiettivi per il dimensionamento orizzontale.

Suggeriamo, tuttavia, di prestare attenzione quando si utilizzano le policy di dimensionamento con monitoraggio degli obiettivi insieme alle policy di dimensionamento per fasi, per evitare che insorgano conflitti che possono causare comportamenti indesiderati. Ad esempio, se la policy di dimensionamento per fasi avvia un'attività di riduzione prima che la policy con monitoraggio degli obiettivi sia pronta per eseguirla, tale attività non verrà bloccata. Al termine dell'attività di scalabilità verticale, la policy di monitoraggio della destinazione potrebbe indicare alla destinazione scalabile di nuovo la scalabilità orizzontale.

Per i carichi di lavoro di natura ciclica, è inoltre possibile automatizzare le modifiche di capacità in una pianificazione utilizzando il dimensionamento pianificato. Per ogni operazione programmata, è possibile definire un nuovo valore di capacità minima e un nuovo valore di capacità massima. Questi valori formano i limiti della policy di dimensionamento. La combinazione di dimensionamento pianificato e di monitoraggio della destinazione può contribuire a ridurre l'impatto di un forte aumento dei livelli di utilizzo, quando la capacità è immediatamente necessaria.

Comandi comunemente utilizzati per la creazione, la gestione e l'eliminazione delle policy di dimensionamento

I comandi comunemente utilizzati per le policy di dimensionamento includono:

  • register-scalable-targetper registrare AWS o personalizzare le risorse come destinazioni scalabili (una risorsa scalabile da Application Auto Scaling) e sospendere e riprendere il ridimensionamento.

  • put-scaling-policyper aggiungere o modificare le politiche di scalabilità per un target scalabile esistente.

  • describe-scaling-activitiesper restituire informazioni sulla scalabilità delle attività in una regione. AWS

  • describe-scaling-policiesper restituire informazioni sulle politiche di scalabilità in una AWS regione.

  • delete-scaling-policyper eliminare una politica di scalabilità.

Per ulteriori informazioni su come creare policy di dimensionamento con monitoraggio della destinazione per i gruppi con dimensionamento automatico, consulta Policy di dimensionamento semplici e con monitoraggio della destinazione per Dimensionamento automatico Amazon EC2 nella Guida per l'utente di Dimensionamento automatico Amazon EC2.

Limitazioni

Di seguito sono riportate le restrizioni quando si utilizzano le policy di dimensionamento con monitoraggio degli obiettivi:

  • L'obiettivo scalabile non può essere un cluster Amazon EMR. Le policy di dimensionamento con monitoraggio degli obiettivi non sono supportate per Amazon EMR.

  • Quando un cluster Amazon MSK è l'obiettivo scalabile, la riduzione orizzontale è disabilitata e non può essere abilitata.

  • Non è possibile utilizzare le operazioni RegisterScalableTarget o le PutScalingPolicy API per aggiornare un piano di AWS Auto Scaling scalabilità.

  • L'accesso da console per visualizzare, aggiungere, aggiornare o rimuovere policy di dimensionamento con monitoraggio della destinazione su risorse scalabili dipende dalla risorsa utilizzata. Per ulteriori informazioni, consulta Servizi AWS che puoi usare con Application Auto Scaling.