Informazioni sui controlli dell'integrità del gruppo con dimensionamento automatico - Amazon EC2 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à.

Informazioni sui controlli dell'integrità del gruppo con dimensionamento automatico

Questo argomento fornisce una panoramica dei tipi di controlli dello stato disponibili e descrive le considerazioni chiave per l'integrazione dei controlli di integrità di Amazon EC2 Auto Scaling con le tue applicazioni.

Tipi di controllo dell'integrità

Amazon EC2 Auto Scaling può determinare lo stato di integrità di InService un'istanza utilizzando uno o più dei seguenti controlli:

Tipo di controllo dello stato Che cosa controlla

Controlli dello stato Amazon EC2 ed eventi pianificati

  • Verifica che l'istanza sia in esecuzione.

  • Verifica la presenza di problemi hardware o software sottostanti che potrebbero compromettere l'istanza.

Questo è il tipo di controllo dell'integrità predefinito per un gruppo con scalabilità automatica.

Controlli dello stato di Elastic Load Balancing

  • Verifica se il load balancer segnala che l'istanza è integra, confermando se l'istanza è disponibile per gestire le richieste.

Per eseguire questo tipo di controllo dello stato, è necessario attivarlo per il gruppo Auto Scaling.

Controlli dell'integrità VPC Lattice

  • Verifica se VPC Lattice segnala che l'istanza è integra, confermando se l'istanza è disponibile per gestire le richieste.

Per eseguire questo tipo di controllo dello stato, è necessario attivarlo per il gruppo Auto Scaling.

Controlli dell'integrità personalizzati

  • Verifica la presenza di eventuali altri problemi che potrebbero indicare problemi di integrità dell'istanza, in base ai controlli sanitari personalizzati.

Controlli dell'integrità Amazon EC2

Dopo l'avvio di un'istanza, viene allegato al gruppo con dimensionamento automatico ed entra nello stato InService. Per ulteriori informazioni sul ciclo di vita completo delle istanze in un gruppo con scalabilità automatica, consulta Ciclo di vita delle istanze di Amazon EC2 Auto Scaling.

Il Dimensionamento automatico Amazon EC2 verifica che tutte le istanze all'interno del gruppo con scalabilità automatica siano in esecuzione e in buone condizioni controllando periodicamente lo stato di integrità delle istanze.

Verifiche di stato

I controlli dell'integrità di Amazon EC2 Auto Scaling utilizzano i risultati delle verifiche dello stato di Amazon EC2 per determinare l'integrità di un'istanza. Se lo stato dell'istanza Amazon EC2 è diverso da running oppure se lo stato del sistema è impaired, il Dimensionamento automatico Amazon EC2 considera l'istanza non integra e la sostituisce. Ciò si applica quando l'istanza è in uno dei seguenti stati:

  • stopping

  • stopped

  • shutting-down

  • terminated

I controlli dello stato Amazon EC2 non richiedono alcuna configurazione speciale e sono sempre abilitati. Per ulteriori informazioni, consulta Tipi di controlli di stato nella Guida per l'utente di Amazon EC2.

Importante

Il Dimensionamento automatico Amazon EC2 consente a questi controlli dell'integrità di fallire occasionalmente senza intraprendere alcuna azione. Quando un controllo dello stato non riesce, Amazon EC2 Auto Scaling attende alcuni minuti AWS per risolvere il problema. Non contrassegna immediatamente un'istanza come Unhealthy quando lo stato dei controlli dello stato diventa impaired.

Se il Dimensionamento automatico Amazon EC2 rileva che lo stato di un'istanza non è più running, tuttavia, questa situazione è trattata come un fallimento immediato. In questo caso, contrassegna immediatamente l'istanza come Unhealthy e la sostituisce.

Eventi pianificati

Amazon EC2 può occasionalmente pianificare eventi sulle istanze da eseguire dopo un determinato timestamp. Per ulteriori informazioni, consulta Eventi pianificati per le tue istanze nella Guida per l'utente di Amazon EC2.

Se una delle istanze è interessata da un evento pianificato, Amazon EC2 Auto Scaling la considera non integra e la sostituisce. L'istanza non inizia a spegnersi finché non vengono raggiunte la data e l'ora specificate nel timestamp.

Controlli dello stato di Elastic Load Balancing

Quando attivi i controlli di integrità di Elastic Load Balancing per il tuo gruppo Auto Scaling, Amazon EC2 Auto Scaling può utilizzare i risultati di tali controlli per determinare lo stato di integrità di un'istanza.

Prima di poter attivare i controlli di integrità di Elastic Load Balancing per il tuo gruppo Auto Scaling, devi configurare un sistema di bilanciamento del carico Elastic Load Balancing e configurarne un controllo dello stato per determinare se le istanze sono integre. Per ulteriori informazioni, consulta Preparati a collegare un sistema di bilanciamento del carico Elastic Load Balancing.

Dopo aver collegato il sistema di bilanciamento del carico al gruppo Auto Scaling, si verifica quanto segue:

  • Il Dimensionamento automatico Amazon EC2 registra le istanze nel gruppo con scalabilità automatica con il load balancer.

  • Dopo che un'istanza ha terminato la registrazione, passa allo stato InService e diventa disponibile per l'uso con il load balancer.

Per impostazione predefinita, Amazon EC2 Auto Scaling ignora i risultati dei controlli dell'integrità di Elastic Load Balancing. Dopo aver attivato questi controlli di integrità per il gruppo Auto Scaling, quando Elastic Load Balancing riporta un'istanza registrata come, Unhealthy Amazon EC2 Auto Scaling contrassegna l'istanza al successivo controllo periodico dello stato e la Unhealthy sostituisce.

Se per il load balancer è abilitato lo svuotamento della connessione (ritardo di cancellazione), il Dimensionamento automatico Amazon EC2 attende il completamento delle richieste in transito o che il timeout massimo scada, prima di terminare le istanze non integre.

Nota

Per istruzioni su come collegare il load balancer e attivare i controlli di integrità di Elastic Load Balancing per il gruppo Auto Scaling, consulta. Collega un sistema di bilanciamento del carico Elastic Load Balancing al tuo gruppo Auto Scaling

Quando attivi i controlli dello stato di Elastic Load Balancing per un gruppo, Amazon EC2 Auto Scaling può sostituire le istanze che Elastic Load Balancing segnala come non integre, ma solo dopo che il sistema di bilanciamento del carico è attivo. InService Per ulteriori informazioni, consulta Verifica lo stato di collegamento del sistema di bilanciamento del carico.

Controlli dell'integrità VPC Lattice

Per impostazione predefinita, Dimensionamento automatico Amazon EC2 ignora i risultati dei controlli dell'integrità di VPC Lattice. Facoltativamente, puoi attivare questi controlli di integrità per il tuo gruppo Auto Scaling. Dopo aver eseguito questa operazione, quando VPC Lattice segnala un'istanza registrata come Unhealthy, il Dimensionamento automatico Amazon EC2 contrassegna l'istanza come Unhealthy nel successivo controllo periodico dell'integrità e la sostituisce. Il processo di registrazione delle istanze e quindi del relativo controllo dello stato è lo stesso utilizzato per i controlli dell'integrità di Elastic Load Balancing.

Nota

Per istruzioni su come collegare il gruppo target VPC Lattice e attivare i controlli dello stato di VPC Lattice per il gruppo Auto Scaling, consulta. Allegare un gruppo di destinazione VPC Lattice al gruppo con dimensionamento automatico

Quando attivi i controlli dello stato di VPC Lattice per un gruppo, Amazon EC2 Auto Scaling può sostituire le istanze che VPC Lattice segnala come non integre, ma solo dopo che il gruppo target è nello stato. InService Per ulteriori informazioni, consulta Informazioni sullo stato di collegamento del gruppo di destinazione VPC Lattice.

Come Amazon EC2 Auto Scaling riduce al minimo i tempi di inattività

Per impostazione predefinita, le nuove istanze vengono fornite contemporaneamente alla chiusura delle istanze esistenti, il che potrebbe impedire l'accettazione di nuove richieste fino a quando le nuove istanze non saranno completamente operative.

Se Amazon EC2 Auto Scaling determina che alcune istanze non sono più in esecuzione (o sono state Unhealthy contrassegnate con il comando set-instance-health), le sostituisce immediatamente. Tuttavia, se altre istanze risultino non integre, il Dimensionamento automatico Amazon EC2 utilizza l'approccio riportato di seguito per riparare gli errori. Questo approccio riduce al minimo i tempi di inattività che potrebbero verificarsi a causa di problemi temporanei o controlli di integrità configurati in modo errato.

  • Se è in corso un'attività di scaling e il gruppo Auto Scaling è inferiore alla capacità desiderata del 10% o più, Amazon EC2 Auto Scaling attende l'attività di scaling in corso prima di sostituire le istanze non integre.

  • Durante l'aumento orizzontale, il Dimensionamento automatico Amazon EC2 attende che le istanze superino un controllo dell'integrità iniziale. Attende inoltre il completamento del warmup dell'istanza predefinito per assicurarsi che le nuove istanze siano pronte.

  • Dopo che le istanze hanno terminato il riscaldamento e il gruppo ha raggiunto oltre il 90% della capacità desiderata, Amazon EC2 Auto Scaling sostituisce le istanze non integre come segue:

    • Il Dimensionamento automatico Amazon EC2 sostituisce solo fino al 10% della capacità desiderata del gruppo alla volta. Lo fa fino a quando tutte le istanze non integre saranno state sostituite.

    • Quando si sostituiscono le istanze, attende che le istanze superino un controllo dell'integrità iniziale. Prima di continuare, attende anche che il warmup predefinito dell'istanza sia finito.

Nota

Se la dimensione di un gruppo di Auto Scaling è sufficientemente piccola da far sì che il valore risultante del 10% sia inferiore a uno, Amazon EC2 Auto Scaling sostituisce invece le istanze non integre una alla volta. Questo potrebbe comportare tempi di inattività del gruppo.

Inoltre, se tutte le istanze di un gruppo con dimensionamento automatico sono segnalate come non integre dai controlli dell'integrità di Elastic Load Balancing e il sistema di bilanciamento del carico è nello stato InService, il Dimensionamento automatico Amazon EC2 potrebbe contrassegnare un numero inferiore di istanze non integre alla volta. Ciò può comportare una sostituzione molto inferiore di istanze alla volta rispetto al 10% applicato in altri scenari. In questo modo avrai tempo per risolvere il problema senza che Amazon EC2 Auto Scaling chiuda automaticamente l'intero gruppo.

Controlli sanitari per casi in una piscina calda

Amazon EC2 Auto Scaling esegue anche controlli di integrità sulle istanze in un pool caldo. Per ulteriori informazioni, consulta Visualizzare lo stato del controllo dell'integrità e il motivo degli errori relativi ad esso..

Considerazioni sul controllo dell’integrità

Di seguito sono riportate le considerazioni relative all'utilizzo dei controlli di integrità di Amazon EC2 Auto Scaling.

  • In alternativa, se è necessario che qualcosa accada sull'istanza che sta terminando o sull'istanza che si sta avviando, puoi utilizzare gli hook del ciclo di vita. Questi hook ti consentono di eseguire un'operazione personalizzata quando Amazon EC2 Auto Scaling avvia o termina le istanze. Per ulteriori informazioni, consulta Hook del ciclo di vita di Amazon EC2 Auto Scaling.

  • Amazon EC2 Auto Scaling non offre un modo per rimuovere i controlli dello stato di Amazon EC2 e degli eventi programmati dai controlli dell'integrità. Se non vuoi sostituire le istanze, ti consigliamo di sospendere il processo ReplaceUnhealthy e HealthCheck per ogni singolo gruppo con scalabilità automatica. Per ulteriori informazioni, consulta Sospendi e riprendi i processi di Amazon Auto EC2 Scaling.

  • Per impostare manualmente lo stato dell'integrità di un'istanza non integra su Healthy, puoi provare a utilizzare il comando set-instance-health. Se si riceverà un errore, ciò sarà probabilmente dovuto al fatto che istanza è già in corso di terminazione. In generale, impostare lo stato di integrità di un'istanza su Healthy con il comando set-instance-health è utile solo nei casi in cui il processo ReplaceUnhealthy o il processo Terminate è sospeso.

  • Se devi risolvere i problemi di un'istanza senza interferenze dovute ai controlli di integrità, puoi mettere l'istanza in stato. Standby Amazon EC2 Auto Scaling non esegue controlli di integrità sulle istanze che si trovano nello stato fino a quando le istanze non vengono rimesse in Standby servizio. Per ulteriori informazioni, consulta Rimuovere temporaneamente le istanze dal gruppo con scalabilità automatica.

  • Quando l'istanza è terminata, i relativi indirizzi IP elastici sono disassociati e non vengono automaticamente associati alla nuova istanza. È necessario associare manualmente i indirizzi IP elastici alla nuova istanza o farlo automaticamente, con una soluzione basata su hook del ciclo di vita. Per ulteriori informazioni, consulta Indirizzi IP elastici nella Guida per l'utente di Amazon EC2.

  • Analogamente, quando l'istanza viene terminata, i relativi volumi EBS collegati vengono scollegati (o eliminati a seconda dell'attributo DeleteOnTermination del volume). È necessario collegare manualmente questi volumi EBS alla nuova istanza o farlo automaticamente con una soluzione basata su un hook del ciclo di vita. Per ulteriori informazioni, consulta Collegare un volume Amazon EBS a un'istanza nella Amazon EBS User Guide.

Controlli dell'integrità personalizzati

In alternativa, puoi eseguire attività di rilevamento dell'integrità personalizzate sulle istanze del gruppo con dimensionamento automatico e impostare lo stato di integrità di un'istanza come Unhealthy se l’operazione ha esito negativo. In questo modo, i controlli dell'integrità vengono estesi utilizzando una combinazione di controlli dell'integrità personalizzati, controlli di stato Amazon EC2 e controlli dell'integrità Elastic Load Balancing, se abilitati.

Puoi inviare le informazioni sull'integrità delle istanze direttamente dal tuo sistema al Dimensionamento automatico Amazon EC2 utilizzando la AWS CLI o l'SDK. Gli esempi seguenti mostrano come utilizzare AWS CLI per configurare lo stato di integrità di un'istanza e quindi verificare lo stato di integrità dell'istanza.

Utilizzare il seguente comando, set-instance-health, per impostare lo stato d'integrità dell'istanza specificata su Unhealthy.

aws autoscaling set-instance-health --instance-id i-1234567890abcdef0 --health-status Unhealthy

Per impostazione predefinita, questo comando rispetta il periodo di tolleranza del controllo dell'integrità. Tuttavia, è possibile sovrascrivere questo comportamento e non rispettare il periodo di tolleranza includendo l'opzione --no-should-respect-grace-period.

Per verificare lo stato dell'istanza sia Unhealthy, utilizza il seguente comando: describe-auto-scaling-groups.

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

Di seguito è riportato un esempio di risposta che mostra che lo stato dell'istanza è Unhealthy e che questa sta per essere terminata.

{ "AutoScalingGroups": [ { .... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-1234567890abcdef0" }, "InstanceId": "i-1234567890abcdef0", "InstanceType": "t2.micro", "HealthStatus": "Unhealthy", "LifecycleState": "Terminating" }, ... ] } ] }