Equilibrio de un servicio de Amazon ECS entre zonas de disponibilidad - Amazon Elastic Container Service

Equilibrio de un servicio de Amazon ECS entre zonas de disponibilidad

Para ayudar a que sus aplicaciones alcancen una alta disponibilidad, le recomendamos configurar sus servicios multitarea para que se ejecuten en varias zonas de disponibilidad. En el caso de los servicios que especifican que su primera estrategia de ubicación es la distribución por zonas de disponibilidad, AWS hace todo lo posible por distribuir uniformemente las tareas de servicio entre las zonas de disponibilidad disponibles. Sin embargo, puede haber ocasiones en las que la cantidad de tareas que se ejecutan en una zona de disponibilidad no sea la misma que en otras zonas de disponibilidad, como, por ejemplo, después de una interrupción en una zona de disponibilidad. Para corregir este desequilibrio de tareas, puede habilitar la característica de reequilibrio de las zonas de disponibilidad. Con el reequilibrio de las zonas de disponibilidad, Amazon ECS supervisa de forma continua la distribución de las tareas entre las zonas de disponibilidad para cada uno de los servicios. Cuando Amazon ECS detecta una distribución desigual de las tareas, toma medidas automáticamente para reequilibrar la carga de trabajo entre las zonas de disponibilidad. Esto implica lanzar nuevas tareas en las zonas de disponibilidad con el menor número de tareas y finalizar las tareas en las zonas de disponibilidad sobrecargadas. Esta redistribución garantiza que ninguna zona de disponibilidad se convierta en un punto de error, lo que ayuda a mantener la disponibilidad general de las aplicaciones en contenedores. El proceso de reequilibrio automatizado elimina la necesidad de intervención manual, lo que acelera el tiempo de recuperación después de un evento.

A continuación, se muestra el proceso de reequilibrio de zonas de disponibilidad:

  1. Amazon ECS comienza a supervisar un servicio una vez que alcanza el estado estable y analiza el número de tareas que se ejecutan en cada zona de disponibilidad.

  2. Amazon ECS realiza las siguientes operaciones cuando detecta un desequilibrio en el número de tareas que se ejecutan en cada zona de disponibilidad:

    • Envía un evento de servicio que indica que se está iniciando el reequilibrio de las zonas de disponibilidad.

    • Inicia tareas en las zonas de disponibilidad con el menor número de tareas en ejecución.

    • Detiene las tareas en las zonas de disponibilidad con el mayor número de tareas en ejecución.

    • El programador espera a que las tareas recién iniciadas tengan el estado HEALTHY y RUNNING antes de detenerlas en la zona de disponibilidad sobredimensionada.

    • Envía un evento de servicio con el resultado del reequilibrio de la zona de disponibilidad.

El reequilibrio de la zona de disponibilidad es compatible con los tipos de lanzamiento de Fargate y EC2. En el caso de Fargate, Amazon ECS redistribuirá automáticamente las tareas entre las zonas de disponibilidad disponibles para mantener el equilibrio. Para el tipo de lanzamiento de EC2, Amazon ECS reequilibra las tareas entre las instancias de contenedores existentes en la medida en que sea posible, y respeta las estrategias y restricciones de ubicación definidas. Sin embargo, ECS no puede aprovisionar nuevas instancias en zonas de disponibilidad infrautilizadas como parte del proceso de reequilibrio, lo que limita el reequilibrio a las instancias de contenedor existentes.

El reequilibrio de las zonas de disponibilidad funciona en las siguientes configuraciones:

  • Servicios que utilizan la estrategia Replica

  • Los servicios que especifican la zona de disponibilidad se distribuyen como primera estrategia de ubicación de tareas o no especifican una estrategia de ubicación.

No puede utilizar el reequilibrio de zonas de disponibilidad con servicios que cumplan alguno de los siguientes criterios:

  • Utiliza la estrategia Daemon

  • Utiliza el tipo de lanzamiento EXTERNAL (ECS Anywhere)

  • Utiliza el 100 % para el valor de maximumPercent

  • Utiliza un equilibrador de carga clásico

  • Utiliza attribute:ecs.availability-zone como restricción de ubicación de tareas

Estrategias y restricciones de ubicación con el reequilibrio de las zonas de disponibilidad

Las estrategias de ubicación determinan la forma en que Amazon ECS selecciona las instancias de contenedor y las zonas de disponibilidad para finalizar la ubicación de tareas. Las restricciones de ubicación de las tareas son reglas que determinan si una tarea puede ejecutarse en una instancia de contenedor específica. Para el tipo de lanzamiento de EC2, puede usar estrategias de ubicación y restricciones de ubicación junto con el reequilibrio de la zona de disponibilidad. Sin embargo, para que el reequilibrio de las zonas de disponibilidad funcione, la estrategia de distribución de las zonas de disponibilidad debe ser la primera estrategia especificada. El reequilibrio de la zona de disponibilidad es compatible con varias combinaciones de estrategias de ubicación. Por ejemplo, puede crear una estrategia que primero distribuye las tareas de forma uniforme en las zonas de disponibilidad y, a continuación, agrupa las tareas en contenedores en función de la memoria de cada zona de disponibilidad. En este caso, el reequilibrio de las zonas de disponibilidad funciona porque primero se especifica la estrategia de distribución de las zonas de disponibilidad. Es importante tener en cuenta que el reequilibrio de las zonas de disponibilidad no funcionará si la primera estrategia de la matriz de estrategias de ubicación no es un componente de distribución de las zonas de disponibilidad. Este requisito garantiza que el objetivo principal de la distribución de tareas sea mantener el equilibrio entre las zonas de disponibilidad, lo cual es crucial para una alta disponibilidad. Para obtener más información sobre las estrategias y restricciones de ubicación de tareas, consulte Cómo coloca Amazon ECS las tareas en las instancias de contenedor.

La estrategia de ejemplo siguiente distribuye las tareas de forma uniforme en las zonas de disponibilidad y, a continuación, agrupa las tareas en contenedores en función de la memoria de cada zona de disponibilidad. El reequilibrio de la zona de disponibilidad es compatible con el servicio porque la estrategia de spread es lo primero.

"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]

Activación del reequilibrio de la zona de disponibilidad

Debe habilitar el reequilibrio de la zona de disponibilidad para los servicios nuevos y existentes.

Puede habilitar y deshabilitar el reequilibrio de zonas de disponibilidad mediante la consola, las API o la AWS CLI.