Creación de una política de escalado predictivo para el escalado automático de servicios de Amazon ECS - Amazon Elastic Container Service

Creación de una política de escalado predictivo para el escalado automático de servicios de Amazon ECS

Cree una política de escalado predictiva de modo que Amazon ECS aumente o disminuya la cantidad de tareas que el servicio ejecuta en función de datos históricos.

nota

Un servicio nuevo debe proporcionar datos de, por lo menos, las últimas 24 horas para poder generar un pronóstico.

  1. Además de los permisos estándar de IAM para crear y actualizar servicios, necesita permisos adicionales. Para obtener más información, consulte Permisos de IAM necesarios para el escalado automático del servicio de Amazon ECS.

  2. Determine las métricas que quiere utilizar para la política. Están disponibles las siguientes métricas:

    • ECSServiceAverageCPUUtilization: uso medio de la CPU que debe utilizar el servicio.

    • ECSServiceAverageMemoryUtilization: uso medio de la memoria que debe utilizar el servicio.

    • ALBRequestCountPerTarget: número medio de solicitudes por minuto que debe recibir de manera ideal.

    También puede utilizar una métrica personalizada. Debe definir los siguientes valores:

    • Carga: una métrica de carga que representa con precisión la carga total de la aplicación y que es el aspecto de la aplicación que más le interesa escalar.

    • Métrica de escalado: el mejor indicador del grado de utilización ideal para su aplicación.

  3. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  4. En la página Clusters (Clústeres), elija el clúster.

  5. En la página de detalles del clúster, en la sección Servicios, elija el servicio.

    Se abrirá la página de detalles del servicio.

  6. Elija Escalado automático de servicio y, a continuación, elija Establecer la cantidad de tareas.

  7. En Recuento de tareas de servicio de Amazon ECS, elija Usar escalado automático.

    Se abrirá la sección Recuento de tareas.

    1. En Cantidad mínima de tareas, ingrese el límite mínimo del número de tareas que se va a utilizar para el escalado automático del servicio. El recuento deseado no será inferior a este recuento.

    2. En Máximo, ingrese el límite máximo del número de tareas que se va a utilizar para el escalado automático del servicio. El recuento deseado no será superior a este recuento.

    3. Seleccione Save.

      Se abrirá la página de políticas.

  8. Elija Crear política de escalado.

    Se abrirá la página Crear política.

  9. Para Tipo de política de escalado, elija Escalado predictivo.

  10. En Policy name (Nombre de la política), ingrese el nombre de la política.

  11. En Par de métricas, elija las métricas de la lista de opciones.

    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). Recuento de solicitudes del equilibrador de carga de aplicación por destino solo se admite si ha adjuntado un grupo de destino del equilibrador de carga de aplicación para el servicio.

    Si eligió Par de métricas personalizadas, elija métricas individuales en las listas de Métrica de carga y Métrica de escalado.

  12. En Utilización objetivo, introduzca el valor objetivo del porcentaje de tareas que debe mantener Amazon ECS. El escalado automático del servicio escala horizontalmente la capacidad hasta que la utilización media se encuentre en la utilización objetivo, o hasta que alcance el número máximo de tareas que haya especificado.

  13. Elija Crear política de escalado.

Use la AWS CLI como se indica a continuación para configurar políticas de escalado predictivo para el servicio de Amazon ECS. Reemplace cada marcador de posición de entrada del usuario con información propia.

Para obtener más información acerca de las métricas de CloudWatch que puede especificar, consulte PredictivEscalingMetricSpecification en la Referencia de la API de Amazon EC2 Auto Scaling.

Ejemplo 1: política de escalado predictivo con memoria predefinida.

A continuación, se muestra un ejemplo de política con una configuración de memoria predefinida.

cat policy.json { "MetricSpecifications": [ { "TargetValue": 40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization" } } ], "SchedulingBufferTime": 3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }

En el ejemplo siguiente se muestra cómo crear la política mediante la ejecución del comando put-scaling-policy con el archivo de configuración especificado.

aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --region us-east-1 \ --policy-name predictive-scaling-policy-example \ --resource-id service/MyCluster/test \ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json

Si se ejecuta correctamente, este comando devolverá el ARN de la política.

{ "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example", "Alarms": [] }

Ejemplo 2: política de escalado predictivo con CPU predefinida.

A continuación, se muestra un ejemplo de política con una configuración de CPU predefinida.

cat policy.json { "MetricSpecifications": [ { "TargetValue": 0.00000004, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization" } } ], "SchedulingBufferTime": 3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }

En el ejemplo siguiente se muestra cómo crear la política mediante la ejecución del comando put-scaling-policy con el archivo de configuración especificado.

aws aas put-scaling-policy \ --service-namespace ecs \ --region us-east-1 \ --policy-name predictive-scaling-policy-example \ --resource-id service/MyCluster/test \ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json

Si se ejecuta correctamente, este comando devolverá el ARN de la política.

{ "PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example", "Alarms": [] }