Come posso aggiornare correttamente il mio gruppo con dimensionamento automatico quando aggiorno il mio stack AWS CloudFormation?

3 minuti di lettura
0

Ho realizzato aggiornamenti al mio gruppo con dimensionamento automatico, ma non ho ottenuto i risultati desiderati durante un aggiornamento dello stack di AWS CloudFormation.

Breve descrizione

La risorsa AWS::AutoScaling::AutoScalingGroup utilizza l’attributo UpdatePolicy per definire come una risorsa del gruppo con dimensionamento automatico viene aggiornata quando lo stack AWS CloudFormation viene aggiornato. Se non hai configurato correttamente le impostazioni per l'attributoUpdatePolicy, l'aggiornamento continuo può produrre risultati imprevisti.

Puoi utilizzare la policy AutoScalingRollingUpdate per controllare il modo in cui AWS CloudFormation gestisce gli aggiornamenti continui per un gruppo con dimensionamento automatico. Questo approccio comune mantiene lo stesso gruppo con dimensionamento automatico e quindi sostituisce le vecchie istanze in base ai parametri impostati.

Nota: la seguente risoluzione si concentra unicamente sulla policy AutoScalingRollingUpdate. È possibile utilizzare la policy AutoScalingReplacingReplacingUpdate per ripristinare immediatamente lo stack senza errori.

La policy AutoScalingRollingUpdate supporta le seguenti opzioni di configurazione:

"UpdatePolicy": {
  "AutoScalingRollingUpdate": {
    "MaxBatchSize": Integer,
    "MinInstancesInService": Integer,
    "MinSuccessfulInstancesPercent": Integer,
    "PauseTime": String,
    "SuspendProcesses": [ List of processes ],
    "WaitOnResourceSignals": Boolean
  }
}

Risoluzione

Per scoprire cosa impedisce al tuo gruppo con dimensionamento automatico di aggiornarsi correttamente durante un aggiornamento dello stack, esegui i seguenti scenari di risoluzione dei problemi, se necessario:

Configura WaitOnResourceSignals e PauseTime per evitare problemi con i segnali di successo

Nella tua policy AutoScalingRollingUpdate, imposta la proprietà WaitOnResourceSignals su false.

Nota: se WaitOnResourceSignals è impostato su true,PauseTime cambia in un valore di timeout. AWS CloudFormation attende di ricevere un segnale di successo fino al tempo massimo specificato dal valore di PauseTime. Se non viene ricevuto alcun segnale, AWS CloudFormation annulla l'aggiornamento. Quindi, AWS CloudFormation esegue il ripristino dello stack con le stesse impostazioni, incluso lo stesso valore PauseTime. Per ulteriori informazioni, vedere Aggiungere una policy di aggiornamento a un gruppo con dimensionamento automatico.

Configura MinSuccessfulInstancePercent per evitare il ripristino dello stack

Se stai sostituendo un numero elevato di istanze durante un aggiornamento continuo e stai aspettando un segnale di successo per ogni istanza, imposta il valore della proprietà MinSuccessfulInstancePercent nella tua policy AutoScalingRollingUpdate.

Nota: impostare la proprietà MinSuccessfulInstancePercent impedisce ad AWS CloudFormation di eseguire il ripristino dell'intero stack se anche solo una singola istanza non viene avviata. Per ulteriori informazioni, vedere Attributo di UpdatePolicy.

Configura SuspendProcesses per evitare modifiche impreviste al gruppo con dimensionamento automatico

Durante un aggiornamento continuo, sospendi i seguenti processi di dimensionamento automatico:

  • HealthCheck
  • ReplaceUnhealthy
  • AZRebalance
  • AlarmNotification
  • ScheduledActions

Importante: se utilizzi il tuo gruppo con dimensionamento automatico con Elastic Load Balancing, non sospendere i seguenti processi: Avvia, Termina e aggiungi a LoadBalancer. Questi processi sono necessari per realizzare aggiornamenti continui.

Nota: se un'azione di ridimensionamento imprevista modifica lo stato del gruppo con dimensionamento automatico durante un aggiornamento continuo, l'aggiornamento può fallire. L'errore può derivare da una visione incoerente del gruppo con dimensionamento automatico di AWS CloudFormation.


AWS UFFICIALE
AWS UFFICIALEAggiornata 4 anni fa