Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS - Amazon Elastic Container Service

Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS

nota

Esta característica no está disponible en Fargate.

Cada tarea de Amazon ECS que utiliza el modo de red awsvpc recibe su propia interfaz de red elástica (ENI), la cual se asocia a la instancia de contenedor que la hospeda. Existe un límite predeterminado en cuanto al número de interfaces de red que pueden asociarse a una instancia de Amazon EC2, y la interfaz de red principal cuenta como una. Por ejemplo, de forma predeterminada una instancia de c5.large puede tener asociadas hasta tres ENI. La interfaz de red principal para la instancia cuenta como una, por lo que puede asociar a la instancia dos ENI adicionales. Dado que cada tarea que utiliza el modo de red awsvpc requiere una ENI, normalmente solo puede ejecutar dos de esas tareas en este tipo de instancia.

Amazon ECS es compatible con el inicio de instancias de contenedor con mayor densidad de ENI al usar tipos de instancias de Amazon EC2 compatibles. Cuando se utilizan estos tipos de instancias y se activa la configuración de cuenta awsvpcTrunking, aparecen ENI adicionales disponibles en las instancias de contenedor recién lanzadas. Esta configuración le permite colocar más tareas en cada instancia de contenedor. Para obtener información acerca de la configuración de la cuenta de awsvpcTrunking, consulte Acceso a las características de Amazon ECS con la configuración de la cuenta.

Por ejemplo, una instancia c5.large con awsvpcTrunking tiene un límite de ENI aumentado de doce. La instancia de contenedor tendrá la interfaz de red principal, y Amazon ECS crea y asocia una interfaz de red “troncal” a la instancia de contenedor. Por lo tanto, esta configuración le permite lanzar diez tareas en la instancia de contenedor, en lugar de las dos tareas actuales.

La interfaz de red troncal está completamente administrada por Amazon ECS y se elimina cuando se termina o se anula el registro de su instancia de contenedor en el clúster. Para obtener más información, consulte Redes de tareas en instancias de Amazon EC2.

Consideraciones

Tenga en cuenta lo siguiente al utilizar la característica de enlace troncal de ENI.

  • Solo admiten aumento de los límites de ENI las variantes Linux de la AMI optimizada para Amazon ECS u otras variantes de Amazon Linux con la versión 1.28.1 o una posterior del agente de contenedor, y la versión 1.28.1-2 o una posterior del paquete ecs-init. Si utiliza la variante de Linux más reciente de la AMI optimizada para Amazon ECS, deberá cumplir estos requisitos. Los contenedores de Windows no son en este momento compatibles.

  • Solo las nuevas instancias de Amazon EC2 iniciadas después de habilitar awsvpcTrunking reciben el aumento de límites de ENI y la interfaz de red troncal. Las instancias lanzadas anteriormente no reciben estas características, independientemente de las acciones realizadas.

  • Las instancias de Amazon EC2 deben tener desactivadas las solicitudes DNS IPv4 basadas en recursos. Para deshabilitar esta opción, asegúrese de que Habilitar solicitudes DNS IPV4 (registro A) basadas en recursos se anula la selección de al crear una nueva instancia mediante la consola de Amazon EC2. Para deshabilitar esta opción mediante el AWS CLI, utilice el siguiente comando.

    aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
  • No se admiten instancias de Amazon EC2 en subredes compartidas. No se registrarán en un clúster si se utilizan.

  • Sus tareas de Amazon ECS deben utilizar el modo de red awsvpc y el tipo de lanzamiento de EC2. Las tareas que utilizan el tipo de lanzamiento de Fargate siempre han recibido una ENI exclusiva, independientemente de cuántas se inicien, por lo que esta característica no es necesaria.

  • Las tareas de Amazon ECS se deben lanzar en la misma Amazon VPC que la instancia de contenedor. Las tareas no se iniciarán con un error de atributo si no están dentro de la misma VPC.

  • Al lanzar una nueva instancia de contenedor, la instancia pasa a un estado REGISTERING mientras la interfaz de red elástica troncal se aprovisiona para la instancia. Si el registro da error, la instancia pasa a un estado REGISTRATION_FAILED. Para solucionar un error de registro, describa la instancia de contenedor para visualizar el campo statusReason que describe el motivo del error. A continuación, la instancia de contenedor se puede terminar o anular manualmente su registro. Una vez que se haya anulado el registro de la instancia de contenedor o terminado correctamente, Amazon ECS eliminará la ENI troncal.

    nota

    Amazon ECS emite eventos de cambio de estado de instancia de contenedor que se pueden monitorear para las instancias que pasan a un estado REGISTRATION_FAILED. Para obtener más información, consulte Eventos de cambio de estado de instancia de contenedor de Amazon ECS.

  • Una vez terminada la instancia de contenedor, la instancia pasa a un estado DEREGISTERING mientras se desaprovisiona la interfaz de red elástica troncal. La instancia después pasa a un estado INACTIVE.

  • Si se detiene una instancia de contenedor en una subred pública con el aumento de los límites de ENI y, a continuación, se reinicia, la instancia pierde su dirección IP pública y el agente de contenedor pierde su conexión.

  • Cuando se habilita awsvpcTrunking, las instancias de contenedor reciben un ENI adicional que usa el grupo de seguridad predeterminado de la VPC y es administrado por Amazon ECS.

Requisitos previos

Antes de iniciar una instancia de contenedor con aumento de límites de ENI, deben completarse los siguientes requisitos previos.

  • Se debe crear el rol vinculado al servicio para Amazon ECS. El rol vinculado al servicio de Amazon ECS proporciona a Amazon ECS los permisos para realizar llamadas a otros servicios de AWS en su nombre. Este rol se crea automáticamente al crear un clúster, o bien al crear o actualizar un servicio en la AWS Management Console. Para obtener más información, consulte Uso de roles vinculados al servicio para Amazon ECS. También puede crear el rol vinculado a un servicio con el siguiente comando de la AWS CLI:

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • El rol de IAM de su cuenta o instancia de contenedor debe inscribirse en la configuración de la cuenta awsvpcTrunking. Le recomendamos crear dos roles de instancia de contenedor (ecsInstanceRole). A continuación, puede habilitar la configuración de la cuenta de awsvpcTrunking para un rol y usar ese rol para las tareas que requieren el enlace troncal de ENI. Para obtener más información sobre el rol de instancia de contenedor, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

Una vez que se cumplan los requisitos previos, puede iniciar una nueva instancia de contenedor con uno de los tipos de instancia de Amazon EC2 compatibles, y la instancia tendrá el aumento de límites de ENI. Para ver una lista de los tipos de instancia admitidos, consulte Instancias admitidas para un aumento de las interfaces de red de contenedores de Amazon ECS. La instancia de contenedor debe tener la versión 1.28.1 o posterior del agente de contenedor y la versión 1.28.1-2 o posterior del paquete ecs-init. Si utiliza la variante de Linux más reciente de la AMI optimizada para Amazon ECS, deberá cumplir estos requisitos. Para obtener más información, consulte Lanzamiento de una instancia de contenedor de Linux de Amazon ECS.

importante

Las instancias de Amazon EC2 deben tener desactivadas las solicitudes DNS IPv4 basadas en recursos. Para deshabilitar esta opción, asegúrese de que Habilitar solicitudes DNS IPV4 (registro A) basadas en recursos se anula la selección de al crear una nueva instancia mediante la consola de Amazon EC2. Para deshabilitar esta opción mediante el AWS CLI, utilice el siguiente comando.

aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
Para ver las instancias de contenedor con aumento de los límites de ENI con la AWS CLI

Cada instancia de contenedor tiene una interfaz de red predeterminada, lo que se denomina interfaz de red troncal. Para utilizar el siguiente comando a fin de ver una lista de las instancias de contenedor con un aumento de los límites de ENI, consulte el atributo ecs.awsvpc-trunk-id, que indica que tiene una interfaz de red troncal.

  • list-attributes (AWS CLI)

    aws ecs list-attributes \ --target-type container-instance \ --attribute-name ecs.awsvpc-trunk-id \ --cluster cluster_name \ --region us-east-1
  • Get-ECSAttributeList (AWS Tools for Windows PowerShell)

    Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region us-east-1