Policy di dimensionamento con monitoraggio degli obiettivi per Dimensionamento automatico Amazon EC2 - Dimensionamento automatico Amazon EC2

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 dimensionamento del tracciamento degli obiettivi ridimensiona automaticamente la capacità del gruppo Auto Scaling in base a un valore metrico target. Ciò consente all'applicazione di mantenere prestazioni ottimali ed efficienza in termini di costi senza intervento manuale.

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 allarmi che richiamano eventi di scalabilità quando CloudWatch la metrica si discosta dall'obiettivo. Ad esempio, è simile al modo in cui un termostato mantiene una temperatura target.

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 eseguirà la scalabilità orizzontale o aumenterà la capacità quando la CPU supera il 50 percento per gestire un carico maggiore. Aumenterà o ridurrà la capacità quando la CPU scende al di sotto del 50 percento per ottimizzare i costi nei periodi di basso utilizzo.

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 è quella di dare sempre la priorità alla disponibilità. Se una delle politiche di tracciamento di destinazione è pronta per essere scalata orizzontalmente, il gruppo Auto Scaling verrà ridimensionato. Sarà scalabile solo se tutte le politiche di tracciamento di Target (con la parte scalabile abilitata) sono pronte per essere ampliate.

Selezionare i parametri.

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

Quando crei una policy di dimensionamento con monitoraggio degli obiettivi con un tipo di parametro predefinito, scegli un parametro dalla seguente lista di parametri predefiniti:

  • ASGAverageCPUUtilization: utilizzo medio CPU del gruppo con scalabilità automatica.

  • ASGAverageNetworkIn: numero medio di byte ricevuti da una singola istanza su tutte le interfacce di rete.

  • ASGAverageNetworkOut: numero medio di byte inviati da una singola istanza su tutte le interfacce di rete.

  • ALBRequestCountPerTarget: numero medio di richieste Application Load Balancer per destinazione.

Importante

Altre informazioni utili sulle metriche relative all'utilizzo della CPU, all'I/O di rete e al numero di richieste di Application Load Balancer per target sono disponibili nell'argomento Elenco delle metriche CloudWatch disponibili per le istanze nella Guida per l'utente di Amazon EC2 e nelle metriche per l'Application Load Balancer nella User Guide CloudWatch for Application Load Balancers, rispettivamente.

Puoi scegliere altre CloudWatch metriche disponibili o le tue metriche specificando una metrica personalizzata. CloudWatch È necessario utilizzare AWS CLI o un SDK per creare una politica di tracciamento degli obiettivi con una specifica metrica personalizzata. Per un esempio che specifica una specifica metrica personalizzata per una politica di ridimensionamento del tracciamento degli obiettivi utilizzando il, vedi. AWS CLIPolicy di dimensionamento di esempio per AWS Command Line Interface (AWS CLI)

Quando scegli un parametro, tieni presente quanto segue:

  • Ti consigliamo di utilizzare parametri disponibili solo 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. Per ulteriori 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 CPUUtilization con la dimensione di parametro AutoScalingGroupName) 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. ApproximateNumberOfMessagesVisible Il 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 Scalabilità basata su Amazon SQS.

  • Per utilizzare il parametro ALBRequestCountPerTarget, è necessario specificare il parametro ResourceLabel affinché identifichi il gruppo di destinazione del load balancer associato al parametro. Per un esempio che specifica il ResourceLabel parametro per una politica di scalabilità di tracciamento degli obiettivi utilizzando il, vedi. AWS CLIPolicy di dimensionamento di esempio per AWS Command Line Interface (AWS CLI)

  • Quando una metrica emette valori 0 reali su CloudWatch (ad esempioALBRequestCountPerTarget), un gruppo 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 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 Creazione di una policy di dimensionamento con monitoraggio degli obiettivi per Dimensionamento automatico Amazon EC2 tramite la matematica dei parametri.

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 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 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. Fino alla scadenza del tempo di riscaldamento specificato, un'istanza non viene conteggiata nelle metriche aggregate delle istanze EC2 del gruppo Auto Scaling.

Durante il periodo di riscaldamento delle istanze, le politiche di scalabilità vengono ridimensionate solo se il valore metrico delle istanze che non si stanno riscaldando è superiore all'utilizzo previsto dalla 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 dimensionamento orizzontale è in corso, tutte le attività di riduzione orizzontale avviate dalle policy di ridimensionamento vengono bloccate fino al termine della preparazione delle istanze. Al termine della preparazione delle istanze, se si verifica un evento di dimensionamento, 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 viene 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 cooldown predefinito. Si consiglia di utilizzare il riscaldamento predefinito dell'istanza per semplificare l'aggiornamento di tutte le politiche di ridimensionamento quando cambia il tempo di riscaldamento.

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. Amazon EC2 Auto Scaling crea e gestisce gli allarmi associati CloudWatch alle politiche di scalabilità di tracciamento di destinazione e li elimina quando non sono più necessari.

  • 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 si desidera che il gruppo con scalabilità automatica venga ridotto orizzontale immediatamente al termine di un carico di lavoro, è possibile disabilitare la parte di riduzione orizzontale della policy. In questo modo si ha la flessibilità di utilizzare il metodo di riduzione orizzontale più adeguato alle proprie esigenze quando l'utilizzo è basso. Per garantire che la riduzione orizzontale avvenga il più rapidamente possibile, consigliamo di non utilizzare una semplice policy di dimensionamento per evitare che venga aggiunto un tempo di raffreddamento.

  • Se nella metrica mancano punti dati, lo stato di allarme passa a. CloudWatch INSUFFICIENT_DATA In 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 dove m1 è 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 che tu imposti un valore di destinazione del 50% per l'utilizzo della CPU e il gruppo con scalabilità automatica lo superi. 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. Analogamente, se stabiliamo che la rimozione di 1,5 istanze aumenta l'utilizzo della CPU a oltre il 50%, rimuoviamo una sola istanza.

    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.

Creazione di una policy di dimensionamento con monitoraggio degli obiettivi

Per creare una politica di ridimensionamento del tracciamento degli obiettivi per il tuo gruppo Auto Scaling, utilizza uno dei seguenti metodi.

Prima di iniziare, verifica che la metrica preferita sia disponibile a intervalli di 1 minuto (rispetto all'intervallo predefinito di 5 minuti dei parametri di Amazon EC2).

Console
Creazione di una policy di dimensionamento con monitoraggio degli obiettivi per un nuovo gruppo con dimensionamento automatico
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/ e scegli Gruppi con dimensionamento automatico dal pannello di navigazione.

  2. Selezionare Create Auto Scaling group (Crea un gruppo con scalabilità automatica).

  3. Nelle fasi 1, 2 e 3, scegli le opzioni desiderate e procedere a Step 4: Configure group size and scaling policies (Fase 4: configurazione delle dimensioni del gruppo e delle policy di dimensionamento).

  4. Nella sezione Dimensionamento, specifica l'intervallo entro il quale desideri scalare, aggiornando la Capacità minima desiderata e la Capacità massima desiderata. Queste due impostazioni permettono al gruppo con scalabilità automatica di dimensionare dinamicamente. Per ulteriori informazioni, consulta Impostare i limiti di dimensionamento per il gruppo con dimensionamento automatico.

  5. In Policy di dimensionamento, scegli Policy di dimensionamento con monitoraggio degli obiettivi.

  6. Per definire una policy, effettua le operazioni seguenti:

    1. Specificare un nome per la policy.

    2. Scegliere un parametro per Tipo parametro.

      Se hai scelto Application Load Balancer request count per target (Conteggio delle richieste Application Load Balancer per destinazione), scegli un gruppo destinazione in Target group (Gruppo di destinazione).

    3. Specifica un Target value (Valore di destinazione) per il parametro.

    4. (Facoltativo) Ad esempio, riscalda l'istanza, aggiorna il valore di riscaldamento dell'istanza secondo necessità.

    5. (Facoltativo) Selezionare Disable scale in (Disabilita riduzione) per creare solo una policy di espansione. In questo modo, se desiderato, è possibile creare una policy di riduzione separata di tipo diverso.

  7. Procedi e crea il gruppo con dimensionamento automatico. La policy di dimensionamento verrà creata dopo la creazione del gruppo con scalabilità automatica.

Creazione di una policy di dimensionamento con monitoraggio degli obiettivi per un gruppo con scalabilità automatica esistente
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/ e scegli Gruppi con dimensionamento automatico dal pannello di navigazione.

  2. Seleziona la casella di controllo accanto al gruppo con dimensionamento automatico.

    Si aprirà un riquadro diviso nella parte inferiore della pagina.

  3. Verifica che i limiti di dimensionamento siano impostati in modo appropriato. Ad esempio, se la capacità desiderata del gruppo è già al suo valore massimo, specifica un nuovo valore massimo per il dimensionamento orizzontale. Per ulteriori informazioni, consulta Impostare i limiti di dimensionamento per il gruppo con dimensionamento automatico.

  4. Nella scheda Automatic scaling (Scalabilità automatica) scegli Add policy (Aggiungi policy) in Dynamic scaling policies (Policy di dimensionamento dinamico).

  5. Per definire una policy, effettua le operazioni seguenti:

    1. Per Tipo di policy lascia l'impostazione di default per il Target tracking scaling (Dimensionamento con monitoraggio degli obiettivi).

    2. Specificare un nome per la policy.

    3. Scegliere un parametro per Tipo parametro. È possibile scegliere un solo tipo di parametro. Per utilizzare più di un parametro, crea più policy.

      Se hai scelto Application Load Balancer request count per target (Conteggio delle richieste Application Load Balancer per destinazione), scegli un gruppo destinazione in Target group (Gruppo di destinazione).

    4. Specifica un Target value (Valore di destinazione) per il parametro.

    5. (Facoltativo) Ad esempio, aggiorna il valore di riscaldamento dell'istanza secondo necessità.

    6. (Facoltativo) Selezionare Disable scale in (Disabilita riduzione) per creare solo una policy di espansione. In questo modo, se desiderato, è possibile creare una policy di riduzione separata di tipo diverso.

  6. Scegli Crea.

AWS CLI

Per creare una politica di ridimensionamento del tracciamento degli obiettivi, puoi utilizzare il seguente esempio per iniziare. Sostituisci ciascun placeholder input dell'utente con le tue informazioni.

Creazione di una policy di dimensionamento con monitoraggio degli obiettivi (AWS CLI)
  1. Utilizzate il cat comando seguente per memorizzare un valore target per la vostra politica di scalabilità e una specifica metrica predefinita in un file JSON denominato config.json nella vostra home directory. Di seguito è riportato un esempio di configurazione di tracciamento degli obiettivi che mantiene l'utilizzo medio della CPU al 50%.

    $ cat ~/config.json { "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" } }

    Per ulteriori informazioni, consulta la sezione PredefinedMetricSpecifiche nel riferimento all'API Amazon EC2 Auto Scaling.

  2. Utilizza il comando put-scaling-policy insieme al file config.json creato nella fase precedente per creare la policy di dimensionamento.

    aws autoscaling put-scaling-policy --policy-name cpu50-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

    In caso di successo, questo comando restituisce gli ARN e i nomi dei due CloudWatch allarmi creati per tuo conto.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" } ] }