¿Por qué mi política de Amazon EC2 Auto Scaling no se activa cuando mi alarma de CloudWatch cambia de estados?

8 minutos de lectura
0

He configurado una alarma de Amazon CloudWatch para activar mi política de Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling. ¿Por qué mi política de Amazon EC2 Auto Scaling no se activa cuando mi alarma de CloudWatch cambia de estado?

Descripción breve

Cuando una alarma de CloudWatch pasa a un nuevo estado de alarma (OK, ALARM, o INSUFFICIENT_DATA), la alarma invoca cualquier acción configurada para ese estado. Amazon EC2 Auto Scaling solo usa el periodo configurado en la alarma para determinar si el estado debe cambiar. Por lo tanto, en el caso de las acciones de Auto Scaling, la alarma sigue invocando la acción configurada cada minuto que la alarma permanezca en el nuevo estado, independientemente del periodo configurado.

Entre los motivos más comunes por los que un cambio en el estado de alarma de CloudWatch no activa una política de Amazon EC2 Auto Scaling se incluyen los siguientes:

  • La acción de Auto Scaling no está habilitada para la alarma de CloudWatch, lo que impide que se invoque la política de escalado.
  • La política de escalado del grupo de Auto Scaling está deshabilitada. Una política deshabilitada impide que se evalúe el grupo.
  • El grupo de Auto Scaling tiene políticas de escalado sencillo o políticas de escalado por pasos contradictorias que impiden que se activen algunas de las políticas.
  • El grupo de Auto Scaling tiene un enlace de ciclo de vida incompleto, lo que impide que se apliquen todas las políticas de escalado sencillo. 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 el 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 sigue teniendo en cuenta para la capacidad del grupo (para desescalar horizontalmente) a fin de evitar un escalado excesivo. El enlace de ciclo de vida se completa cuando se agota el tiempo de espera o cuando se realiza una llamada a la API CompleteLifecycleAction o a la Interfaz de la línea de comandos de AWS (AWS CLI).

Resolución

Antes de empezar, asegúrese de que la alarma de CloudWatch esté pasando al 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 activa las políticas de Amazon EC2 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 activar su política de Amazon EC2 Auto Scaling según lo previsto. Para obtener más información sobre cómo asegurarse de que la alarma active acciones, consulte ¿Cómo puedo asegurarme de que las alarmas de CloudWatch activan las acciones?.

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

  • Asegúrese de no haber suspendido los procesos de escalado (AlarmNotification, Launch, o Terminate) de su grupo de Amazon EC2 Auto Scaling. Asegúrese de reanudar estos procesos de escalado si están suspendidos.
  • No edite directamente las alarmas asociadas a las políticas de seguimiento de objetivos. La edición de estas alarmas 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.

Comprobación de si las acciones de Amazon EC2 Auto Scaling están habilitadas para la alarma de CloudWatch

Para que una alarma de CloudWatch invoque una política de Amazon EC2 Auto Scaling, el parámetro ActionsEnabled debe estar habilitado en la configuración de la alarma. Asegúrese de que el parámetro ActionsEnabled sea 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 habilitar las acciones de alarma mediante AWS CLI:

Nota: Si recibe errores al ejecutar los comandos de AWS CLI, asegúrese de utilizar la versión más reciente.

  1. Compruebe su configuración actual mediante describe-alarms de la siguiente manera. Asegúrese de reemplazar myalarm con el identificador de su alarma.
aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'
  1. Revise la salida. Si el parámetro ActionsEnabled no está establecido en true, habilite las acciones de alarma mediante enable-alarm-actions de la siguiente manera. Asegúrese de reemplazar myalarm con el identificador de su alarma.
aws cloudwatch enable-alarm-actions --alarm-names myalarm

Para comprobar y habilitar las acciones de alarma mediante la API de CloudWatch:

  1. Compruebe su configuración actual mediante DescribeAlarms.

  2. Si las acciones no están habilitadas para la alarma, habilite las acciones mediante EnableAlarmActions.

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

Para comprobar las políticas de escalado de su grupo mediante la consola de Amazon EC2:

  1. Inicie sesión en 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 Escalamiento automático.

  5. Anote el Tipo de política (Escalado por pasos, Escalado sencillo, o Seguimiento de destino).

Para comprobar las políticas de escalado mediante AWS CLI, utilice el comando describe-policies para el ID de su grupo de escalamiento automático con el parámetro --policy-types. El resultado muestra las políticas de cada tipo (SimpleScaling, StepScaling, o Target tracking).

Para comprobar las políticas de escalado mediante una API, utilice la llamada DescribePolicies con el parámetro PolicyTypes. El resultado muestra las políticas de cada tipo (SimpleScaling, StepScaling, o Target tracking).

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:

  • Se ha completado la política de escalado sencillo actualmente en vigor.
  • Ha transcurrido el periodo de recuperación de la política de Amazon EC2 Auto Scaling. Una política de escalado sencillo respeta el periodo de recuperación predeterminado o especificado de la política de Amazon EC2 Auto Scaling.

Nota: La ejecución de una política de escalado sencillo no bloquea por completo la ejecución de 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 Amazon EC2 Auto Scaling

Cuando está en vigor un enlace de ciclo de vida de escalamiento automático, no se ejecutan políticas de escalado sencillo. Si utiliza una política de escalado sencillo en su grupo de Auto Scaling, asegúrese de detener cualquier enlace del ciclo de vida.

Nota: Las políticas de escalado por pasos se siguen activando si hay un enlace de ciclo de vida en curso. Sin embargo, las políticas se escalan lentamente porque las instancias no inician su temporizador de preparación hasta que finaliza el enlace de ciclo de vida.

Compruebe que todos los enlaces de ciclo de vida se hayan completado con un resultado CONTINUE o ABANDON una vez que hayan caducado sus periodos de tiempo de espera globales o periodos de espera de latido.

Para comprobar las acciones de enlace de ciclo de vida mediante la consola de Amazon EC2:

  1. Inicie sesión en 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.

  6. Para conocer los pasos para finalizar un enlace de ciclo de vida, consulte Completar el enlace de ciclo de vida. Para completar las acciones de enlace de ciclo de vida mediante la AWS CLI, utilice el comando complete-lifecycle-action. Para completar las acciones de enlace de ciclo de vida mediante una API, realice una llamada a CompleteLifecycleAction.


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 3 años