¿Cómo puedo configurar el escalado automático de servicios de Amazon ECS en Fargate?
Quiero configurar el escalado automático de servicios de Amazon Elastic Container Service (Amazon ECS) en AWS Fargate.
Descripción breve
Para aumentar o reducir el número de tareas, integre Amazon ECS en Fargate con las alarmas de Amazon CloudWatch y AWS Application Auto Scaling. A continuación, puede usar las métricas de CloudWatch para configurar las alarmas de CloudWatch.
Cuando la alarma de CloudWatch inicia un escalado automático, Application Auto Scaling utiliza la política de escalado configurada para determinar el nuevo recuento. A continuación, Auto Scaling de aplicaciones realiza la llamada de la API UpdateService a Amazon ECS con el nuevo valor de recuento. El programador de servicio de Amazon ECS inicia o cierra las tareas para cumplir con el nuevo recuento. La actividad de escalado permanece en estado InProgress hasta que el recuento deseado y en curso coincidan.
Resolución
Nota: El usuario de AWS Identity and Access Management (AWS IAM) que accede a la configuración del escalado automático de servicios debe tener los permisos adecuados para los servicios que admiten el escalado dinámico. Para obtener más información, consulte IAM permissions required for service auto scaling.
Consola de Amazon ECS
Para configurar el escalado automático del servicio Amazon ECS en Fargate, utilice la consola de Amazon ECS para configurar el escalado automático del servicio. A continuación, añada la política de escalado al servicio.
Configurar el escalamiento automático del servicio
Al crear o actualizar un servicio en la consola de Amazon ECS, en Escalamiento automático del servicio, complete los siguientes pasos:
- Seleccione la opción Usar escalamiento automático del servicio.
- En Cantidad mínima de tareas, introduzca el número mínimo de tareas que quiera que utilice el escalado automático de servicios.
- En Cantidad máxima de tareas, introduzca el número máximo de tareas que quiera que utilice el escalado automático de servicios.
Nota: El número mínimo y máximo de tareas son límites estrictos para su servicio.
Añadir una política de escalado al servicio
En función de sus requisitos, elija una política de seguimiento de objetivos o una política de escalamiento escalonado:
- Políticas de seguimiento de objetivos: Complete los pasos que se indican en Para configurar políticas de escalado de destino para el servicio de Amazon ECS mediante la consola de Amazon ECS en Políticas de escalado de seguimiento objetivo.
- Políticas de escalado por pasos: Complete los pasos que se indican en Para configurar políticas de escalado por pasos para el servicio de Amazon ECS mediante la consola de Amazon ECS en Políticas de escalado por pasos.
AWS CLI
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
Para configurar el escalado automático del servicio Amazon ECS en Fargate, utilice la AWS CLI para configurar el escalamiento automático del servicio. A continuación, cree una política de seguimiento de objetivos o escalado por pasos para escalar en función de los valores que establezca.
Configurar el escalamiento automático del servicio
Para registrar su servicio de Fargate como un objetivo escalable con Application Auto Scaling, ejecute el siguiente comando:
aws application-autoscaling register-scalable-target \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/<cluster>/<service-name> \ --min-capacity 1 --max-capacity 10 --region us-east-1
Cree una política de seguimiento de objetivos o escalado por pasos
Cree una política de seguimiento de objetivos o de escalado por pasos para el objetivo escalable. En el siguiente ejemplo, su servicio de Fargate es el objetivo escalable.
Política de seguimiento de objetivos
aws application-autoscaling put-scaling-policy \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/<cluster>/<service-name> \ --policy-name Test-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 75.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ECSServiceAverageCPUUtilization" }, "ScaleOutCooldown": 60,"ScaleInCooldown": 60}'
Nota: Al crear su política de seguimiento de objetivos, Auto Scaling de aplicaciones crea alarmas de CloudWatch para escalado en función del valor de destino que elija.
Política de escalado por pasos:
-
Cree una política de escalado por pasos con los ajustes escalonados necesarios para su actividad de escalado horizontal:
aws application-autoscaling put-scaling-policy \ --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \ --resource-id service/<cluster>/<service-name> \ --policy-name Test-Step-scaling-policy-ScaleOut --policy-type StepScaling \ --step-scaling-policy-configuration '{"AdjustmentType": "ExactCapacity","StepAdjustments": [ { "MetricIntervalLowerBound": 20, "ScalingAdjustment": 10}, { "MetricIntervalLowerBound": 0, "MetricIntervalUpperBound": 20,"ScalingAdjustment": 5}],"Cooldown": 60, "MetricAggregationType": "Average"}'
-
Asocie su política de escalado como una acción de alarma a su alarma de CloudWatch:
aws cloudwatch put-metric-alarm \ --alarm-name Test-ScaleOut --metric-name MemoryUtilization \ --namespace AWS/ECS --statistic Average --period 60 --threshold 60 \ --comparison-operator GreaterThanOrEqualToThreshold --evaluation-periods 1 --datapoints-to-alarm 1 \ --dimensions Name=ClusterName,Value=<cluster> Name=ServiceName,Value=<service-name> --unit Percent \ --alarm-actions "arn:aws:autoscaling:us-east-1:xxxxxxx:scalingPolicy:xxxxxx/Test-Step-scaling-policy-ScaleOut"
-
Repita los pasos para crear una política de escalado de segundo paso y una alarma de CloudWatch para la actividad de desescalar horizontalmente.
Nota: Cuando CloudWatch se amplía, toda la actividad de escalado que inicia CloudWatch se bloquea hasta que se complete la actividad de escalado horizontal. La actividad de escalado horizontal InProgress agota el tiempo de espera cuando Amazon ECS no cumple con el recuento configurado que estableció Application Auto Scaling. Los motivos más comunes por los que se agota el tiempo de espera incluyen problemas con la imagen o la red. Si las métricas de CloudWatch comienzan a ampliarse durante el enfriamiento del escalamiento horizontal y se completa una actividad de escalamiento horizontal, se ejecuta una actividad de escalamiento horizontal.
Información relacionada
Vídeos relacionados


Contenido relevante
- Respuesta aceptadapreguntada hace un meslg...
- preguntada hace un díalg...
- preguntada hace 7 díaslg...
- Respuesta aceptadapreguntada hace 2 meseslg...
- preguntada hace 2 meseslg...
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 4 meses