5

Sono server in esecuzione in un gruppo di scalabilità automatica AWS. I server in esecuzione sono dietro un sistema di bilanciamento del carico. Sto usando l'ELB per gestire gli healthcheck dei gruppi di ridimensionamento automatico. Quando i server sono stati avviati e si uniscono al gruppo di ridimensionamento automatico, al momento sono immediatamente collegati al servizio di bilanciamento del carico.AWS autoscale Verifica dello stato ELB periodo di tolleranza

Quanto tempo (ad esempio il periodo di prova del controllo di integrità) è necessario attendere finché non li consento di collegarsi al servizio di bilanciamento del carico?

Dovrebbe essere solo dopo che i server sono in uno stato di funzionamento?

Dovrebbe essere solo dopo che il server ha passato il sistema e lo stato dell'istanza controlla?

risposta

16

Ci sono due tipi di Health Check per gruppi auto in scala:

  • EC2 Health Check: Questo utilizza la EC2 status check per determinare se l'istanza è sano. Funziona solo a livello di hypervisor e non può vedere lo stato di salute di un'applicazione in esecuzione su un'istanza.
  • Controllo dello stato del bilanciamento del carico elastico (ELB): Questo fa sì che il gruppo di ridimensionamento automatico deleghi il controllo dello stato a Elastic Load Balancer, che è in grado di controllare un URL (S) specifico. Ciò significa che può controllare che un'applicazione stia funzionando correttamente su un'istanza.

Dato che il sistema sta utilizzando un controllo dello stato ELB, il ridimensionamento automatico si affiderà ai risultati del controllo dello stato ELB per determinare lo stato di ogni istanza EC2. Questo può essere leggermente pericoloso perché, se l'istanza richiede un po 'di tempo per iniziare, il controllo dello stato potrebbe contrassegnare erroneamente l'istanza come non salutare. Questo, a sua volta, farebbe sì che Auto Scaling terminasse l'istanza e avvii una sostituzione.

Per evitare questa situazione, è disponibile l'impostazione periodo di tolleranza di integrità (in secondi) nella configurazione del gruppo di ridimensionamento automatico. Questo indica per quanto tempo Auto Scaling deve attendere fino a quando non inizia a utilizzare il controllo dello stato ELB (che, a sua volta, ha le impostazioni per quanto spesso controllare e quanti controlli sono necessari per contrassegnare un'istanza come Sana/Non salutare).

Quindi, se l'applicazione impiega 3 minuti per l'avvio, impostare il periodo di tolleranza di controllo integrità su un minimo di 180 secondi (3 minuti). La documentazione non indica se la tempistica inizia dal momento in cui un'istanza è contrassegnata come "In esecuzione" o se è quando i controlli di stato sono completi, quindi esegue alcuni test di temporizzazione per evitare situazioni di "rimbalzo".

Infatti, Si consiglia di impostare il periodo di tolleranza di controllo integrità su un valore significativamente superiore (ad esempio, raddoppiare il tempo richiesto). Ciò non influirà sul funzionamento del sistema poiché un'istanza sana inizierà a servire il traffico non appena viene verificato il controllo dello stato ELB, che prima del periodo di tolleranza del ridimensionamento automatico. Il caso peggiore è che un'istanza veramente malsana verrà terminata pochi minuti dopo, ma questo dovrebbe essere un evento raro.

+0

la verifica dello stato ELB funziona con ALB? – kintuparantu

+0

@kintuparantu I contatori di stato dell'applicazione Load Balancer sono configurati su il gruppo target Vedi: [Health Checks per i tuoi gruppi target] (https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html) Se hai ulteriori domande, per favore inizia una nuova domanda piuttosto che chiedere tramite un commento su una vecchia domanda. –

1

il documentation (ora) recita: "Il periodo di grazia inizia dopo l'istanza passa il sistema di EC2 lo stato di controllo e l'istanza di controllo dello stato."

Quindi, almeno secondo la documentazione di metà 2015 di AWS, la risposta è "dopo che i server hanno passato il sistema e i controlli dello stato dell'istanza."Questo è il modo in cui abbiamo impostato il nostro ambiente e, anche se non ho eseguito i tempi precisi, sembra corretto.

Problemi correlati