Auto Scaling de servicios - Amazon Elastic Container Service

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.

Auto Scaling de servicios

Elescalado automático es la capacidad de aumentar o disminuir el número deseado de tareas en su servicio de Amazon ECS automáticamente. Amazon ECS aprovecha el servicio de Auto Scaling de aplicaciones para proporcionar esta funcionalidad. Para obtener más información, consulte la Guía del usuario de Auto Scaling de aplicaciones.

Amazon ECS publica métricas de CloudWatch con el uso de memoria y CPU promedio del servicio. Para obtener más información, consulte Utilización del servicio. Puede usar estas y otras métricas de CloudWatch para ampliar el servicio (añadir más tareas) para abordar demandas elevadas en horas pico y para reducir el servicio (ejecutar menos tareas) a fin de disminuir los costos durante períodos de poco uso.

Amazon ECS Auto Scaling de servicios admite los siguientes tipos de escalado automático:

  • Políticas de escalado de seguimiento de destino—Aumente o reduzca el número de tareas que el servicio ejecuta en función de un valor de destino para una métrica específica. Se asemeja a los termostatos que se utilizan para mantener la temperatura del hogar. Se selecciona la temperatura y el termostato hace el resto.

  • Políticas de escalado por pasos—Aumente o reduzca el número de tareas que el servicio ejecuta en función de una serie de ajustes de escalado, denominados ajustes por pasos, que varían en función del tamaño de la interrupción de alarma.

  • —Escalado programadopermite aumentar o reducir el número de tareas que el servicio ejecuta en función de la fecha y la hora.

Auto Scaling servicios e implementaciones

Como práctica recomendada para evitar que los procesos de escalado descendente se comporten como los procesos de escalado ascendente, suspenda el escalado dinámico durante las implementaciones. Esto impedirá que las alarmas activen procesos de escalado descendente y ascendente que dependen del recuento de tareas en ejecución. Siga estos pasos para evitar este problema.

  1. Llame al comando https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scalable-targets.html describe-scalable-targets, especificando el ID de recurso del servicio de ECS asociado al destino escalable en Auto Scaling aplicaciones (ejemplo: service/default/sample-webapp). Registre la salida. Lo necesitará cuando llame al siguiente comando.

  2. Llame al comando https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html register-scalable-target, especificando el ID del recurso, el espacio de nombres y la dimensión escalable. Especifique true para DynamicScalingInSuspended y DynamicScalingOutSuspended.

  3. Una vez completada la implementación, puede llamar al comando register-scalable-target para reanudar el escalado.

Para obtener más información, consulte Suspender y reanudar el escalado para Application Auto Scaling .

IAMPermisos de necesarios para Auto Scaling de servicios

Auto Scaling de servicios es posible mediante una combinación de Amazon ECS, CloudWatchy Application Auto Scaling APIs. Los servicios se crean y actualizan con Amazon ECS, las alarmas se crean con CloudWatchy las políticas de escalado se crean con Application Auto Scaling.

Además de los permisos de IAM estándar para crear y actualizar los servicios, el usuario de IAM que obtiene acceso a la configuración de Auto Scaling de servicios debe tener los permisos adecuados para los servicios que admiten escalado dinámico. Los usuarios de IAM debe tener permisos para utilizar las acciones que se muestran en la siguiente política de ejemplo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ecs:DescribeServices", "ecs:UpdateService", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": [ "*" ] } ] }

Los ejemplos de política de Ejemplo de creación de servicio Ejemplo de actualización del servicio y IAM muestran los permisos que necesitan los usuarios de IAM para utilizar Auto Scaling de servicios en la Consola de administración de AWS.

El servicio Application Auto Scaling también necesita permiso para describir los servicios de Amazon ECS y las alarmas de CloudWatch, así como permisos para modificar el recuento deseado del servicio en su nombre. Si habilita el escalado automático para sus servicios de ECS, crea un rol vinculado a servicios denominado AWSServiceRoleForApplicationAutoScaling_ECSService. Este rol vinculado al servicio concede a Application Auto Scaling permiso para describir las alarmas de sus políticas, monitorizar el recuento de tareas en ejecución actual del servicio y modificar el recuento deseado del servicio. El rol de Amazon ECS administrado original para Application Auto Scaling era ecsAutoscaleRole, pero ya no es necesario. El rol vinculado al servicio es el rol predeterminado para Application Auto Scaling. Para obtener más información, consulte Uso de roles vinculados a servicios en la Guía del usuario de Auto Scaling de aplicaciones.

Tenga en cuenta que si ha creado el rol de instancia de contenedor de Amazon ECS antes de que las métricas de CloudWatch estuvieran disponibles para Amazon ECS, es posible que tenga que añadir el permiso de ecs:StartTelemetrySession Para obtener más información, consulte Habilitación de métricas deCloudWatch.