Impostazione della preparazione di default dell'istanza per un gruppo con scalabilità automatica - 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à.

Impostazione della preparazione di default dell'istanza per un gruppo con scalabilità automatica

CloudWatch raccoglie e aggrega i dati di utilizzo, come CPU e I/O di rete, tra le istanze di Auto Scaling. Questi parametri vengono utilizzati per creare policy di dimensionamento che regolano il numero di istanze nel gruppo con scalabilità automatica man mano che il valore del parametro selezionato aumenta e diminuisce.

Puoi specificare quanto tempo dopo che un'istanza raggiunge InService lo stato in cui deve attendere prima di aggiungere i dati di utilizzo alle metriche aggregate. Questo periodo di tempo specificato viene chiamato riscaldamento predefinito dell'istanza. In questo modo si evita che la scalabilità dinamica venga influenzata dalle metriche relative a singole istanze che non gestiscono ancora il traffico delle applicazioni e che potrebbero registrare un utilizzo temporaneamente elevato delle risorse di elaborazione.

Per ottimizzare le prestazioni delle politiche di tracciamento degli obiettivi e di scalabilità dei passaggi, ti consigliamo vivamente di abilitare e configurare il riscaldamento predefinito delle istanze. Non è abilitato o configurato per impostazione predefinita.

Quando abiliti il riscaldamento predefinito dell'istanza, tieni presente che se il gruppo Auto Scaling è impostato per utilizzare una politica di manutenzione delle istanze o utilizzi un aggiornamento dell'istanza per sostituire le istanze, puoi impedire che le istanze vengano conteggiate nella percentuale minima di integrità prima che abbiano terminato l'inizializzazione.

Considerazioni sulle prestazioni di dimensionamento

Per la maggior parte delle applicazioni è utile disporre di un tempo di riscaldamento dell'istanza predefinito che si applica a tutte le funzionalità, anziché tempi di riscaldamento diversi per funzionalità diverse. Ad esempio, se non si imposta un riscaldamento predefinito dell'istanza, la funzionalità di aggiornamento dell'istanza utilizza il periodo di tolleranza del controllo dello stato di salute come orario di riscaldamento predefinito. Se disponete di politiche di tracciamento degli obiettivi e di scalatura dei passaggi, queste utilizzano il valore impostato per il cooldown predefinito come tempo di riscaldamento predefinito. Se hai delle politiche di scalabilità predittiva, non hanno un tempo di riscaldamento predefinito.

Durante il riscaldamento delle istanze, le politiche di scalabilità dinamica vengono ridimensionate solo se il valore della metrica delle istanze che non si stanno riscaldando è superiore alla soglia massima di allarme della policy (o all'utilizzo previsto di una politica di scalabilità di tracciamento del target). Se la domanda diminuisce, la scalabilità dinamica diventa più conservativa per proteggere la disponibilità dell'applicazione. Ciò blocca le attività di scalabilità per la scalabilità dinamica fino al termine del riscaldamento delle nuove istanze.

Durante la scalabilità orizzontale, Amazon EC2 Auto Scaling considera le istanze in fase di riscaldamento come parte della capacità del gruppo quando decide quante istanze aggiungere al gruppo. Pertanto, più violazioni degli allarmi che richiedono l'aggiunta di una quantità simile di capacità si traducono in un'unica attività di scalabilità. L'intenzione è quella di ampliare continuamente, senza farlo eccessivamente.

Se il riscaldamento predefinito dell'istanza non è abilitato, il tempo di attesa di un'istanza prima di inviare le metriche CloudWatch e contarle ai fini della capacità corrente varierà da istanza a istanza. Pertanto, esiste la possibilità che le politiche di scalabilità funzionino in modo imprevedibile rispetto al carico di lavoro effettivo che si sta verificando.

Ad esempio, si consideri un'applicazione con uno schema di carico di lavoro ricorrente. on-and-off Una policy di dimensionamento predittivo viene utilizzata per prendere decisioni ricorrenti sull'opportunità di aumentare il numero di istanze. Poiché non è previsto un tempo di riscaldamento predefinito per le politiche di scalabilità predittiva, le istanze iniziano a contribuire immediatamente alle metriche aggregate. Se queste istanze hanno un utilizzo maggiore delle risorse all'avvio, l'aggiunta di istanze potrebbe causare un aumento delle metriche aggregate. A seconda del tempo necessario alla stabilizzazione dell'utilizzo, ciò potrebbe influire sulle policy di dimensionamento dinamico che utilizzano queste metriche. Se viene superata la soglia massima di allarme di una policy di dimensionamento dinamico, le dimensioni del gruppo aumentano nuovamente. Mentre le nuove istanze si stanno preparando, le attività su larga scala verranno bloccate.

Scegli il tempo di riscaldamento predefinito dell'istanza

La chiave per impostare la preparazione predefinita delle istanze è determinare il tempo necessario per completare l'inizializzazione delle istanze e per stabilizzare il consumo di risorse una volta raggiunto lo stato InService. Quando scegli il tempo di riscaldamento dell'istanza, cerca di mantenere un equilibrio ottimale tra la raccolta dei dati di utilizzo per il traffico legittimo e la riduzione al minimo della raccolta dei dati associata ai picchi di utilizzo temporanei all'avvio.

Supponiamo che tu abbia un gruppo con dimensionamento automatico collegato a un sistema di bilanciamento del carico Elastic Load Balancing. Una volta terminato l’avvio delle nuove istanze, esse vengono registrate nel sistema di bilanciamento del carico prima di entrare nello stato InService. Dopo che le istanze passano allo stato InService, il consumo di risorse può ancora subire picchi temporanei e richiedere tempo per stabilizzarsi. Ad esempio, il consumo di risorse per un server applicazioni che deve scaricare e memorizzare nella cache risorse di grandi dimensioni richiede più tempo per stabilizzarsi rispetto a un server Web leggero senza risorse di grandi dimensioni da scaricare. La preparazione dell'istanza fornisce il ritardo necessario per stabilizzare il consumo di risorse.

Importante

Se non sei sicuro del tempo necessario per il riscaldamento, puoi iniziare con 300 secondi. Quindi diminuiscilo o aumentalo gradualmente fino a ottenere le migliori prestazioni di scalabilità per la tua applicazione. Potrebbe essere necessario eseguire questa operazione alcune volte per eseguire correttamente l'operazione. In alternativa, se disponi di politiche di scalabilità che hanno il proprio tempo di riscaldamento (EstimatedInstanceWarmup), puoi utilizzare questo valore per iniziare. Per ulteriori informazioni, consulta Trova le politiche di scalabilità con un tempo di riscaldamento dell'istanza impostato in precedenza.

Utilizza gli hook del ciclo di vita per i casi d'uso in cui sono presenti attività di configurazione o script da eseguire all'avvio. Gli hook del ciclo di vita possono ritardare la messa in servizio delle nuove istanze finché non hanno finito di inizializzarsi. Sono particolarmente utili se si dispone di script di bootstrap che richiedono tempo per essere completati. Se aggiungi un hook del ciclo di vita, puoi ridurre il valore della preparazione di default dell'istanza. Per ulteriori informazioni sull'utilizzo di Hook del ciclo di vita, consulta Hook del ciclo di vita di Amazon EC2 Auto Scaling.

Abilitazione della preparazione di default dell'istanza per un gruppo

È possibile abilitare la preparazione di default dell'istanza durante la creazione di un gruppo con scalabilità automatica. È possibile abilitarla anche per i gruppi esistenti.

Abilitando la funzione di riscaldamento dell'istanza predefinita, non è più necessario specificare i valori per i parametri di riscaldamento per le seguenti funzionalità:

Console
Abilita il riscaldamento predefinito dell'istanza per un nuovo gruppo (console)

Quando crei il gruppo con scalabilità automatica, nella pagina Configurare le opzioni avanzate sotto Impostazioni aggiuntive, seleziona l'opzione Abilita il riscaldamento predefinito dell'istanza. Scegliete il tempo di riscaldamento necessario per la vostra applicazione.

AWS CLI
Abilita il riscaldamento predefinito dell'istanza per un nuovo gruppo (AWS CLI)

Per abilitare la preparazione di default dell'istanza per un gruppo con scalabilità automatica, aggiungi l'opzione --default-instance-warmup e specifica un valore da 0 a 3600, in secondi. Dopo averlo abilitato, un valore di -1 disattiverà questa impostazione.

Il comando create-auto-scaling-group crea un gruppo con scalabilità automatica con il nome my-asg e abilita la preparazione di default dell'istanza con un valore di 120 secondi.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --default-instance-warmup 120 ...
Suggerimento

Se questo comando genera un errore, assicurati di averlo aggiornato AWS CLI localmente alla versione più recente.

Console
Abilita il riscaldamento predefinito dell'istanza per un gruppo esistente (console)
  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. Sulla barra di navigazione nella parte superiore della schermata, seleziona la Regione AWS in cui è stato creato il gruppo con dimensionamento automatico.

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

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

  4. Nella scheda Details (Dettagli) scegliere Advanced configurations (Configurazioni avanzate), Edit (Modifica).

  5. Per Default Instance Warmup, scegliete il tempo di riscaldamento necessario per l'applicazione.

  6. Scegli Aggiorna.

AWS CLI
Abilita il riscaldamento predefinito dell'istanza per un gruppo esistente (AWS CLI)

L'esempio seguente usa il comando update-auto-scaling-group per abilitare il riscaldamento predefinito dell'istanza con un valore di 120 secondi per un gruppo con scalabilità automatica esistente chiamato my-asg.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --default-instance-warmup 120
Suggerimento

Se questo comando genera un errore, assicurati di averlo aggiornato AWS CLI localmente alla versione più recente.

Verificare il riscaldamento predefinito dell'istanza per un gruppo

Per verificare il riscaldamento predefinito dell'istanza per un gruppo con scalabilità automatica (AWS CLI)

Utilizza il seguente comando describe-auto-scaling-group. Sostituisci my-asg con il nome del gruppo con dimensionamento automatico.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

Di seguito è riportata una risposta di esempio.

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", ... "DefaultInstanceWarmup": 120 } ] }

Trova le politiche di scalabilità con un tempo di riscaldamento dell'istanza impostato in precedenza

Per identificare se disponi di politiche che hanno un proprio tempo di riscaldamentoEstimatedInstanceWarmup, esegui il seguente comando describe-policies utilizzando. AWS CLI Sostituisci my-asg con il nome del gruppo con dimensionamento automatico.

aws autoscaling describe-policies --auto-scaling-group-name my-asg --query 'ScalingPolicies[?EstimatedInstanceWarmup!=`null`]'

Di seguito è riportato un output di esempio.

[ { "AutoScalingGroupName":"my-asg", "PolicyName":"cpu50-target-tracking-scaling-policy", "PolicyARN":"arn", "PolicyType":"TargetTrackingScaling", "StepAdjustments":[], "EstimatedInstanceWarmup":120, "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" }], "TargetTrackingConfiguration":{ "PredefinedMetricSpecification":{ "PredefinedMetricType":"ASGAverageCPUUtilization" }, "TargetValue":50.0, "DisableScaleIn":false }, "Enabled":true }, ... additional policies ... ]

Cancella la preparazione dell'istanza precedentemente impostata per una policy di dimensionamento

Dopo aver abilitato il riscaldamento predefinito dell'istanza, aggiorna tutte le politiche di ridimensionamento che hanno ancora il proprio tempo di riscaldamento per cancellare il valore impostato in precedenza. Altrimenti, sostituirà la preparazione predefinita dell'istanza.

Puoi aggiornare le politiche di scalabilità utilizzando la console o gli SDK. AWS CLI AWS Questa sezione descrive i passaggi per la console. Se utilizzi gli AWS SDK AWS CLI o, assicurati di mantenere la configurazione delle policy esistente, ma rimuovi la proprietà. EstimatedInstanceWarmup Quando aggiorni una politica di scalabilità esistente, la politica verrà sostituita da quella specificata quando chiami Policy a livello di codice. PutScaling I valori originali non vengono conservati.

Come cancellare la preparazione dell'istanza precedentemente impostata per una policy di dimensionamento (console)
  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. Nella scheda Dimensionamento automatico, in Policy di dimensionamento dinamico, scegli la policy che ti interessa, quindi scegli Azioni, Modifica.

  4. Ad esempio, il riscaldamento dell'istanza, cancella il valore di riscaldamento dell'istanza per utilizzare invece il valore di riscaldamento dell'istanza predefinito.

  5. Scegli Aggiorna.