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à.
Policy di dimensionamento con monitoraggio degli obiettivi per Dimensionamento automatico Amazon EC2
Una politica di ridimensionamento del tracciamento degli obiettivi ridimensiona automaticamente la capacità del gruppo Auto Scaling in base a un valore della metrica target. Si adatta automaticamente ai modelli di utilizzo unici delle singole applicazioni. Ciò consente all'applicazione di mantenere prestazioni ottimali e un elevato utilizzo delle istanze EC2 per una migliore efficienza dei costi senza interventi manuali.
Con il monitoraggio degli obiettivi, devi selezionare un parametro e un valore target che rappresenti il livello di utilizzo o velocità di trasmissione effettiva ideale per la tua applicazione. Amazon EC2 Auto Scaling crea e gestisce gli CloudWatch allarmi che richiamano eventi di scalabilità quando la metrica si discosta dall'obiettivo. Ad esempio, è simile a come un termostato mantiene una temperatura nominale.
Ad esempio, immaginiamo di avere un'applicazione Web attualmente eseguita su due istanze e di volere che l'utilizzo della CPU del gruppo con scalabilità automatica rimanga intorno al 50% quando il carico sull'applicazione varia. Questo ti offre la capacità aggiuntiva per gestire i picchi di traffico senza dover mantenere un numero eccessivo di risorse inattive.
È possibile soddisfare questa esigenza creando una policy di dimensionamento del monitoraggio degli obiettivi che si rivolge a un utilizzo medio della CPU del 50%. Quindi, il gruppo Auto Scaling ridimensionerà o aumenterà la capacità quando la CPU supera il 50% per gestire un carico maggiore. Aumenterà o diminuirà la capacità quando la CPU scende al di sotto del 50% per ottimizzare i costi nei periodi di scarso utilizzo.
Argomenti
Policy di dimensionamento con monitoraggio degli obiettivi multipli
Per ottimizzare le prestazioni di dimensionamento, è possibile utilizzare più policy di dimensionamento con monitoraggio degli obiettivi insieme, a condizione che ciascuna di esse utilizzi un parametro diverso. Ad esempio, l'utilizzo e la velocità di trasmissione effettiva possono influenzarsi a vicenda. Ogni volta che uno di questi parametri cambia, di solito implica che anche altri parametri saranno interessati. L'uso di più metriche fornisce quindi informazioni aggiuntive sul carico a cui è sottoposto il gruppo Auto Scaling. Questo può aiutare Amazon EC2 Auto Scaling a prendere decisioni più informate nel determinare la capacità da aggiungere al gruppo.
L'intenzione di Amazon EC2 Auto Scaling è dare sempre la priorità alla disponibilità. Scalerà il gruppo Auto Scaling se una delle policy di tracciamento target è pronta per la scalabilità orizzontale. Si espanderà solo se tutte le politiche di tracciamento del target (con la scala in parte abilitata) sono pronte per l'espansione.
Selezionare i parametri.
Puoi creare policy di dimensionamento con monitoraggio degli obiettivi sia con parametri predefiniti che personalizzati. Le metriche predefinite forniscono un accesso più semplice alle metriche più comunemente utilizzate per la scalabilità. Le metriche personalizzate consentono di scalare in base ad altre metriche disponibili, comprese CloudWatch le metriche ad alta risoluzione pubblicate a intervalli più precisi nell'ordine di pochi secondi. Puoi pubblicare le tue metriche ad alta risoluzione o le metriche pubblicate da altri AWS servizi.
Per ulteriori informazioni sulla creazione di politiche di tracciamento degli obiettivi utilizzando metriche ad alta risoluzione, consulta. Crea una politica di tracciamento degli obiettivi utilizzando metriche ad alta risoluzione per una risposta più rapida
Il tracciamento degli obiettivi supporta le seguenti metriche predefinite:
-
ASGAverageCPUUtilization: utilizzo medio CPU del gruppo Auto Scaling. -
ASGAverageNetworkIn: numero medio di byte ricevuti su tutte le interfacce di rete dal gruppo Auto Scaling. -
ASGAverageNetworkOut: numero medio di byte inviati su tutte le interfacce di rete dal gruppo Auto Scaling. -
ALBRequestCountPerTarget: conteggio medio di richieste Application Load Balancer per destinazione per il gruppo Auto Scaling.
Importante
Altre informazioni utili sulle metriche relative all'utilizzo della CPU, alla rete I/O e al numero di richieste di Application Load Balancer per target sono disponibili rispettivamente nell'argomento Elenca le CloudWatch metriche disponibili per le tue istanze nella Amazon EC2 User Guide e nelle CloudWatch metriche per l'Application Load Balancer nella User Guide for Application Load Balancer, rispettivamente.
Puoi scegliere altre metriche disponibili o le tue CloudWatch metriche specificando una metrica personalizzata. CloudWatch Per un esempio che specifica una specifica metrica personalizzata per una politica di ridimensionamento del tracciamento degli obiettivi utilizzando, vedere. AWS CLIEsempi di politiche di ridimensionamento per AWS CLI
Quando scegli un parametro, tieni presente quanto segue:
-
Ti consigliamo di utilizzare solo metriche disponibili a intervalli di un minuto o inferiori per aiutarti a scalare più velocemente in risposta alle modifiche dell'utilizzo. Le metriche pubblicate a intervalli più bassi consentono alla policy di tracciamento target di rilevare e rispondere più rapidamente alle modifiche nell'utilizzo del gruppo Auto Scaling.
-
Se scegli metriche predefinite pubblicate da Amazon EC2, come l'utilizzo della CPU, ti consigliamo di abilitare il monitoraggio dettagliato. Per impostazione predefinita, tutte le metriche di Amazon EC2 vengono pubblicate a intervalli di cinque minuti, ma sono configurabili con un intervallo inferiore di un minuto abilitando il monitoraggio dettagliato. Per informazioni su come abilitare il monitoraggio dettagliato, consulta. Configurare il monitoraggio per le istanze Auto Scaling
-
Non tutti i parametri personalizzati funzionano per il monitoraggio degli obiettivi. Il parametro deve essere un parametro di utilizzo valido e deve descrivere quanto è impegnata un'istanza. Il valore del parametro deve aumentare e diminuire in proporzione al numero di istanze nel gruppo con scalabilità automatica. In questo modo i dati dei parametri possono essere utilizzati per il dimensionamento proporzionalmente al numero di istanze. Ad esempio, l'utilizzo della CPU di un gruppo con scalabilità automatica (ovvero il parametro Amazon EC2
CPUUtilizationcon la dimensione di parametroAutoScalingGroupName) funziona se il carico sul gruppo con scalabilità automatica viene distribuito tra le istanze. -
I seguenti parametri non funzionano per il monitoraggio degli obiettivi:
-
Il numero di richieste ricevute dal load balancer rivolto al gruppo con scalabilità automatica (ovvero, il parametro Elastic Load Balancing
RequestCount). Il numero di richieste ricevute dal load balancer non cambia in base all'utilizzo del gruppo con scalabilità automatica. -
La latenza della richiesta del load balancer (ovvero, il parametro Elastic Load Balancing
Latency). La latenza della richiesta può aumentare in base all'aumento dell'utilizzo, ma non cambia necessariamente in modo proporzionale. -
La CloudWatch metrica della coda di Amazon SQS.
ApproximateNumberOfMessagesVisibleIl numero di messaggi in una coda potrebbe non cambiare in proporzione alla dimensione del gruppo con scalabilità automatica che elabora i messaggi provenienti dalla coda. Tuttavia, un parametro personalizzato che misuri il numero di messaggi nella coda per ogni istanza EC2 nel gruppo con scalabilità automatica può funzionare. Per ulteriori informazioni, consulta Politica di scalabilità basata su Amazon SQS.
-
-
Per utilizzare il parametro
ALBRequestCountPerTarget, è necessario specificare il parametroResourceLabelaffinché identifichi il gruppo di destinazione del load balancer associato al parametro. Per un esempio che specifica ilResourceLabelparametro per una policy di scalabilità del tracciamento degli obiettivi utilizzando il, consulta. AWS CLIEsempi di politiche di ridimensionamento per AWS CLI -
Quando una metrica emette valori 0 reali CloudWatch (ad esempio
ALBRequestCountPerTarget), un gruppo Auto Scaling può scalare a 0 quando non c'è traffico verso l'applicazione per un periodo di tempo prolungato. Per fare in modo che il gruppo con scalabilità automatica si riduca orizzontalmente a 0 istanze quando non vengono instradate richieste, la capacità minima del gruppo deve essere impostata a 0. -
Invece di pubblicare nuove metriche da utilizzare nella policy di scalabilità, è possibile utilizzare la matematica delle metriche per combinare quelle esistenti. Per ulteriori informazioni, consulta Crea una politica di ridimensionamento del tracciamento degli obiettivi utilizzando la matematica delle metriche.
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 il gruppo con scalabilità automatica nel suo complesso. 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 target.
Quando una politica di scalabilità si basa sul throughput, ad esempio il numero di richieste per destinazione per un Application Load Balancer, una rete I/O o altre metriche di conteggio, il valore target rappresenta il throughput medio ottimale per una singola istanza, per un periodo di un minuto.
Definisci il tempo di riscaldamento dell'istanza
Come opzione, è possibile specificare il numero di secondi necessari per la preparazione di un’istanza appena avviata. Finché non trascorre il tempo di preparazione specificato, l’istanza non viene conteggiata per i parametri aggregati dell’istanza EC2 del gruppo Auto Scaling.
Mentre le istanze sono in fase di riscaldamento, le tue policy di scalabilità sono scalabili solo se il valore della metrica delle istanze che non si stanno riscaldando è superiore all'utilizzo previsto della policy.
Se il gruppo si dimensiona di nuovo, le istanze in fase di preparazione vengono conteggiate come parte della capacità desiderata per l'attività di dimensionamento successiva. L’intenzione è di aumentare di continuo (ma non in eccesso).
Mentre l'attività di scale-out è in corso, tutte le attività di scalabilità avviate dalle politiche di scalabilità vengono bloccate fino al termine del riscaldamento delle istanze. Al termine del riscaldamento delle istanze, se si verifica una scalabilità, tutte le istanze attualmente in fase di chiusura verranno conteggiate ai fini della capacità attuale del gruppo nel calcolo della nuova capacità desiderata. Pertanto, non rimuoviamo dal gruppo Auto Scaling più istanze del necessario.
Valore predefinito
Se non è impostato alcun valore, la politica di scalabilità utilizzerà il valore predefinito, che è il valore per il riscaldamento dell'istanza predefinito definito per il gruppo. Se il riscaldamento dell'istanza predefinito è nullo, torna al valore del tempo di recupero predefinito. Modifica del tempo di raffreddamento di default Consigliamo di utilizzare il warmup dell'istanza predefinito per semplificare l'aggiornamento di tutte le politiche di scalabilità quando cambia il tempo di riscaldamento.
Considerazioni
Le seguenti considerazioni si applicano quando si usano le policy di dimensionamento con monitoraggio degli obiettivi:
-
Non create, modificate o eliminate gli CloudWatch allarmi utilizzati con una policy di ridimensionamento del tracciamento di Target. Amazon EC2 Auto Scaling crea e gestisce gli CloudWatch allarmi associati alle politiche di ridimensionamento di tracciamento target e può modificarli, sostituirli o eliminarli quando necessario per personalizzare l'esperienza di scalabilità delle applicazioni e i loro mutevoli modelli di utilizzo.
-
Una policy di dimensionamento del monitoraggio degli obiettivi dà priorità alla disponibilità durante i periodi di fluttuazione dei livelli di traffico, riducendo orizzontalmente in modo più graduale quando il traffico diminuisce. Se desideri un maggiore controllo, una policy di scalabilità graduale potrebbe essere l'opzione migliore. Puoi disattivare temporaneamente la parte di scalabilità di una policy di tracciamento degli obiettivi. Ciò consente di mantenere un numero minimo di istanze per una corretta implementazione.
-
Se nella metrica mancano punti dati, lo stato di CloudWatch allarme passa a.
INSUFFICIENT_DATAIn questo caso, Dimensionamento automatico Amazon EC2 non può dimensionare il gruppo finché non vengono trovati nuovi punti dati. -
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 dovem1è la metrica. -
Potrebbero esserci delle differenze tra il valore di destinazione e i punti dati dei parametri reali. Ciò avviene perché agiamo sempre con prudenza, arrotondando per eccesso o per difetto, quando stabiliamo il numero di istanze da aggiungere o rimuovere. Ciò impedisce l'aggiunta di un numero insufficiente di istanze o la rimozione di troppe istanze. Tuttavia, per gruppi Auto Scaling più piccoli e con un numero inferiore di istanze, l'utilizzo del gruppo potrebbe sembrare lontano dal valore di destinazione.
Ad esempio, supponiamo di impostare un valore target del 50 percento per l'utilizzo della CPU e che il gruppo Auto Scaling superi l'obiettivo. Potremmo stabilire che l'aggiunta di 1,5 istanze diminuirà l'utilizzo della CPU a quasi il 50%. Poiché non è possibile aggiungere 1,5 istanze, arrotondiamo e aggiungiamo due istanze. Questo potrebbe diminuire l'utilizzo della CPU a un valore al di sotto del 50%, ma garantisce che l'applicazione disponga di un numero sufficiente di risorse per essere supportata. Allo stesso modo, se stabiliamo che la rimozione di 0,5 istanze aumenta l'utilizzo della CPU a oltre il 50%, sceglieremo di non eseguire lo scale-in finché la metrica non si abbasserà a tal punto da ritenere che tale scalabilità non provochi oscillazioni.
Per i gruppi Auto Scaling di grandi dimensioni e con più istanze, l'utilizzo viene distribuito su un maggior numero di istanze, nel qual caso l'aggiunta o la rimozione di istanze provoca un intervallo minore tra il valore di destinazione e i punti di dati dei parametri reali.
-
Una policy di dimensionamento con monitoraggio degli obiettivi presuppone l'aumento orizzontale del gruppo con scalabilità automatica quando il parametro specificato supera il valore di destinazione. Quando il parametro specificato è inferiore al valore di destinazione, non è possibile utilizzare una policy di dimensionamento con monitoraggio degli obiettivi per aumentare orizzontalmente il gruppo con scalabilità automatica.