Perché Amazon EC2 Auto Scaling non ha interrotto un'istanza non integra?

6 minuti di lettura
0

Ho configurato un gruppo Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling, ma non termina un'istanza Amazon EC2 non sana. Come posso risolvere questo problema?

Breve descrizione

Amazon EC2 Auto Scaling è in grado di determinare automaticamente lo stato di integrità di un'istanza utilizzando i controlli di stato di Amazon EC2 e i controlli di integrità di Elastic Load Balancing (ELB). Tutte le azioni di scalabilità di un gruppo Amazon EC2 Auto Scaling vengono registrate nella cronologia delle attività sulla console Amazon EC2. A volte non è possibile determinare perché Amazon EC2 Auto Scaling non abbia interrotto un'istanza non integra solo dalla cronologia delle attività.

Puoi trovare ulteriori dettagli sullo stato di un'istanza non integra e su come terminarla nella console Amazon EC2. Controlla le seguenti impostazioni:

  • Periodo di grazia del controllo sanitario
  • Processi sospesi
  • Stato dell'istanza nella console EC2
  • Stato dell'istanza nei gruppi Auto Scaling
  • Controlli sanitari ELB

Risoluzione

Innanzitutto, annota lo stato dell'istanza in Amazon EC2 Auto Scaling:

  1. Accedi alla console Amazon EC2. Nel riquadro di navigazione sotto Auto Scaling, scegli Auto Scaling Groups, quindi seleziona il gruppo dell'istanza.
  2. Scegliete la vista Istanze e annotate lo stato di salute dell'istanza.

Periodo di grazia del controllo sanitario

Amazon EC2 Auto Scaling non interrompe un'istanza che è entrata in servizio in base ai controlli di stato di EC2 e ai controlli di integrità dell'ELB fino alla scadenza del periodo di tolleranza per il controllo dello stato. Per trovare la durata del periodo di grazia:

  1. Nel pannello di navigazione della console Amazon EC2, in Auto Scaling, scegli Auto Scaling Groups, quindi seleziona il gruppo dell'istanza.
  2. Scegli la visualizzazione Dettagli e annota la durata del periodo di prova del controllo dello stato di salute.

Processi sospesi

La sospensione di processi come HealthCheck, ReplaceUnhealthy o Terminate influisce sulla capacità di Amazon EC2 Auto Scaling di rilevare, sostituire o chiudere istanze non integre:

  1. In Auto Scaling nel riquadro di navigazione del pannello di navigazione della console Amazon EC2, scegli Auto Scaling Groups, quindi seleziona il gruppo dell'istanza.
  2. Scegli la vista Dettagli.
  3. Scegli Modifica e rimuovi uno dei seguenti processi da Processi sospesi, se presenti: HealthCheck, ReplaceUnhealthy o Termina.
  4. Scegli Salva per riprendere i processi.

Stato dell'istanza nella console Amazon EC2

Amazon EC2 Auto Scaling non interrompe immediatamente le istanze con stato compromesso. Invece, Amazon EC2 Auto Scaling attende alcuni minuti per il ripristino dell'istanza. Per verificare se un'istanza è compromessa:

  1. Nel pannello di navigazione della console Amazon EC2, in Istanze, scegli Istanze, quindi seleziona l'istanza.
  2. Scegli la vista Status Checks e annota se lo stato dell'istanza è compromesso.

Amazon EC2 Auto Scaling potrebbe anche ritardare o non interrompere le istanze che non segnalano i dati per i controlli di stato. Questo di solito accade quando i dati non sono sufficienti per le metriche di controllo dello stato in Amazon CloudWatch. Per terminare queste istanze manualmente:

  1. Nel pannello di navigazione della console Amazon EC2, in Istanze, scegli Istanze, quindi seleziona l'istanza.
  2. Scegli la vista Monitoraggio e annota lo stato dell'istanza.
  3. Se lo stato è Dati insufficienti, seleziona nuovamente l'istanza, scegli il menu Azioni , scegli Stato dell'istanza e quindi scegli Termina.

Stato dell'istanza in Auto Scaling Group

Amazon EC2 Auto Scaling non esegue controlli di integrità sulle istanze in stato di standby. Per riportare le istanze Standby allo stato InService:

  1. Nel pannello di navigazione della console Amazon EC2, in Auto Scaling Groups, seleziona il gruppo dell'istanza, quindi scegli la vista Istanze.
  2. Scegli il menu di filtro Qualsiasi stato del ciclo di vita, quindi seleziona Standby.
  3. Per riprendere i controlli di integrità, apri il menu contestuale (clic con il pulsante destro del mouse) per un'istanza, quindi scegli Set to InService, che chiude lo stato Standby.

Amazon EC2 Auto Scaling attende di terminare un'istanza se è in attesa del completamento di un hook del ciclo di vita. Per trovare lo stato del ciclo di vita e completare l'hook del ciclo di vita:

  1. Nel pannello di navigazione della console Amazon EC2, in Auto Scaling, scegli Auto Scaling Groups, quindi seleziona il gruppo dell'istanza.
  2. Scegli la vista Istanze e annota lo stato del ciclo di vita dell'istanza.
  3. Se lo stato è termining:wait, puoi controllare il timeout del battito cardiaco e quindi eseguirecompleting-lifecycle-action per completare l'hook del ciclo di vita.

Se Amazon EC2 Auto Scaling è in attesa del completamento del periodo di esaurimento della connessione ELB, attende di terminare l'istanza:

  1. Nel pannello di navigazione della console Amazon EC2, in Auto Scaling, scegli Auto Scaling Groups, quindi seleziona il gruppo dell'istanza.
  2. Scegli la visualizzazione Istanze e conferma che il ciclo di vita dell'istanza sta terminando.
  3. Scegli la visualizzazione Cronologia attività.
  4. Per Filter, seleziona Waiting for ELB connection drain per confermare se il gruppo è in attesa di terminare l'istanza.

Controlli sanitari ELB

Le impostazioni ELB possono influire sui controlli di integrità e sulla sostituzione delle istanze. Nota lo stato dell'istanza nella console ELB:

  1. Nel pannello di navigazione della console di Amazon EC2, in Load Balancing, scegli Load Balancers, quindi seleziona il load balancer su cui è registrata l'istanza.
  2. Scegli la vista Istanze e annota lo stato e la descrizione dell'istanza.

Amazon EC2 Auto Scaling non utilizza i risultati dei controlli di integrità ELB per determinare lo stato di salute di un'istanza quando la configurazione del controllo dello stato del gruppo è impostata su EC2. Di conseguenza, Amazon EC2 Auto Scaling non interrompe le istanze che non superano i controlli di integrità dell'ELB. Se lo stato di un'istanza è OutofService sulla console ELB, ma lo stato dell'istanza è Inferiore sulla console Amazon EC2 Auto Scaling, conferma che il tipo di controllo dello stato sia impostato su ELB:

  1. Nel pannello di navigazione della console Amazon EC2, in Auto Scaling, scegli Auto Scaling Groups, quindi seleziona il gruppo dell'istanza.
  2. Scegli la vista Dettagli e annota il tipo di controllo sanitario.
  3. Scegli Modifica e seleziona ELB per il tipo di controllo sanitario, quindi scegli Salva.

Se il tipo di controllo dello stato del gruppo è già ELB e lo stato dell'istanza sulla console ELB è OutOfService, utilizza la descrizione dello stato annotata in precedenza per determinare ulteriori passaggi:

  • La registrazione dell'istanza è ancora in corso: attendi che il load balancer completi la registrazione dell'istanza e che l'istanza entri nello stato InService.
  • L'istanza si trova nella zona di disponibilità di Amazon EC2 per la quale LoadBalancer non è configurato per indirizzare il traffico verso: modifica le sottoreti del gruppo Auto Scaling o del load balancer per assicurarti che siano uguali alle sottoreti dell'istanza.
  • L'istanza non ha superato consecutivamente il numero di controlli sanitari di HealthyThreshold configurato: attendi che ELB completi i controlli di integrità e che l'istanza entri nello stato InService.

Informazioni correlate

Risolvi i problemi con controlli di stato falliti

Perché Amazon EC2 Auto Scaling ha interrotto un'istanza?

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa