Estrategias de ubicación de tareas de Amazon ECS - Amazon Elastic Container Service

Estrategias de ubicación de tareas de Amazon ECS

Una estrategia de ubicación de tareas es un algoritmo para seleccionar instancias para ubicación de tareas o tareas para terminación. Las estrategias de ubicación de tareas se pueden especificar al ejecutar una tarea o al crear un nuevo servicio. Las estrategias de colocación de tareas también se pueden actualizar para los servicios existentes. Para obtener más información, consulte Ubicación de tareas de Amazon ECS .

Para las tareas que se ejecutan como parte de un servicio de Amazon ECS, la estrategia de ubicación de tareas predeterminada es spread mediante attribute:ecs.availability-zone. No existe una restricción de ubicación de tareas predeterminada para las tareas de los servicios.

Tipos de estrategias

Amazon ECS admite las siguientes estrategias de ubicación de tareas:

binpack

Las tareas se colocan en instancias de contenedor para dejar la menor cantidad de CPU o memoria sin usar. Esta estrategia minimiza el número de instancias de contenedor en uso.

Cuando se utiliza esta estrategia y se realiza una acción de reducción horizontal, Amazon ECS termina las tareas. Lo hace en función de la cantidad de recursos que quedan en la instancia del contenedor una vez terminada la tarea. La instancia de contenedor que tenga la mayor cantidad de recursos disponibles después de la terminación de la tarea hace que esa tarea termine.

random

Las tareas se colocan aleatoriamente.

spread

Las tareas se colocan uniformemente en función del valor especificado. Los valores aceptados son instanceId (u host, que tiene el mismo efecto), o cualquier atributo de plataforma o personalizado que se aplique a una instancia de contenedor, como attribute:ecs.availability-zone.

Las tareas de servicio se distribuyen en función de las tareas de dicho servicio. Las tareas independientes se distribuyen en función de las tareas del mismo grupo de tareas. Para obtener más información acerca de los grupos de tareas, consulte Grupos de tareas.

Cuando se utiliza la estrategia spread y se realiza una acción de reducción horizontal, Amazon ECS selecciona las tareas que mantienen un balance entre las zonas de disponibilidad para terminarlas. Dentro de una zona de disponibilidad, las tareas se seleccionan de manera aleatoria.

Estrategias de ejemplo

Puede especificar estrategias de ubicación de tarea con las acciones siguientes: CreateService, UpdateService y RunTask.

La estrategia siguiente distribuye las tareas de forma uniforme entre las zonas de disponibilidad.

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

La estrategia siguiente distribuye las tareas de forma uniforme entre todas las instancias.

"placementStrategy": [ { "field": "instanceId", "type": "spread" } ]

La estrategia siguiente agrupa las tareas en bin packing en función de la memoria.

"placementStrategy": [ { "field": "memory", "type": "binpack" } ]

La siguiente estrategia ubica las tareas aleatoriamente.

"placementStrategy": [ { "type": "random" } ]

La siguiente estrategia distribuye las tareas de forma uniforme en las zonas de disponibilidad y, a continuación, distribuye las tareas de forma uniforme entre las instancias dentro de cada zona de disponibilidad.

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

La siguiente estrategia distribuye las tareas de forma uniforme en las zonas de disponibilidad y, a continuación, agrupa en bin packing las tareas en función de la memoria dentro de cada zona de disponibilidad.

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