Definición de las instancias de contenedor que utiliza Amazon ECS para las tareas - Amazon Elastic Container Service

Definición de las instancias de contenedor que utiliza Amazon ECS para las tareas

Una restricción de ubicación de tareas es una regla sobre una instancia de contenedor que Amazon ECS utiliza para determinar si la tarea puede ejecutarse en la instancia. Al menos una instancia de contenedor debe cumplir con la restricción. Si no hay instancias que coincidan con la restricción, la tarea permanece en un estado PENDING. Cuando crea un servicio nuevo o actualiza uno existente, puede especificar las restricciones de ubicación de tareas para las tareas del servicio.

Puede especificar las restricciones de ubicación de tareas en la definición del servicio, la definición de la tarea o la tarea mediante el parámetro placementConstraint.

"placementConstraints": [ { "expression": "The expression that defines the task placement constraints", "type": "The placement constraint type to use" } ]

En la tabla siguiente, se describe cómo usar los parámetros.

Constraint type (Tipo de restricción) Se puede especificar cuándo
distinctInstance

Coloque cada tarea activa en una instancia de contenedor distinta.

Amazon ECS analiza el estado deseado de las tareas para su colocación. Por ejemplo, si el estado deseado de la tarea existente es STOPPED (pero el último estado no lo es), se puede colocar una nueva tarea entrante en la misma instancia a pesar de la restricción de ubicación de distinctInstance. Por lo tanto, es posible que vea 2 tareas con el último estado de RUNNING en la misma instancia.

importante

Recomendamos que los clientes que buscan un aislamiento sólido para sus tareas utilicen Fargate. Fargate ejecuta cada tarea en un entorno de virtualización de hardware. Esto garantiza que estas cargas de trabajo en contenedores no compartan interfaces de red, almacenamiento efímero de Fargate, CPU o memoria con otras tareas. Para obtener más información, consulte Security Overview of AWS Fargate.

memberOf

Colocar tareas en instancias de contenedor que satisfacen una expresión.

Cuando utiliza el tipo de restricción memberOf, puede crear una expresión mediante el lenguaje de consulta de clústeres que define las instancias de contenedor en las que Amazon ECS puede colocar tareas. La expresión es una forma de agrupar las instancias de contenedor por atributos. La expresión se incluye en el expression parámetro de placementConstraint.

Atributos de instancias de contenedor de Amazon ECS

Puede añadir metadatos personalizados a sus instancias de contenedor, conocidas como atributos. Cada atributo tiene un nombre y un valor de cadena opcional. Puede utilizar los atributos integrados que ofrece Amazon ECS o definir atributos personalizados.

Las secciones siguientes contienen ejemplos de atributos integrados, opcionales y personalizados.

Atributos integrados

Amazon ECS aplica automáticamente los siguientes atributos a las instancias de contenedor.

ecs.ami-id

El ID de la AMI utilizada para iniciar la instancia. Un valor de ejemplo para este atributo es ami-1234abcd.

ecs.availability-zone

La zona de disponibilidad de la instancia. Un valor de ejemplo para este atributo es us-east-1a.

ecs.instance-type

El tipo de instancia de la instancia. Un valor de ejemplo para este atributo es g2.2xlarge.

ecs.os-type

El sistema operativo de la instancia. Los valores posibles para este atributo son linux y windows.

ecs.os-family

La versión del sistema operativo de la instancia.

Para las instancias de Linux, el valor válido es LINUX. Para las instancias de Windows, ECS establece el valor en el formato WINDOWS_SERVER_<OS_Release>_<FULL or CORE>. Los valores válidos son WINDOWS_SERVER_2022_FULL, WINDOWS_SERVER_2022_CORE, WINDOWS_SERVER_20H2_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2019_CORE y WINDOWS_SERVER_2016_FULL.

Esto es importante para los contenedores de Windows y Windows containers on AWS Fargate porque la versión del sistema operativo de cada contenedor de Windows debe coincidir con la del host. Si la versión de Windows de la imagen del contenedor es diferente a la del host, el contenedor no se inicia. Para obtener más información, consulte Compatibilidad de versiones de contenedores Windows en el sitio web de documentación de Microsoft.

Si el clúster ejecuta varias versiones de Windows, puede asegurarse de que la tarea se coloque en una instancia de EC2 que se ejecute en la misma versión mediante la restricción de ubicación: memberOf(attribute:ecs.os-family == WINDOWS_SERVER_<OS_Release>_<FULL or CORE>). Para obtener más información, consulte Recuperación de metadatos de las AMI de Windows optimizadas para Amazon ECS.

ecs.cpu-architecture

La arquitectura de CPU de la instancia. Los valores de ejemplo para este atributo son x86_64 y ARM64.

ecs.vpc-id

La VPC en la que se lanzó la instancia. Un valor de ejemplo para este atributo es vpc-1234abcd.

ecs.subnet-id

La subred que está utilizando la instancia. Un valor de ejemplo para este atributo es subnet-1234abcd.

Atributos opcionales

Amazon ECS puede agregar los siguientes atributos a las instancias de contenedor.

ecs.awsvpc-trunk-id

Si este atributo existe, la instancia tiene una interfaz de red troncal. Para obtener más información, consulte Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS.

ecs.outpost-arn

Si este atributo existe, contiene el nombre de recurso de Amazon (ARN) del Outpost. Para obtener más información, consulte Amazon Elastic Container Service en AWS Outposts.

ecs.capability.external

Si este atributo existe, la instancia se identifica como instancia externa. Para obtener más información, consulte Clústeres de Amazon ECS para el tipo de lanzamiento externo.

Custom attributes (Atributos personalizados)

Puede aplicar atributos personalizados a sus instancias de contenedor. Por ejemplo, puede definir un atributo con el nombre "stack" y un valor "prod".

Al especificar atributos personalizados, se deben tener en cuenta los siguientes aspectos.

  • El name debe contener entre 1 y 128 caracteres, que pueden ser letras (mayúsculas y minúsculas), números, guiones, guiones bajos, barras diagonales, barras invertidas o puntos.

  • El value debe contener entre 1 y 128 caracteres, que pueden ser letras (mayúsculas y minúsculas), números, guiones, guiones bajos, puntos, signos de arroba (@), barras diagonales, barras invertidas, dos puntos o espacios. El valor no puede contener ningún espacio en blanco inicial ni final.