Escale automáticamente su servicio Amazon ECS - 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.

Escale automáticamente su servicio Amazon ECS

El escalado automático es la posibilidad de aumentar o disminuir automáticamente el conteo de tareas deseado en el servicio de Amazon ECS. Amazon ECS utiliza el servicio de Application Auto Scaling para proporcionar esta funcionalidad. Para obtener más información, consulte la Guía del usuario de Application Auto Scaling.

Amazon ECS publica CloudWatch métricas con el uso medio de CPU y memoria de su servicio. Para obtener más información, consulte Utilización de los servicios. Puede utilizar estas y otras CloudWatch métricas para ampliar el servicio (añadir más tareas), hacer frente a la alta demanda en las horas punta y ampliarlo (ejecutar menos tareas) a fin de reducir los costes durante los períodos de baja utilización.

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

Consideraciones

Cuando utilice las políticas de escalado, tenga en cuenta lo siguiente:

  • Amazon ECS envía las métricas en intervalos de 1 minuto a CloudWatch. Las métricas no están disponibles hasta que los clústeres y los servicios las envíen CloudWatch, y no se pueden crear CloudWatch alarmas para las métricas que no existen.

  • Las políticas de escalado admiten un período de recuperación. Este es la cantidad de tiempo, en segundos, que se debe esperar a que surta efecto una actividad de escalado anterior.

    • En el caso de las políticas de escalado horizontal, la intención es realizar el escalado horizontal de manera continua (pero no excesiva). Después de que Service Auto Scaling efectúa correctamente el escalado horizontal a través de una política de escalado por pasos, comienza a calcular el tiempo de recuperación. La política de escalado no volverá a aumentar la capacidad deseada a menos que se inicie el escalado horizontal o finalice el periodo de recuperación. Mientras el periodo de recuperación del escalado ascendente esté en vigor, la capacidad agregada por la actividad inicial de escalado ascendente se considerará parte de la capacidad deseada para la siguiente actividad de escalado ascendente.

    • En el caso de eventos de reducción horizontal, la intención es efectuar un reducción horizontal de forma conservadora a fin de proteger la disponibilidad de la aplicación, de modo que las actividades de reducción horizontal se bloqueen hasta que haya transcurrido el período de recuperación. No obstante, si otra alarma inicia una actividad de escalado horizontal durante el periodo de recuperación de la reducción horizontal, Service Auto Scaling escala horizontalmente el destino de inmediato. En este caso, el periodo de recuperación de reducción horizontal se detiene y no se completa.

  • El programador de servicios respeta el recuento deseado en todo momento, pero si dispone de políticas y alarmas de escalado activas en un servicio, Service Auto Scaling podría cambiar el recuento deseado que se estableció manualmente.

  • Si el recuento deseado de un servicio se establece por debajo de su valor de capacidad mínimo y una alarma inicia una actividad de escalado horizontal, Service Auto Scaling escala el recuento deseado hasta el valor de capacidad mínimo y, a continuación, continúa ampliándolo según sea necesario, según la política de escalado asociada a la alarma. No obstante, una actividad de reducción horizontal no ajusta el recuento deseado, porque ya se encuentra por debajo del valor de capacidad mínimo.

  • Si el recuento deseado de un servicio se establece por encima de su valor de capacidad máximo y una alarma inicia un escalado de actividad, Service Auto Scaling escala el recuento deseado hasta el valor de capacidad máximo y, a continuación, continúa escalando según sea necesario, en función de la política de escalado asociada a la alarma. No obstante, una actividad de reducción de escala no ajusta el recuento deseado, porque ya se encuentra por encima del valor de capacidad máximo.

  • Durante las actividades de escalado, el recuento de tareas en ejecución real de un servicio es el valor que Service Auto Scaling utiliza como punto de inicio, en contraposición con el recuento deseado. Esto es lo que se supone que es la capacidad de procesamiento. Esto impide un escalado excesivo (descontrolado) que podría no satisfacerse, por ejemplo, si no hubiera suficientes recursos de instancia de contenedor para colocar las tareas adicionales. Si la capacidad de la instancia de contenedor está disponible más tarde, la actividad de escalado pendiente podría tener éxito y, entonces, las actividades de escalado adicionales podrían continuar después del periodo de recuperación.

  • Si desea que el recuento de tareas se escale a cero cuando no haya trabajo por hacer, establezca una capacidad mínima de 0. Con las políticas de escalado de seguimiento de destino, cuando la capacidad real es 0 y la métrica indica que hay demanda de carga de trabajo, Service Auto Scaling espera que se envíe un punto de datos antes del escalado horizontal. En este caso, se escala horizontalmente la cantidad mínima posible como punto de partida y, a continuación, reanuda el escalado en función del recuento real de tareas en ejecución.

  • El escalado automático de aplicaciones desactiva los procesos de reducir horizontalmente mientras se llevan a cabo las implementaciones de Amazon ECS. Sin embargo, los procesos de escalado horizontal continúan produciéndose durante una implementación, a menos que se suspendan. Para obtener más información, consulte Escalado automático de servicios e implementaciones.

  • Dispone de varias opciones de escalado automático de aplicaciones para las tareas de Amazon ECS. El seguimiento de destinos es el modo más fácil de utilizar. Con él, todo lo que necesita hacer es establecer un valor objetivo para una métrica, como la utilización media de la CPU. Luego, el escalador automático administra de forma automática la cantidad de tareas necesarias para alcanzar ese valor. Con el escalado por pasos, puede reaccionar más rápidamente a los cambios en la demanda, ya que define los umbrales específicos para sus métricas de escalado y cuántas tareas agregar o eliminar cuando se superen los umbrales. Y, lo que es más importante, puede reaccionar muy rápidamente ante los cambios en la demanda al minimizar el tiempo que una alarma supera el umbral.

Escalado automático de servicios e implementaciones

El escalado automático de aplicaciones desactiva los procesos de reducir horizontalmente mientras se llevan a cabo las implementaciones de Amazon ECS. Sin embargo, los procesos de escalado horizontal continúan produciéndose durante una implementación, a menos que se suspendan. Si desea suspender los procesos de escalado horizontal mientras las implementaciones están en curso, siga estos pasos.

  1. Llame al describe-scalable-targetscomando y especifique el ID de recurso del servicio asociado al objetivo escalable en Application Auto Scaling (Ejemplo:service/default/sample-webapp). Registre el resultado. Lo necesitará cuando ejecute el próximo comando.

  2. Llame al register-scalable-targetcomando y especifique el ID del recurso, el espacio de nombres y la dimensión escalable. Especifique true tanto para DynamicScalingInSuspended como para DynamicScalingOutSuspended.

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

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