¿Cómo puedo actualizar correctamente mi grupo de escalamiento automático al actualizar la pila de AWS CloudFormation?

3 minutos de lectura
0

He realizado actualizaciones en mi grupo de escalamiento automático, pero no he obtenido los resultados que esperaba durante una actualización de la pila de AWS CloudFormation.

Descripción corta

El recurso AWS::AutoScaling::AutoScalingGroup utiliza el atributo UpdatePolicy para definir cómo se actualiza un recurso de grupo de escalamiento automático cuando se actualiza la pila de AWS CloudFormation. Si no tiene la configuración adecuada para el atributo UpdatePolicy, la actualización progresiva puede producir resultados inesperados.

Puede utilizar la política AutoScalingRollingUpdate para controlar la forma en que AWS CloudFormation gestiona las actualizaciones progresivas de un grupo de escalamiento automático. Este enfoque común mantiene el mismo grupo de escalamiento automático y después reemplaza las instancias antiguas en función de los parámetros que establezca.

Nota: La siguiente resolución se centra únicamente en la política AutoScalingRollingUpdate. Puede utilizar la política AutoScalingReplacingUpdate para revertir inmediatamente la pila sin errores.

La política AutoScalingRollingUpdate admite las siguientes opciones de configuración:

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

Resolución

Para averiguar qué impide que su grupo de escalamiento automático se actualice correctamente durante una actualización de pila, pruebe los siguientes escenarios de solución de problemas según sea necesario:

Configure WaitOnResourceSignals y PauseTime para evitar problemas con las señales de éxito

En su política de AutoScalingRollingUpdate, establezca la propiedad WaitOnResourceSignals en false.

Nota: Si WaitOnResourceSignals se establece en true, PauseTime cambia a un valor de tiempo de espera. AWS CloudFormation espera a recibir una señal de éxito durante el tiempo máximo especificado por el valor PauseTime. Si no se recibe ninguna señal, AWS CloudFormation cancela la actualización. A continuación, AWS CloudFormation revierte la pila con la misma configuración, incluido el mismo valor PauseTime. Para obtener más información, consulte Agregar una política de actualización a un grupo de escalamiento automático.

Configurar MinSuccessfulInstancePercent para evitar la reversión de la pila

Si va a reemplazar un gran número de instancias durante una actualización progresiva y está esperando una señal de éxito para cada instancia, establezca el valor de la propiedad MinSuccessfulInstancesPercent en su política AutoScalingRollingUpdate.

Nota: Al establecer la propiedad MinSuccessfulInstancesPercent, se evita que AWS CloudFormation revierta toda la pila si solo deja de lanzarse una instancia. Para obtener más información, consulte el atributo UpdatePolicy.

Configurar SuspendProcesses para evitar cambios inesperados en el grupo de escalamiento automático

Durante una actualización progresiva, suspenda los siguientes procesos de escalamiento automático:

  • HealthCheck
  • ReplaceUnhealthy
  • AZRebalance
  • AlarmNotification
  • ScheduledActions

Importante: Si utiliza el grupo de escalamiento automático con Elastic Load Balancing, no suspenda los siguientes procesos: Launch, Terminate y AddToLoadBalancer. Se requieren estos procesos para realizar actualizaciones progresivas.

Nota: Si una acción de escalamiento inesperada cambia el estado del grupo de escalamiento automático durante una actualización progresiva, puede ser que la actualización falle. El error puede deberse a una visión incoherente del grupo de escalamiento automático por parte de AWS CloudFormation.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 4 años