Asignación de una interfaz de red para una tarea de Amazon ECS - Amazon Elastic Container Service

Asignación de una interfaz de red para una tarea de Amazon ECS

Las características de integración en red de las tareas que ofrece el modo de red awsvpc proporcionan a las tareas de Amazon ECS las mismas propiedades de redes que poseen las instancias de Amazon EC2. Con el modo de red de awsvpc se simplifican las redes de contenedores, porque proporciona mayor control sobre la comunicación de las aplicaciones entre sí y con los demás servicios de las VPC. El modo de red awsvpc también proporciona mayor seguridad para los contenedores, ya que permite utilizar grupos de seguridad y herramientas de supervisión de red de forma más pormenorizada dentro de las tareas. También puede utilizar otras características de las redes de Amazon EC2, como los registros de flujo de VPC, para supervisar 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.

La interfaz de red elástica (ENI) de la tarea es una característica completamente administrada de Amazon ECS. Amazon ECS crea la ENI y la asocia a la instancia de Amazon EC2 del host con el grupo de seguridad especificado. La tarea envía y recibe el tráfico de red en la ENI, tal y como lo hacen las instancias de Amazon EC2 con sus principales interfaces de red. A cada tarea ENI se le asigna una dirección IPv4 privada de forma predeterminada. Si la VPC está habilitada para el modo de pila doble y utiliza una subred con un bloque de CIDR IPv6, la ENI de la tarea también recibirá una dirección IPv6. Cada tarea puede tener una sola ENI.

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

Cuando necesite aumentar la densidad de las ENI, utilice la configuración de la cuenta de awsvpcTrunking. Amazon ECS también crea y asocia una interfaz de red troncal para la instancia de contenedor. La red troncal está completamente administrada por Amazon ECS. La ENI troncal se elimina al terminar o al anular el registro de la instancia de contenedor del clúster de Amazon ECS. Para más información acerca de la configuración de la cuenta de awsvpcTrunking, consulte Requisitos previos.

Especifica awsvpc en el parámetro networkMode de la definición de la tarea. Para obtener más información, consulte Modo de red.

A continuación, cuando ejecute una tarea o cree un servicio, utilice el parámetro networkConfiguration que incluya una o varias subredes en las que deban colocarse las tareas y uno o varios grupos de seguridad que deban vincularse a una ENI. Para obtener más información, consulte Configuración de red. Las tareas se colocan en instancias de Amazon EC2 válidas en las mismas zonas de disponibilidad que esas subredes; por su parte, los grupos de seguridad especificados se asocian con la ENI que se aprovisiona para la tarea.

Consideraciones acerca de Linux

Tenga en cuenta lo siguiente cuando utilice el sistema operativo Linux:

  • Si utiliza una instancia p5.48xlarge en modo awsvpc, no puede ejecutar más de 1 tarea en la instancia.

  • Las tareas y los servicios que utilizan el modo de red awsvpc requieren el rol vinculado al 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 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 servicio con el comando siguiente de la AWS CLI:

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • La instancia de Linux de Amazon EC2 requiere la versión 1.15.0 del agente de contenedor o una posterior para ejecutar tareas que utilizan el modo de red awsvpc. Si utiliza una AMI optimizada para Amazon ECS, 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) que proporciona Amazon cuando las opciones enableDnsHostnames y enableDnsSupportestán habilitadas en la VPC. Si estas opciones no están habilitadas, el nombre de host DNS de la tarea se establece en un nombre de host aleatorio. Para obtener más información acerca de la configuración de 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 (INE), la cual se asocia a la instancia de Amazon EC2 que la aloja. Existe una cuota predeterminada para el número de interfaces de red que se pueden asociar a una instancia de Linux de Amazon EC2. La interfaz de red principal cuenta como una para esa cuota. Por ejemplo, de forma predeterminada, una instancia de c5.large podría tener solo hasta tres ENI asociadas a ella. La interfaz de red principal de la instancia cuenta como una. Puede asociar dos ENI adicionales a la instancia. 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 acerca de 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.

  • Amazon ECS admite el lanzamiento de instancias de Linux de Amazon EC2 que utilizan tipos de instancias con mayor densidad de ENI compatibles. Al optar por incluir la configuración de cuenta awsvpcTrunking y registrar instancias de Linux de Amazon EC2 con estos tipos de instancias en el clúster, estas instancias tienen cuotas de ENI más altas. Si se utilizan estas instancias con una cuota más alta, es posible colocar más tareas en cada instancia de Linux de Amazon EC2. Para utilizar la mayor densidad de ENI con la característica de enlace troncal, la instancia de Amazon EC2 requiere al menos la versión 1.28.1 del agente de contenedor. Si utiliza una AMI optimizada para Amazon ECS, 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 la inscripción en el ajuste de cuenta awsvpcTrunking, consulte Acceso a las características de Amazon ECS con la configuración de la cuenta. Para obtener más información acerca del enlace troncal de ENI, consulte Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS.

  • Cuando se alojan tareas que utilizan el modo de red awsvpc en instancias de Linux de Amazon EC2, las ENI de tareas no reciben direcciones IP públicas. Para obtener acceso a Internet, las tareas deben lanzarse en una subred privada configurada para utilizar una puerta de enlace NAT. Para obtener 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 equilibrador de carga desde dentro de la VPC. Las tareas iniciadas en subredes públicas no tienen acceso a Internet.

  • Amazon ECS solo reconoce las ENI que asocia a sus instancias de Linux de Amazon EC2. Si asoció ENI a sus instancias de forma manual, Amazon ECS podría intentar agregar una tarea a una instancia que no tiene suficientes adaptadores de red. Esto puede hacer que se agote el tiempo de espera de la tarea, que la tarea pase a un estado de desaprovisionamiento y, a continuación, a un estado detenido. Recomendamos no asociar ENI manualmente a las instancias.

  • Las instancias de Linux de Amazon EC2 deben estar registradas en la función ecs.capability.task-eni para que se las tenga en cuenta en la ubicación de tareas con el modo de red awsvpc. Las instancias que ejecutan la versión 1.15.0-4 o una posterior de ecs-init se registran automáticamente con este atributo.

  • La cuenta no puede separar manualmente ni modificar las ENI que se crean y asocian a las instancias de Linux de 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 Referencia de la API de Amazon Elastic Container Service.

  • 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 tareas. Luego, configura el espacio de nombres de red 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 equilibradores de carga de aplicación y equilibradores de carga de red. Cuando crea grupos de destino para estos servicios, debe elegir ip como tipo de destino. No utilice instance. Esto se debe a que las tareas que utilizan el modo de red awsvpc se asocian con una ENI, no con una instancia de Linux de Amazon EC2. Para obtener más información, consulte Uso del equilibrador de carga para distribuir el tráfico de servicio de Amazon ECS.

  • Si la VPC se actualiza para cambiar el conjunto de opciones DHCP que utiliza, no es posible aplicar estos cambios a las tareas existentes. Inicie tareas nuevas con estos cambios aplicados, compruebe que funcionan correctamente y, luego, detenga las tareas existentes para cambiar de manera segura estas configuraciones de red.

Consideraciones acerca de Windows

A continuación, se detallan consideraciones que se deben tener en cuenta cuando se utiliza el sistema operativo Windows:

  • Las instancias de contenedor que utilizan la AMI de Windows Server 2016 optimizada para Amazon ECS no pueden alojar tareas que utilizan el modo de red awsvpc. Si tiene un clúster que contiene AMI de Windows Server 2016 y AMI de Windows optimizadas para Amazon ECS que sí admiten el modo de red awsvpc, las tareas que utilizan el modo de red awsvpc no se lanzan en las instancias de Windows Server 2016. En cambio, se lanzarán en las instancias que admiten el modo de red awsvpc.

  • Su instancia de Windows de Amazon EC2 requiere la versión 1.57.1 del agente de contenedor o una posterior para usar las métricas de CloudWatch para los contenedores de Windows que utilizan el modo de red awsvpc.

  • Las tareas y los servicios que utilizan el modo de red awsvpc requieren el rol vinculado al 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 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
  • Su instancia de Windows de Amazon EC2 requiere la versión 1.54.0 del agente de contenedor o una posterior para ejecutar tareas que utilizan el modo de red awsvpc. Al arrancar la instancia, debe configurar las opciones requeridas para el modo de red awsvpc. Para obtener más información, consulte Arranque de instancias de contenedor de Windows de Amazon ECS para la transferencia de datos.

  • Amazon ECS rellena el nombre de host de la tarea con un nombre de host DNS (interno) que proporciona Amazon cuando las opciones enableDnsHostnames y enableDnsSupport están habilitadas en la VPC. Si estas opciones no están habilitadas, el nombre de host DNS de la tarea es un nombre de host aleatorio. Para obtener más información acerca de la configuración de 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 (INE), la cual se asocia a la instancia de Windows de Amazon EC2 que la aloja. Existe una cuota predeterminada para el número de interfaces de red que se pueden asociar a una instancia de Windows de Amazon EC2. La interfaz de red principal cuenta como una para esta cuota. Por ejemplo, de forma predeterminada, una instancia de c5.large puede tener asociadas hasta tres ENI. La interfaz de red principal de la instancia cuenta como una de ellas. Puede asociar dos ENI adicionales a la instancia. 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 acerca de 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.

  • Cuando se alojan tareas que utilizan el modo de red awsvpc en instancias de Windows de Amazon EC2, las ENI de tareas no reciben direcciones IP públicas. Para obtener acceso a Internet, lance las tareas en una subred privada configurada para utilizar una puerta de enlace NAT. Para obtener 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 equilibrador de carga desde dentro de la VPC. Las tareas iniciadas en subredes públicas no tienen acceso a Internet.

  • Amazon ECS solo reconoce las ENI que asoció a sus instancias de Windows de Amazon EC2. Si asoció ENI a sus instancias de forma manual, Amazon ECS podría intentar agregar una tarea a una instancia que no tiene suficientes adaptadores de red. Esto puede hacer que se agote el tiempo de espera de la tarea, que la tarea pase a un estado de desaprovisionamiento y, a continuación, a un estado detenido. Recomendamos no asociar ENI manualmente a las instancias.

  • Las instancias de Windows de Amazon EC2 deben estar registradas en la función ecs.capability.task-eni para que se las tenga en cuenta en la ubicación de tareas con el modo de red awsvpc.

  • No es posible separar manualmente ni modificar las ENI que se crean y asocian a las instancias de Windows de Amazon EC2. De este modo, se evita que elimine accidentalmente una ENI que esté asociada a una tarea en ejecución. Para liberar las ENI de una tarea, detenga la tarea.

  • Solo es posible especificar hasta 16 subredes y 5 grupos de seguridad en awsVpcConfiguration cuando se ejecuta una tarea o se crea un servicio que utiliza el modo de red awsvpc. Para obtener más información, consulte AwsVpcConfiguration en la Referencia de la API de Amazon Elastic Container Service.

  • 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 tareas. Luego, configura el espacio de nombres de red 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 equilibradores de carga de aplicación y equilibradores de carga de red. 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 utilizan el modo de red awsvpc se asocian con una ENI, no con una instancia de Windows de Amazon EC2. Para obtener más información, consulte Uso del equilibrador de carga para distribuir el tráfico de servicio de Amazon ECS.

  • Si la VPC se actualiza para cambiar el conjunto de opciones DHCP que utiliza, no es posible aplicar estos cambios a las tareas existentes. Inicie tareas nuevas con estos cambios aplicados, compruebe que funcionan correctamente y, luego, detenga las tareas existentes para cambiar de manera segura estas configuraciones de red.

  • Cuando se utiliza el modo de red awsvpc en una configuración de EC2 Windows, no se admite lo siguiente:

    • Configuración de pila doble

    • IPv6

    • Enlace troncal de ENI

Utilización de una VPC en modo de pila doble

Cuando se utiliza una VPC en modo de pila doble, las tareas se pueden comunicar mediante IPv4, IPv6 o ambos. Las direcciones IPv4 e IPv6 son independientes entre sí. Por lo tanto, debe configurar el enrutamiento y la seguridad en 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 pila doble, consulte Migración a IPv6 en la Guía del usuario de Amazon VPC.

Si configuró la VPC con una puerta de enlace de Internet o una puerta de enlace de Internet de solo salida, puede utilizar la VPC en modo de pila doble. De este modo, las tareas a las que se les asigna una dirección IPv6 pueden acceder a Internet a través de una puerta de enlace de Internet o una puerta de enlace de Internet de solo salida. Las puertas de enlace NAT son opcionales. 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.

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