Cree una política de escalado predictivo para un grupo de Auto Scaling - Amazon EC2 Auto Scaling

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree una política de escalado predictivo para un grupo de Auto Scaling

Los siguientes procedimientos le ayudan a crear una política de escalado predictivo mediante el comando AWS Management Console o AWS CLI.

Si el grupo de escalado automático es nuevo, debe proporcionar al menos 24 horas de datos antes de que Amazon EC2 Auto Scaling pueda generar una previsión para el grupo de escalado automático.

Creación de una política de escalado predictivo (consola)

Si es la primera vez que crea una política de escalado predictivo, le recomendamos que utilice la consola para crear varias políticas de escalado predictivo solo en el modo de previsión. Esto le permite probar los posibles efectos de diferentes métricas y valores objetivo. Puede crear varias políticas de escalado predictivo para cada grupo de escalado automático, pero solo una de las políticas se puede utilizar para el escalado activo.

Utilice el procedimiento siguiente para crear una política de escalado predictivo mediante métricas predefinidas (CPU, E/S de red o recuento de solicitudes del equilibrador de carga de aplicación). La forma más simple de crear una política de escalado predictivo es mediante métricas predefinidas. Si prefiere utilizar métricas personalizadas en su lugar, consulte la Creación de una política de escalado predictivo en la consola (métricas personalizadas).

Para crear una política de escalado predictivo
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

    Se abre un panel dividido en la parte inferior de la página.

  3. En la pestaña Automatic scaling (Escalado automático), en Scaling policies (Políticas de escalado), elija Create predictive scaling policy (Crear política de escalado automático).

  4. Introduzca un nombre para la política.

  5. Active Scale based on forecast (Escalado basado en pronóstico) para conceder a Amazon EC2 Auto Scaling permiso para empezar a escalar de inmediato.

    Para mantener la política en modo Forecast only (Solo pronóstico), mantenga Scale based on forecast (Escalado pasado en pronóstico) desactivado.

  6. En Metrics (Métricas), elija las métricas de la lista de opciones. Las opciones incluyen CPU, Network In (Entrada de red), Network Out (Salida de red), Application Load Balancer request count (Recuento de solicitudes de Application Load Balancer) y Custom metric pair (Par de métricas personalizadas).

    Si eligió Application Load Balancer request count per target (Recuento de solicitudes de Application Load Balancer por destino), luego elija un grupo de destino en Target group (Grupo de destino). Application Load Balancer request count per target (Recuento de solicitudes de Application Load Balancer por destino) solo se admite si ha adjuntado un grupo de destino del Application Load Balancer al grupo de escalado automático.

    Si eligió Custom metric pair (Par de métricas personalizadas), elija métricas individuales en las listas desplegables de Load metric (Métrica de carga) y Scaling metric (Métrica de escalado).

  7. En Target utilization (Utilización de destino), ingrese el valor de destino que debe mantener Amazon EC2 Auto Scaling. Amazon EC2 Auto Scaling escala horizontalmente la capacidad hasta que la utilización media se encuentre en la utilización de destino, o hasta que alcance el número máximo de instancias que haya especificado.

    Si la métrica de escalado es… La utilización de destino representa…
    CPU

    Porcentaje de CPU que cada instancia debería utilizar idealmente.

    Entrada de red

    Número medio de bytes por minuto que cada instancia debería recibir idealmente.

    Salida de red

    Número medio de bytes por minuto que cada instancia debería enviar idealmente.

    Recuento de solicitudes del Application Load Balancer por destino

    Número medio de solicitudes por minuto que cada instancia debería recibir idealmente.

  8. (Opcional) En Pre-launch instances (Lanzamiento previo de instancias), elija con qué antelación desea que se lancen las instancias antes de que el pronóstico exija que aumente la carga.

  9. (Opcional) En Max capacity behavior (Comportamiento de capacidad máxima), elija si desea permitir que Amazon EC2 Auto Scaling escale horizontalmente más allá de la capacidad máxima del grupo cuando la capacidad prevista supere el máximo definido. Activar esta configuración permite que el escalado horizontal se produzca durante los periodos en los que se prevé que el tráfico sea el máximo.

  10. (Opcional) En Buffer maximum capacity above the forecasted capacity (Capacidad máxima del búfer por encima de la capacidad prevista, elija la capacidad adicional que se utilizará cuando la capacidad prevista se acerque o supere la capacidad máxima. El valor se especifica como porcentaje en relación con la capacidad prevista. Por ejemplo, si el búfer es 10, este valor indica un búfer del 10 por ciento. Por lo tanto, si la capacidad de previsión es 50 y la capacidad máxima es 40, la capacidad máxima nominal es 55.

    Si se establece en 0, Amazon EC2 Auto Scaling puede escalar la capacidad por encima de la capacidad máxima para que sea igual a la capacidad máxima, pero no la supere.

  11. Elija Create predictive scaling policy (Crear política de escalado predictivo).

Utilice el procedimiento siguiente para crear una política de escalado predictivo mediante métricas personalizadas. Las métricas personalizadas pueden incluir otras métricas proporcionadas por usted CloudWatch o en las que publique CloudWatch. Para utilizar el recuento de solicitudes de CPU, E/S de red o equilibrador de carga de aplicación por destino, consulte Creación de una política de escalado predictivo en la consola (métricas predefinidas).

Para crear una política de escalado predictivo mediante métricas personalizadas, debe hacer lo siguiente:

  • Debe proporcionar las consultas sin procesar que permiten a Amazon EC2 Auto Scaling interactuar con las métricas internas. CloudWatch Para obtener más información, consulte Política avanzada de escalado predictivo mediante métricas personalizadas. Para asegurarse de que Amazon EC2 Auto Scaling puede extraer los datos de las métricas CloudWatch, confirme que cada consulta devuelva puntos de datos. Confirme esto mediante la CloudWatch consola o la operación de la CloudWatch GetMetricDataAPI.

    nota

    Proporcionamos cargas JSON de ejemplo en el editor JSON de la consola de Amazon EC2 Auto Scaling. Estos ejemplos te proporcionan una referencia de los pares clave-valor necesarios para añadir otras CloudWatch métricas proporcionadas AWS o en las que publicaste anteriormente. CloudWatch Puede utilizarlos como punto de partida y, luego, personalizarlos en función de sus necesidades.

  • Si utiliza algún cálculo métrico, debe construir manualmente el JSON para que se ajuste a su escenario único. Para obtener más información, consulte Uso de expresiones de cálculos de métricas. Antes de utilizar las matemáticas métricas en su política, confirme que las consultas métricas basadas en expresiones matemáticas métricas son válidas y devuelven una única serie temporal. Confirme esto mediante la CloudWatch consola o la operación de la CloudWatch GetMetricDataAPI.

Si comete un error en una consulta al proporcionar datos incorrectos, como un nombre de grupo de escalado automático incorrecto, la previsión no tendrá ningún dato. Para solucionar problemas con las métricas personalizadas, consulte Consideraciones y solución de problemas.

Para crear una política de escalado predictivo
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

    Se abre un panel dividido en la parte inferior de la página.

  3. En la pestaña Automatic scaling (Escalado automático), en Scaling policies (Políticas de escalado), elija Create predictive scaling policy (Crear política de escalado automático).

  4. Introduzca un nombre para la política.

  5. Active Scale based on forecast (Escalado basado en pronóstico) para conceder a Amazon EC2 Auto Scaling permiso para empezar a escalar de inmediato.

    Para mantener la política en modo Forecast only (Solo pronóstico), mantenga Scale based on forecast (Escalado pasado en pronóstico) desactivado.

  6. En Metrics (Métricas), elija Custom metric pair (Par de métricas personalizadas).

    1. En Métrica de carga, selecciona CloudWatch Métrica personalizada para usar una métrica personalizada. Construcción de la carga JSON que contiene la definición de métricas de carga de la política y péguelo en el cuadro del editor JSON de modo que sustituya lo que ya se encuentra en el cuadro.

    2. En la métrica de escalado, elija CloudWatch Métrica personalizada para usar una métrica personalizada. Construcción de la carga JSON que contiene la definición de métricas de escalado de la política y péguelo en el cuadro del editor JSON de modo que sustituya lo que ya se encuentra en el cuadro.

    3. (Opcional) Para agregar una métrica de capacidad personalizada, active la casilla Add custom capacity metric (Agregar una métrica de capacidad personalizada). Construcción de la carga JSON que contiene la definición de métricas de capacidad de la política y péguelo en el cuadro del editor JSON de modo que sustituya lo que ya se encuentra en el cuadro.

      Solo necesita habilitar esta opción para crear una nueva serie temporal de capacidad si los datos métricos de capacidad abarcan varios grupos de escalado automático. En este caso, debe utilizar las matemáticas métricas para agregar los datos en una sola serie temporal.

  7. En Target utilization (Utilización de destino), ingrese el valor de destino que debe mantener Amazon EC2 Auto Scaling. Amazon EC2 Auto Scaling escala horizontalmente la capacidad hasta que la utilización media se encuentre en la utilización de destino, o hasta que alcance el número máximo de instancias que haya especificado.

  8. (Opcional) En Pre-launch instances (Lanzamiento previo de instancias), elija con qué antelación desea que se lancen las instancias antes de que el pronóstico exija que aumente la carga.

  9. (Opcional) En Max capacity behavior (Comportamiento de capacidad máxima), elija si desea permitir que Amazon EC2 Auto Scaling escale horizontalmente más allá de la capacidad máxima del grupo cuando la capacidad prevista supere el máximo definido. Activar esta configuración permite que el escalado horizontal se produzca durante los periodos en los que se prevé que el tráfico sea el máximo.

  10. (Opcional) En Buffer maximum capacity above the forecasted capacity (Capacidad máxima del búfer por encima de la capacidad prevista, elija la capacidad adicional que se utilizará cuando la capacidad prevista se acerque o supere la capacidad máxima. El valor se especifica como porcentaje en relación con la capacidad prevista. Por ejemplo, si el búfer es 10, este valor indica un búfer del 10 por ciento. Por lo tanto, si la capacidad de previsión es 50 y la capacidad máxima es 40, la capacidad máxima nominal es 55.

    Si se establece en 0, Amazon EC2 Auto Scaling puede escalar la capacidad por encima de la capacidad máxima para que sea igual a la capacidad máxima, pero no la supere.

  11. Elija Create predictive scaling policy (Crear política de escalado predictivo).

Creación de una política de escalado predictivo (AWS CLI)

Utilice AWS CLI lo siguiente para configurar las políticas de escalado predictivo para su grupo de Auto Scaling. Reemplace cada marcador de posición de entrada del usuario con información propia.

Para obtener más información sobre las CloudWatch métricas que puede especificar, consulte la referencia de PredictiveScalingMetricSpecificationla API de Auto Scaling de Amazon EC2.

Ejemplo 1: Política de escalado predictivo que crea pronósticos, pero no escala

En la siguiente política de ejemplo se muestra una configuración de política completa que utiliza métricas de utilización de CPU para el escalado predictivo con una utilización de destino de40. ForecastOnly se utiliza de forma predeterminada, a menos que especifique explícitamente qué modo utilizar. Guarde esta configuración en un archivo llamado config.json.

{ "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ] }

Para crear la política desde la línea de comandos, ejecute el put-scaling-policycomando con el archivo de configuración especificado, como se muestra en el siguiente ejemplo.

aws autoscaling put-scaling-policy --policy-name cpu40-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/cpu40-predictive-scaling-policy", "Alarms": [] }

Ejemplo 2: Política de escalado predictivo que pronostica y escala

Para una política que permita a Amazon EC2 Auto Scaling pronosticar y escalar, agregue la propiedad Mode con un valor de ForecastAndScale. En el ejemplo siguiente se muestra la configuración de una política que utiliza métricas de recuento de solicitudes del Application Load Balancer. La utilización de destino es 1000, y el escalado predictivo se establece en el modo ForecastAndScale.

{ "MetricSpecifications": [ { "TargetValue": 1000, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ALBRequestCount", "ResourceLabel": "app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff" } } ], "Mode": "ForecastAndScale" }

Para crear esta política, ejecute el put-scaling-policycomando con el archivo de configuración especificado, como se muestra en el siguiente ejemplo.

aws autoscaling put-scaling-policy --policy-name alb1000-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:19556d63-7914-4997-8c81-d27ca5241386:autoScalingGroupName/my-asg:policyName/alb1000-predictive-scaling-policy", "Alarms": [] }

Ejemplo 3: Política de escalado predictivo que puede escalar por encima de la capacidad máxima

En el ejemplo siguiente se muestra cómo crear una política que puede escalar más allá del límite de tamaño máximo del grupo cuando se necesita para gestionar una carga superior a la normal. De forma predeterminada, Amazon EC2 Auto Scaling no escala la capacidad de EC2 por encima de la capacidad máxima definida. Sin embargo, podría resultar útil permitir que escale la capacidad un poco más allá para evitar problemas de rendimiento o disponibilidad.

Para dejar espacio para que Amazon EC2 Auto Scaling aprovisione la capacidad adicional cuando se prevea que la capacidad sea igual o muy cercana al tamaño máximo de su grupo, especifique las propiedades MaxCapacityBreachBehavior y MaxCapacityBuffer, como se muestra en el ejemplo siguiente. Debe especificar MaxCapacityBreachBehavior con un valor de IncreaseMaxCapacity. El número máximo de instancias que el grupo puede tener depende del valor de MaxCapacityBuffer.

{ "MetricSpecifications": [ { "TargetValue": 70, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } ], "MaxCapacityBreachBehavior": "IncreaseMaxCapacity", "MaxCapacityBuffer": 10 }

En este ejemplo, la política está configurada para utilizar un búfer del 10 por ciento ("MaxCapacityBuffer": 10), de forma que si la capacidad prevista es de 50 y la capacidad máxima es de 40, la capacidad máxima efectiva es de 55. Una política que pueda escalar la capacidad por encima de la capacidad máxima para que sea igual a la capacidad prevista, pero no mayor, tendría un búfer de 0 ("MaxCapacityBuffer": 0).

Para crear esta política, ejecute el put-scaling-policycomando con el archivo de configuración especificado, como se muestra en el siguiente ejemplo.

aws autoscaling put-scaling-policy --policy-name cpu70-predictive-scaling-policy \ --auto-scaling-group-name my-asg --policy-type PredictiveScaling \ --predictive-scaling-configuration file://config.json

Si se ejecuta correctamente, este comando devuelve el nombre de recurso de Amazon (ARN) de la política.

{ "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:d02ef525-8651-4314-bf14-888331ebd04f:autoScalingGroupName/my-asg:policyName/cpu70-predictive-scaling-policy", "Alarms": [] }