Cómo coloca Amazon ECS las tareas en las instancias de contenedor
Puede usar la ubicación de tareas para configurar Amazon ECS de manera que coloque sus tareas en instancias de contenedor que cumplan ciertos requisitos, por ejemplo, una zona de disponibilidad o un tipo de instancia.
Los siguientes son componentes de ubicación de tareas:
-
Estrategia de ubicación de tareas: el algoritmo para seleccionar instancias de contenedor para ubicación de tareas o tareas para terminación. Por ejemplo, Amazon ECS puede seleccionar las instancias de contenedor de manera aleatoria o de modo que las tareas se distribuyan de forma uniforme entre un grupo de instancias.
-
Grupo de tareas: grupo de tareas relacionadas, por ejemplo, tareas de bases de datos.
-
Restricción de ubicación de tareas: se trata de reglas que se deben cumplir para colocar una tarea en una instancia de contenedor. Si no se cumple la restricción, la tarea no se desplegará y permanecerá en el estado
PENDING
. Por ejemplo, puede utilizar una restricción para colocar tareas únicamente en un tipo de instancia concreto.
Amazon ECS tiene diferentes algoritmos para los tipos de lanzamiento.
Tipo de lanzamiento de EC2
Para las tareas que utilizan el tipo de lanzamiento de EC2, Amazon ECS debe determinar dónde se colocará la tarea en función de los requisitos especificados en la definición de la tarea, como la CPU y la memoria. Del mismo modo, cuando se reduce la escala del número de tareas, Amazon ECS debe determinar qué tareas debe terminar. Puede aplicar estrategias y restricciones de ubicación de tareas para personalizar la manera en la que Amazon ECS ubica y termina las tareas.
Las estrategias de ubicación de tareas por defecto dependen de si ejecuta las tareas manualmente (tareas independientes) o dentro de un servicio. Para las tareas que se ejecutan como parte de un servicio de Amazon ECS, la estrategia de ubicación de tareas es spread
mediante attribute:ecs.availability-zone
. No existe una restricción de ubicación de tareas predeterminada para las tareas que no están en los servicios. Para obtener más información, consulte Programación de los contenedores en Amazon ECS.
nota
Las estrategias de ubicación de tareas se realizan en la medida de lo posible. Amazon ECS sigue intentando ubicar tareas, incluso cuando la opción de ubicación más adecuada no está disponible. Sin embargo, las restricciones de ubicación de tareas son vinculantes, y pueden impedir la ubicación de tareas.
Puede utilizar juntas estrategias y restricciones de ubicación de tareas. Por ejemplo, puede utilizar una estrategia de ubicación de tareas y una delimitación de ubicación de tareas para distribuir tareas entre las zonas de disponibilidad y agruparlas en bin packing en función de la memoria de cada zona de disponibilidad, pero únicamente si se trata de instancias G2.
Cuando Amazon ECS ubica las tareas, utiliza este proceso para seleccionar instancias de contenedor:
-
Identificar las instancias de contenedor que satisfacen los requisitos de CPU, GPU, memoria y puerto en la definición de tareas.
-
Identificar las instancias de contenedor que satisfacen las restricciones de ubicación de tareas.
-
Identificar las instancias de contenedor que satisfacen las estrategias de ubicación de tareas.
-
Seleccionar las instancias de contenedor para ubicación de tareas.
Tipo de lanzamiento de Fargate
No se admiten estrategias ni restricciones de ubicación de tareas para tareas que utilizan el tipo de lanzamiento de Fargate. Fargate hará todo lo posible para distribuir las tareas entre las zonas de disponibilidad accesibles. Si el proveedor de capacidad incluye Fargate y Fargate Spot, el comportamiento de distribución es independiente para cada proveedor de capacidad.