¿Por qué el cambio de estado de mi alarma de CloudWatch no invoca mi política de Amazon EC2 Auto Scaling?

7 minutos de lectura
0

Mi alarma de Amazon CloudWatch está configurada para invocar mi política de Auto Scaling de Amazon Elastic Compute Cloud (Amazon EC2), pero no funciona.

Descripción corta

Cuando una alarma de CloudWatch pasa a un nuevo estado de alarma, la alarma invoca todas las acciones configuradas para ese estado de alarma. Amazon EC2 Auto Scaling utiliza el período de tiempo configurado en la alarma para determinar si el estado de la alarma debe cambiar. Sin embargo, una alarma invoca una acción de escalamiento automático una vez por minuto cuando la alarma permanece en un estado nuevo, independientemente del período de tiempo configurado.

Los motivos más comunes por los que un cambio de estado de alarma de CloudWatch no invoca una política de Amazon EC2 Auto Scaling son los siguientes:

  • La acción Auto Scaling no está configurada para la alarma de CloudWatch.
  • La política de grupo de Amazon EC2 Auto Scaling no está configurada. Esto impide la evaluación del grupo de Auto Scaling.
  • El grupo de Auto Scaling tiene políticas de escalado simples o políticas de escalado escalonado que entran en conflicto. Esto evita que se inicien algunas políticas.
  • El grupo de Auto Scaling tiene un enlace de ciclo de vida incompleto. Esto evita que se apliquen todas las políticas de escalado simples. Una instancia pendiente también provoca retrasos en las políticas de escalado por pasos y de seguimiento de destino. Esto se debe a que Auto Scaling no cuenta la instancia para la capacidad del grupo hasta que finalice el enlace de ciclo de vida y se complete el tiempo de calentamiento (en el caso de escalado horizontal). La instancia se tiene en cuenta para la capacidad del grupo (para la escalabilidad) para evitar un escalado excesivo.
  • El enlace del ciclo de vida finaliza cuando se agota el tiempo de espera o cuando se llama a la operación CompleteLifecycleAction o a la interfaz de línea de comandos de AWS (CLI de AWS).

Resolución

Antes de empezar, compruebe que la alarma de CloudWatch esté en estado ALARM. Si la configuración de una alarma no coincide con el umbral de la métrica que está supervisando, es posible que la alarma no pase al estado ALARM. Si una alarma no cambia de estado, no invoca las políticas de Auto Scaling. Para obtener más información sobre cómo se evalúan las alarmas de CloudWatch, consulte Evaluating an Alarm.

Compruebe que su alarma de CloudWatch entra en el estado ALARM cuando se espera comprobando el valor límite de la alarma. Aumente o disminuya el límite para que coincida con el valor esperado. Además, revise el Período y los Períodos de evaluación de la alarma. Puede que tenga que editar el periodo y el periodo de evaluación de la alarma para invocar su política de Auto Scaling según lo previsto. Para obtener más información sobre la verificación de las acciones de alarma, consulte How can I be sure that CloudWatch alarms activate actions?

Importante: Al crear o editar alarmas, tenga en cuenta lo siguiente:

  • Compruebe que no ha suspendido los procesos de escalado de su grupo de Auto Scaling. Si se suspenden los procesos de escalado, reanude los procesos.
  • Nunca cree, edite ni elimine las alarmas asociadas a las políticas de escalado del seguimiento de objetivos. Cambiar estas alarmas creadas automáticamente puede provocar efectos no deseados. El umbral de estas alarmas se determina automáticamente en función del valor objetivo establecido en la política de escalado.

Compruebe si las acciones de Auto Scaling están permitidas para la alarma de CloudWatch

Para que una alarma de CloudWatch invoque una política de Auto Scaling, active el parámetro ActionsEnabled en la configuración de la alarma. Comprueba que el parámetro ActionsEnabled esté establecido en true en la configuración de la alarma.

Nota: Si crea o actualiza la alarma mediante la consola de CloudWatch, el parámetro ActionsEnabled se establece en true de forma predeterminada.

Para comprobar y permitir las acciones de alarma mediante la CLI de AWS, siga estos pasos:

  1. Compruebe la configuración con el comando describe-alarms.

    aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'

    Nota: Sustituya myalarm por el identificador de su alarma.

  2. Revise el resultado. Si el parámetro ActionsEnabled no está establecido en true, active las acciones de alarma con el comando enable-alarm-actions.

    aws cloudwatch enable-alarm-actions --alarm-names myalarm

Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulte Errores de solución de problemas de la AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.

Para comprobar y activar las acciones de alarma con la API de CloudWatch, siga estos pasos:

  1. Llame a la operación DescribeAlarms para comprobar la configuración actual.
  2. Si no se permiten acciones para la alarma, llame a la operación EnableAlarmActions para activar las acciones.

Comprobación de las políticas de escalado sencillo y escalado por pasos de su grupo de Auto Scaling

Para comprobar las políticas de escalado de su grupo en la consola de Amazon EC2, complete los pasos siguientes:

  1. Abra la consola de Amazon EC2.
  2. En el panel de navegación, en Auto Scaling, seleccione Grupos de Auto Scaling.
  3. En el panel de contenido, seleccione su grupo de Auto Scaling.
  4. Elija la pestaña Escalamiento automático y, a continuación, tome nota del tipo de política.

Para comprobar las políticas de escalado con la CLI de AWS, ejecute el comando describe-policies con el parámetro --policy-types. Para comprobar las políticas de escalado con una API de AWS, llame a la operación DescribePolicies con el parámetro PolicyTypes. El resultado muestra cada tipo de política.

Si tiene una política de escalado sencillo en vigor, no se invocará ninguna otra política de escalado sencillo hasta que se cumplan las siguientes condiciones:

  • La política de escalado simple en vigor está completa.
  • El período de enfriamiento de la política de Auto Scaling ha transcurrido. Una política de escalado sencillo respeta el periodo de recuperación predeterminado o especificado de la política de Auto Scaling.

Nota: La ejecución de una política de escalado sencillo no bloquea por completo las políticas de escalado por pasos o de seguimiento de destino. Asegúrese de que no se apliquen políticas contradictorias al mismo tiempo.

Comprobación de si hay enlaces de ciclo de vida de Auto Scaling en su política de Auto Scaling

Las actividades de escalado de una política de escalado simple se detienen cuando se ejecuta un enlace del ciclo de vida de Auto Scaling. Sin embargo, se sigue ejecutando una política de escalado gradual si se está ejecutando un enlace de ciclo de vida.

Compruebe que todos los enlaces del ciclo de vida finalicen con un resultado CONTINUE o ABANDON una vez finalizado el período de tiempo de espera global o el período de tiempo de espera de latidos.

Para comprobar las acciones de enlace del ciclo de vida en la consola de Amazon EC2, siga estos pasos:

  1. Abra la consola de Amazon EC2.
  2. En el panel de navegación, en Auto Scaling, seleccione Grupos de Auto Scaling.
  3. En el panel de contenido, seleccione su grupo de Auto Scaling.
  4. Seleccione la pestaña Actividad y, a continuación, desplácese hasta la sección Historial de actividades.
  5. Revise la actividad para ver si hay alguna acción de enlace de ciclo de vida en curso.

Para ver los pasos para completar un enlace de ciclo de vida, consulte Complete a lifecycle action.

Información relacionada

¿Cómo puedo solucionar los problemas de escalamiento con mi grupo de Amazon EC2 Auto Scaling?

Solución de problemas de Amazon EC2 Auto Scaling

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 9 meses