Integración en red de tareas deAmazon ECS - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Integración en red de tareas deAmazon ECS

importante

Si utiliza tareas de Amazon ECS alojadas en AWS Fargate, consulte Redes de tareas de Fargate en la Guía del usuario de Amazon Elastic Container Service para AWS Fargate.

El comportamiento de redes de las tareas de Amazon ECS alojadas en instancias Amazon EC2 depende del modo de red definido en la definición de tarea. A continuación se indican los modos de red disponibles. Amazon ECS recomienda utilizar el modo de red awsvpc a menos que tenga una necesidad específica de utilizar un modo de red diferente.

  • awsvpc —: a la tarea se le asigna su propia interfaz de red elástica (ENI) y una dirección IPv4 privada principal. Esto proporciona a la tarea las mismas propiedades de red que las instancias de Amazon EC2.

  • bridge — La tarea utiliza la red virtual integrada de Docker que se ejecuta dentro de cada instancia Amazon EC2 que aloja la tarea.

  • host — La tarea omite la red virtual integrada de Docker y asigna los puertos del contenedor directamente a la ENI de la instancia Amazon EC2 que aloja la tarea. Como resultado, no puede ejecutar varias instancias de la misma tarea en una sola instancia Amazon EC2 cuando se utilizan mapeos de puertos.

  • none — La tarea no tiene conectividad de red externa.

Para obtener más información acerca de las redes de Docker, consulte Networking overview.

El resto de este documento se describe con más detalle sobre el uso del modo de red awsvpc.

La integración en red de la tarea con el modo de redawsvpc

Las características de integración en red de tareas que ofrece el modo de red awsvpc proporcionan a las tareas de Amazon ECS las mismas propiedades de redes que poseen las instancias Amazon EC2 El uso del modo de red awsvpc simplifica la red de contenedores y le ofrece más control sobre cómo las aplicaciones con contenedores se comunican entre sí y con otros servicios dentro de sus VPC. El modo de red awsvpc también proporciona mayor seguridad para los contenedores, ya que le permite utilizar grupos de seguridad y herramientas de monitorización de red de forma más detallada en sus tareas. Dado que cada tarea obtiene su propia interfaz de red elástica (ENI), también puede aprovechar otras características de redes de Amazon EC2 como los logs de flujo de VPC para poder monitorizar el tráfico entrante y saliente de las tareas. Además, los contenedores que pertenecen a la misma tarea puede comunicarse a través de la interfaz localhost

administra totalmente la ENI de la tarea. Amazon ECS crea la ENI y la asocia a la instancia Amazon ECS del host con el grupo de seguridad especificado.Amazon EC2 La tarea envía y recibe el tráfico de red sobre la ENI de la misma forma que lo hacen las instancias Amazon EC2 con sus interfaces de red principales. A cada ENI de tarea se le asigna una dirección IPv4 privada de forma predeterminada. Si la VPC está habilitada para el modo de doble pila y utiliza una subred con un bloque de CIDR IPv6, la tarea ENI también recibirá una dirección IPv6. Cada tarea solo puede tener una ENI.

Estas ENI aparecen visibles en la consola de Amazon EC2 de su cuenta, pero la cuenta no puede separarla manualmente ni modificarla. De este modo, se evita la eliminación accidental de una ENI que esté asociada a una tarea en ejecución. Puede ver la información de asociación de ENI para las tareas en la consola de Amazon ECS o con la operación DescribeTasks de la API. Cuando la tarea se detiene o se reduce la escala del servicio, la ENI de tareas se desvincula y se elimina.

Si su cuenta, usuario de IAM o rol se ha elegido en el ajuste de cuenta awsvpcTrunking y ha lanzado una instancia de contenedor con una densidad de ENI mayor, Amazon ECS también crea y asocia una interfaz de red "troncal" para su instancia de contenedor. La red troncal la administra completamente Amazon ECS. La ENI troncal se elimina al terminar o al anular el registro de su instancia de contenedor del clúster de Amazon ECS Para obtener más información acerca de cómo inscribirse en la configuración de la cuenta awsvpcTrunking, consulte Uso de instancias de contenedor con aumento de límites de ENI.

Considerations

Hay varios aspectos que es preciso tener en cuenta al usar el modo de red awsvpc.

  • Las tareas y los servicios que utilizan el modo de red awsvpc requieren el rol vinculado a servicio de Amazon ECS con el fin de proporcionar a Amazon ECS los permisos necesarios para realizar llamadas a otros servicios de AWS en su nombre. Este rol se crea automáticamente al crear un clúster o, si crea o actualiza un servicio, en la Consola de administración de AWS. Para obtener más información, consulte Rol vinculado a servicio para Amazon ECS. También puede crear el rol vinculado a servicio con el comando siguiente de la AWS CLI

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Actualmente, solo las variantes de Linux de la Amazon ECS-optimized AMI u otras variantes de Amazon Linux del paquete ecs-init admiten el uso del modo de red awsvpc. Los contenedores de Windows no son en este momento compatibles.

  • La instancia Amazon EC2 requiere la versión 1.15.0 o posterior del agente de contenedor para ejecutar tareas que utilizan el modo de red awsvpc. Si está utilizando una Amazon ECS-optimized AMI, la instancia también necesita al menos la versión 1.15.0-4 del paquete ecs-init.

  • Amazon ECS rellena el nombre de host de la tarea con un nombre de host DNS (interno) proporcionado por Amazon cuando las opciones enableDnsHostnames y enableDnsSupport están habilitadas en su VPC. Si estas opciones no están habilitadas, el nombre de host DNS de la tarea será un nombre de host aleatorio. Para obtener más información acerca de la configuración DNS de una VPC, consulte Utilización de DNS con su VPC en la Guía del usuario de Amazon VPC.

  • Cada tarea de Amazon ECS que utiliza el modo de red awsvpc recibe su propia interfaz de red elástica (ENI), que se asocia a la instancia Amazon EC2 que la aloja. 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. Para obtener más información sobre los límites de ENI predeterminados para cada tipo de instancia, consulte Direcciones IP por interfaz de red por tipo de instancia en la Guía del usuario de Amazon EC2 para instancias de Linux.

  • Amazon ECS admite el lanzamiento de instancias Amazon EC2 con tipos de instancias compatibles con mayor densidad de ENI. Cuando elige la configuración de cuenta de awsvpcTrunking y registra instancias Amazon EC2 con estos tipos de instancias en su clúster, estas instancias tienen mayores límites de ENI. Esto le permite colocar más tareas en cada instancia de Amazon EC2. Para aprovechar la mayor densidad de ENI con la característica de redes troncales, la instancia Amazon EC2 requiere al menos la versión 1.28.1 del agente de contenedor. Si está utilizando una Amazon ECS-optimized AMI, la instancia también requiere al menos la versión 1.28.1-2 del paquete ecs-init. Para obtener más información acerca de cómo inscribirse en la configuración de la cuenta awsvpcTrunking, consulte Configuración de cuenta. Para obtener más información acerca del enlace troncal de ENI, consulte Elastic network interface trunking (Enrutamiento troncal de interfaz de red elástica).

  • Al alojar tareas que utilizan el modo de red awsvpc en instancias Amazon EC2, las ENI de la tarea no reciben direcciones IP públicas. Para obtener acceso a Internet, las tareas deben lanzarse en una subred privada configurada para utilizar una gateway NAT. Para obtener más información, consulte Gateways NAT en la Guía del usuario de Amazon VPC. El acceso de red entrante debe tener lugar desde el interior de la VPC mediante la dirección IP privada o dirigirse a través del balanceador de carga desde dentro de la VPC. Las tareas iniciadas en subredes públicas no tienen acceso a internet.

  • Amazon ECS solo tiene en cuenta las ENI que asocia a sus instancias Amazon EC2 por usted. Si ha adjuntado manualmente ENI a las instancias, entonces Amazon ECS podría intentar colocar una tarea en una instancia con muy pocas asociaciones de adaptador de red disponibles. En este caso, se agotaría el tiempo de espera de la tarea, que pasaría de PROVISIONING a DEPROVISIONING y, a continuación, a STOPPED. Recomendamos no asociar manualmente las ENI a las instancias.

  • Las instancias Amazon EC2 de ecs.capability.task-eni deben registrarse con la capacidad awsvpc para que se puedan tener en cuenta para la colocación de tareas con el modo de red . Las instancias que ejecutan la versión 1.15.0-4 o posterior de ecs-init se registran con este atributo automáticamente.

  • La cuenta no puede separar manualmente ni modificar las ENI que se crean y asocian a las instancias Amazon EC2. De este modo, se evita la eliminación accidental de una ENI asociada a una tarea en ejecución. Para liberar las ENI de una tarea, detenga la tarea.

  • Existe un límite de 16 subredes y 5 grupos de seguridad que se puede especificar en awsvpcConfiguration cuando se ejecuta una tarea o se crea un servicio que utilice el modo de red awsvpc Para obtener más información, consulte AwsVpcConfiguration en la Amazon Elastic Container Service API Reference.

  • Cuando se inicia una tarea con el modo de red awsvpc, el agente de contenedor de Amazon ECS crea un contenedor pause adicional para cada tarea antes de iniciar los contenedores en la definición de tarea. A continuación, configura el espacio de nombres del contenedor pause mediante la ejecución de los complementos de CNI amazon-ecs-cni-plugins. A continuación, el agente inicia el resto de los contenedores en la tarea para que ellos compartan la pila de red del contenedor pause Esto significa que todos los contenedores de una tarea son direccionables mediante las direcciones IP de la ENI y que se pueden comunicar entre sí a través de la interfaz localhost

  • Los servicios con tareas que utilizan el modo de red awsvpc solo admiten Balanceador de carga de aplicaciones y Balanceador de carga de red. Los Classic Load Balancer no se admiten. Además, al crear grupos de destino para estos servicios, se debe elegir ip como tipo de destino, no instance. Esto se debe a que las tareas que usan el modo de red awsvpc se asocian con una ENI, no con una instancia de Amazon EC2 Para obtener más información, consulte Balanceo de carga de servicios.

  • Si se actualiza una VPC (por ejemplo, para cambiar el conjunto de opciones de DHCP que utiliza la VPC para seleccionar los cambios), estas tareas deben detenerse y deben iniciarse nuevas tareas.

Habilitación de la integración en red de tareas

Para que las tareas utilicen el modo de red awsvpc, debe especificarse en la definición de tarea. Para obtener más información, consulte Modo de red. A continuación, cuando ejecute una tarea o cree un servicio, especifique una configuración de red que incluya una o más subredes en las que deban colocarse las tareas y uno o más grupos de seguridad que deban vincularse a su ENI asociada. Las tareas se colocan en instancias Amazon EC2 compatibles en las mismas zonas de disponibilidad que esas subredes y los grupos de seguridad especificados se asocian con la ENI que se aprovisiona para la tarea.

Utilizar una VPC en modo de pila doble

Al utilizar una VPC en modo de doble pila, las tareas pueden comunicarse a través de IPv4 o IPv6, o de ambas. Las direcciones IPv4 e IPv6 son independientes entre sí, por lo que deberá configurar el direccionamiento y la seguridad de su VPC por separado para IPv4 e IPv6. Para obtener más información acerca de cómo configurar la VPC para el modo de doble pila, consulte Migración a IPv6 en la Guía del usuario de Amazon VPC.

Uno de los beneficios de utilizar una VPC en modo de pila doble es que las tareas a las que se asigna una dirección IPv6 pueden obtener acceso a Internet, siempre y cuando la VPC esté configurada con una gateway de Internet o una gateway de Internet de solo salida. Las gateways NAT no son necesarias. Para obtener más información, consulte Gateways de Internet y Gateways de Internet de solo salida en la Guía del usuario de Amazon VPC.

A las tareas de Amazon ECS se les asigna una dirección IPv6 si se cumplen las siguientes condiciones:

  • La instancia Amazon EC2 que aloja la tarea utiliza la versión 1.45.0 o posterior del agente de contenedor. Para obtener información sobre cómo comprobar la versión del agente que está utilizando la instancia y actualizarla si es necesario, consulte Actualizar el agente de contenedor de Amazon ECS.

  • La configuración de la cuenta de dualStackIPv6 está habilitada. Para obtener más información, consulte Configuración de cuenta.

  • Su tarea está utilizando el modo de red awsvpc.

  • La VPC y la subred están habilitadas para IPv6. Para obtener más información acerca de cómo configurar la VPC para el modo de doble pila, consulte Migración a IPv6 en la Guía del usuario de Amazon VPC.