

# Opções da rede de tarefas do Amazon ECS para o EC2
<a name="task-networking"></a>

O comportamento de rede das tarefas do Amazon ECS hospedadas em instâncias do Amazon EC2 depende do *modo de rede* especificado na definição de tarefa. Recomendamos que você use o modo de rede `awsvpc`, a menos que tenha uma necessidade específica de usar um modo de rede diferente.

Veja a seguir os modos de rede disponíveis.


| Modo de rede | Contêineres do Linux no EC2 | Contêineres do Windows no EC2 | Descrição | 
| --- | --- | --- | --- | 
|  `awsvpc`  |  Sim  |  Sim  |  A tarefa recebe sua própria interface de rede elástica (ENI) e um endereço IPv4 ou IPv6 privado primário. Isso dá à tarefa as mesmas propriedades de rede que as instâncias do Amazon EC2.  | 
|  `bridge`  |  Sim  |  Não  |  A tarefa usa a rede virtual integrada do Docker no Linux, que é executada em cada instância do Amazon EC2 que hospeda a tarefa. A rede virtual integrada no Linux usa o driver de rede `bridge` do Docker. Esse é o modo de rede padrão no Linux quando um modo de rede não é especificado na definição de tarefa.  | 
|  `host`  |  Sim  |  Não  |  A tarefa usa a rede do host que ignora a rede virtual integrada do Docker mapeando as portas do contêiner diretamente para a ENI da instância do Amazon EC2 que hospeda a tarefa. Os mapeamentos dinâmicos de portas não podem ser usados nesse modo de rede. Um contêiner em uma definição de tarefa que use esse modo deve especificar um número de `hostPort` específico. Um número de porta em um host não pode ser usado por várias tarefas. Como resultado, não é possível executar várias tarefas da mesma definição de tarefa em uma única instância do Amazon EC2.  | 
|  `none`  |  Sim  |  Não  |  A tarefa não tem conectividade com rede externa.  | 
|  `default`  |  Não  |  Sim  |  A tarefa usa a rede virtual integrada do Docker no Windows, que é executada em cada instância do Amazon EC2 que hospeda a tarefa. A rede virtual integrada no Windows usa o driver de rede `nat` do Docker. Esse é o modo de rede padrão no Windows quando um modo de rede não é especificado na definição de tarefa.  | 

Para obter mais informações sobre as redes do Docker no Linux, consulte [Networking overview](https://docs.docker.com/engine/network/) na *documentação do Docker*.

Para obter mais informações sobre as redes do Docker no Windows, consulte [Windows container networking](https://learn.microsoft.com/en-us/virtualization/windowscontainers/container-networking/architecture) na *documentação sobre containers no Windows* da Microsoft.

## Usar uma VPC no modo somente IPv6
<a name="networking-ipv6-only"></a>

Em uma configuração somente IPv6, suas tarefas do Amazon ECS se comunicam exclusivamente via IPv6. Para configurar VPCs e sub-redes para uma configuração somente IPv6, adicione um bloco CIDR IPv6 à VPC e crie novas sub-redes que incluam somente um bloco CIDR IPv6. Para obter mais informações, consulte [Adicionar suporte IPv6 para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html) e [Criar uma sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html) no *Guia do usuário da Amazon VPC*.

Atualize também as tabelas de rotas com destinos IPv6 e configure grupos de segurança com regras IPv6. Para obter mais informações, consulte [Configurar tabelas de rotas](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) e [Configurar regras de grupo de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html) no *Guia do usuário da Amazon VPC*.

As seguintes considerações se aplicam:
+ Você pode atualizar um serviço somente IPv4 ou de pilha dupla do Amazon ECS para uma configuração somente IPv6 atualizando o serviço diretamente para usar sub-redes somente IPv6 ou criando um serviço somente IPv6 paralelo e usando implantações azul-verde do Amazon ECS para transferir o tráfego para o novo serviço. Para obter mais informações sobre implantações azul/verde do Amazon ECS, consulte [Implantações azuis/verdes do Amazon ECS](deployment-type-blue-green.md).
+ Um serviço somente IPv6 do Amazon ECS deve usar balanceadores de carga de pilha dupla com grupos-de destino IPv6. Se você estiver migrando um serviço do Amazon ECS existente que está por trás de um Application Load Balancer ou de um Network Load Balancer, será possível criar um novo balanceador de carga de pilha dupla e transferir o tráfego do balanceador de carga antigo ou atualizar o tipo de endereço IP do balanceador de carga existente.

  Para obter mais informações sobre Network Load Balancers consulte [Criar um Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) e [Atualizar os tipos de endereço IP do seu Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-ip-address-type.html) no *Guia do usuário para Network Load Balancers*. Para obter mais informações sobre Application Load Balancers, consulte [Criar um Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) e [Atualizar os tipos de endereço IP do seu Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-ip-address-type.html) no *Guia do usuário para Application Load Balancers*.
+ Não há suporte para a configuração somente IPv6 no Windows. Use as AMIs do Linux otimizadas para o Amazon ECS para executar tarefas em uma configuração somente IPv6. Para obter mais informações sobre as AMIs do Linux otimizadas para o Amazon ECS, consulte [AMIs do Linux otimizadas para o Amazon ECS](ecs-optimized_AMI.md).
+ Ao iniciar uma instância de contêiner para executar tarefas em uma configuração somente IPv6, você deve definir um endereço IPv6 primário para a instância usando o parâmetro `--enable-primary-ipv6` do EC2.
**nota**  
Sem um endereço IPv6 primário, as tarefas executadas na instância de contêiner nos modos de rede host ou ponte não serão registradas nos balanceadores de carga ou no AWS Cloud Map.

  Para obter mais informações sobre `--enable-primary-ipv6` para executar instâncias do Amazon EC2, consulte [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) na *Referência de comandos da AWS CLI*.

  Para obter mais informações sobre como inicializar instâncias de contêiner usando o Console de gerenciamento da AWS, consulte [Iniciar uma instância de contêiner do Linux do Amazon ECS](launch_container_instance.md).
+ Por padrão, o agente de contêiner do Amazon ECS tentará detectar a compatibilidade da instância de contêiner com uma configuração somente IPv6 examinando as rotas IPv4 e IPv6 padrão da instância. Para substituir esse comportamento, você pode definir o parâmetro ` ECS_INSTANCE_IP_COMPATIBILITY` como `ipv4` ou `ipv6` no arquivo `/etc/ecs/ecs.config` da instância.
+ As tarefas devem usar a versão `1.99.1` ou posterior do agente de contêiner. Para obter informações sobre como verificar a versão do agente que a instância está usando e atualizá-la, se necessário, consulte [Atualizar o agente de contêiner do Amazon ECS](ecs-agent-update.md).
+ Para tarefas do Amazon ECS em uma configuração somente IPv6 para se comunicar com endpoints somente IPv4, você pode configurar DNS64 e NAT64 para converter endereços de rede de IPv6 para IPv4. Para obter mais informações, consulte [DNS64 e NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html), no *Guia do usuário da Amazon VPC*.
+ As workloads do Amazon ECS em uma configuração somente IPv6 devem usar endpoints de URI de imagem de pilha dupla do Amazon ECR ao extrair imagens do Amazon ECR. Para obter mais informações, consulte [Como começar a fazer solicitações via IPv6](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-requests.html#ipv6-access-getting-started) no *Guia do usuário do Amazon Elastic Container Registry*.
**nota**  
O Amazon ECR não oferece suporte a endpoints da VPC de interface de pilha dupla que as tarefas de uma configuração somente IPv6 possam usar. Para obter mais informações, consulte [Como começar a fazer solicitações via IPv6](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-requests.html#ipv6-access-getting-started) no *Guia do usuário do Amazon Elastic Container Registry*.
+ Não há suporte para o Amazon ECS Exec em uma configuração somente IPv6.

### Regiões da AWS que são compatíveis com o modo somente IPv6 no Amazon ECS
<a name="networking-ipv6-only-regions"></a>

Você pode executar tarefas em uma configuração somente IPv6 nas seguintes regiões da AWS em que o Amazon ECS está disponível:
+ Leste dos EUA (Ohio)
+ Leste dos EUA (Norte da Virgínia)
+ Oeste dos EUA (N. da Califórnia)
+ Oeste dos EUA (Oregon)
+ África (Cidade do Cabo)
+ Ásia-Pacífico (Hong Kong)
+ Ásia-Pacífico (Hyderabad)
+ Ásia-Pacífico (Jacarta)
+ Ásia-Pacífico (Melbourne)
+ Ásia-Pacífico (Mumbai)
+ Ásia-Pacífico (Osaka)
+ Ásia-Pacífico (Seul)
+ Ásia-Pacífico (Singapura)
+ Ásia-Pacífico (Sydney)
+ Ásia-Pacífico (Tóquio)
+ Canadá (Central)
+ Oeste do Canadá (Calgary)
+ China (Pequim)
+ China (Ningxia)
+ Europa (Frankfurt)
+ Europa (Londres)
+ Europa (Milão)
+ Europe (Paris)
+ Europa (Espanha)
+ Israel (Tel Aviv)
+ Oriente Médio (Bahrein)
+ Oriente Médio (Emirados Árabes Unidos)
+ América do Sul (São Paulo)
+ AWS GovCloud (Leste dos EUA)
+ AWS GovCloud (Oeste dos EUA)

# Alocar uma interface de rede para uma tarefa do Amazon ECS
<a name="task-networking-awsvpc"></a>

Os recursos de redes de tarefas fornecidos pelo modo de rede `awsvpc` dão às tarefas do Amazon ECS as mesmas propriedades de redes que as instâncias do Amazon EC2. Usar o modo de rede `awsvpc` simplifica a rede de contêineres. Você tem mais controle sobre como as aplicações se comunicam entre si e com outros serviços dentro das VPCs. O modo de rede `awsvpc` também fornece maior segurança para os contêineres, permitindo que você use grupos de segurança e ferramentas de monitoramento de rede em um nível mais granular dentro das tarefas. Você também pode usar outros recursos de rede do Amazon EC2, como o VPC Flow Logs, para monitorar o tráfego que entra e sai das tarefas. Além disso, os contêineres que pertencem à mesma tarefa podem se comunicar por meio da interface `localhost`.

A interface de rede elástica (ENI) da tarefa é um recurso totalmente gerenciado do Amazon ECS. O Amazon ECS cria a ENI e a anexa à instância host do Amazon EC2 host com o grupo de segurança especificado. A tarefa envia e recebe tráfego de rede na ENI da mesma maneira que as instâncias do Amazon EC2 fazem com suas interfaces de rede primárias. A cada ENI de tarefa é atribuído um endereço IPv4 privado, por padrão. Se a VPC estiver habilitada para o modo de pilha dupla e você usar uma sub-rede com um bloco CIDR IPv6, a ENI da tarefa também receberá um endereço IPv6. Cada tarefa pode ter apenas uma ENI. 

Essas ENIs ficam visíveis no console do Amazon EC2 para sua conta. Sua conta não pode desanexar ou modificar as ENIs. Isso visa a evitar a exclusão acidental de uma ENI associada a uma tarefa em execução. É possível visualizar as informações do anexo da ENI para tarefas no console do Amazon ECS ou com a operação da API [DescribeTasks](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html). Quando a tarefa for interrompida ou se o serviço sofrer redução de escala vertical, a ENI da tarefa será desvinculada e excluída.

Quando precisar aumentar a densidade da ENI, use a configuração de conta `awsvpcTrunking`. O Amazon ECS também cria e anexa uma interface de rede “tronco” para a instância de contêiner. A rede tronco é totalmente gerenciada pelo Amazon ECS. A ENI do tronco é excluída quando você encerra ou cancela o registro da instância de contêiner do cluster do Amazon ECS. Para obter mais informações sobre a configuração de conta de `awsvpcTrunking`, consulte [Pré-requisitos](container-instance-eni.md#eni-trunking-launching).

Você especifica `awsvpc` no parâmetro `networkMode` da definição de tarefa. Para obter mais informações, consulte [Modo de rede](task_definition_parameters.md#network_mode). 

Depois, ao executar uma tarefa ou criar um serviço, use o parâmetro `networkConfiguration` que inclui uma ou mais sub-redes para colocar as tarefas e um ou mais grupos de segurança para anexar a uma ENI. Para obter mais informações, consulte [Configuração de rede](service_definition_parameters.md#sd-networkconfiguration). As tarefas são posicionadas em instâncias do Amazon EC2 nas mesmas zonas de disponibilidade que as dessas sub-redes e os grupos de segurança especificados são associados à ENI provisionada para a tarefa.

## Considerações sobre o Linux
<a name="linux"></a>

 Considere o seguinte ao utilizar o sistema operacional Linux.
+ Se você usar uma instância p5.48xlarge no modo `awsvpc`, não será possível executar mais de uma tarefa na instância.
+ As tarefas e os serviços que usam o modo de rede `awsvpc` exigem que a função vinculada ao serviço do Amazon ECS forneça ao Amazon ECS as permissões para fazer chamadas a outros serviços da AWS em seu nome. Essa função será automaticamente criada quando você criar um cluster ou se criar ou atualizar um serviço no Console de gerenciamento da AWS. Para obter mais informações, consulte [Uso de perfis vinculados ao serviço para o Amazon ECS](using-service-linked-roles.md). Você também pode criar a função vinculada ao serviço com o seguinte comando da AWS CLI:

  ```
  aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name ecs.amazonaws.com
  ```
+ A instância do Linux do Amazon EC2 requer a versão `1.15.0` ou posterior do agente de contêiner para executar tarefas que usam o modo de rede `awsvpc`. Se você estiver usando a AMI do Linux otimizada para o Amazon ECS, sua instância também precisará, pelo menos, da versão `1.15.0-4` do pacote `ecs-init`.
+ O Amazon ECS preenche o nome de host da tarefa usando a rede de tarefas com um nome de host DNS (interno) fornecido pela Amazon quando as opções `enableDnsHostnames` e `enableDnsSupport` estão habilitadas na sua VPC. Se essas opções não estiverem habilitadas, o nome de host DNS da tarefa será definido como um nome de host aleatório. Para obter mais informações sobre as configurações de DNS para uma VPC, consulte [Usar DNS com sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html) no *Guia do usuário da Amazon VPC*.
+ Cada tarefa do Amazon ECS que usa o modo de rede `awsvpc` recebe sua própria interface de rede elástica (ENI), que está anexada à instância do Amazon EC2 que a hospeda. Existe uma cota padrão para o número de interfaces de rede que é possível anexar a uma instância Linux do Amazon EC2. A interface de rede primária conta para essa cota. Por exemplo, por padrão, uma instância `c5.large` só pode ter até três ENIs associadas a ela. A interface de rede primária da instância conta como uma. É possível associar mais duas ENIs à instância. Como cada tarefa que usa o modo de rede `awsvpc` exige uma ENI, em geral, você pode executar somente duas dessas tarefas nesse tipo de instância. Para obter mais informações sobre os limites de ENI padrão para cada tipo de instância, consulte [Endereços IP por interface de rede por tipo de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) no *Guia do usuário do Amazon EC2*.
+ O Amazon ECS oferece suporte ao lançamento de instâncias do Linux do Amazon EC2 usando tipos de instâncias compatíveis, com maior densidade de ENI. Quando você aceitar a configuração de conta `awsvpcTrunking` e registrar instâncias do Linux do Amazon EC2 usando esses tipos de instância no seu cluster, estas instâncias terão cotas de ENI mais altas. Utilizar essas instâncias com a cota mais alta significa que é possível colocar mais tarefas em cada instância Linux do Amazon EC2. Para usar a maior densidade de ENI com o recurso de entroncamento, sua instância do Amazon EC2 deve usar a versão `1.28.1` ou posterior do agente de contêiner. Se você estiver usando a AMI otimizada para o Amazon ECS, sua instância precisará, pelo menos, da versão `1.28.1-2` do pacote `ecs-init`. Para obter mais informações sobre como optar pela configuração de conta `awsvpcTrunking`, consulte [Acesso aos recursos do Amazon ECS com as configurações de conta](ecs-account-settings.md). Para obter mais informações sobre o entroncamento de ENI, consulte [Aumento das interfaces de rede de instâncias de contêiner do Linux no Amazon ECS](container-instance-eni.md).
+ Ao hospedar tarefas que usam o modo de rede `awsvpc` em instâncias do Linux do Amazon EC2, suas ENIs de tarefa não recebem endereços IP públicos. Para acessar a Internet, as tarefas devem ser executadas em uma sub-rede privada configurada para usar um gateway NAT. Para obter mais informações, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) no *Guia do usuário da Amazon VPC*. O acesso à rede de entrada deve ocorrer de dentro da VPC que usa o endereço IP privado ou roteado por um balanceador de carga de dentro da VPC. As tarefas inicializadas em sub-redes públicas não têm acesso à Internet.
+ O Amazon ECS reconhece somente as ENIs que ele anexa às suas instâncias Linux do Amazon EC2. Se você tiver anexado ENIs manualmente às suas instâncias, o Amazon ECS poderá tentar adicionar uma tarefa a uma instância que não tenha adaptadores de rede suficientes. Isso pode fazer com que a tarefa atinja o tempo limite, passe para um status em desprovisionamento e, em seguida, para um status de interrompida. Recomendamos que você não anexe ENIs às suas instâncias manualmente.
+ As instâncias do Linux do Amazon EC2 devem ser registradas com o recurso `ecs.capability.task-eni` para serem consideradas para posicionamento de tarefas com o modo de rede `awsvpc`. As instâncias que executam a versão `1.15.0-4` ou posterior do `ecs-init` são automaticamente registradas com esse atributo.
+ As ENIs criadas e anexadas às suas instâncias do Linux do Amazon EC2 não podem ser desvinculadas manualmente nem modificadas pela sua conta. Isso visa a evitar a exclusão acidental de uma ENI associada a uma tarefa em execução. Para liberar as ENIs para uma tarefa, interrompa-a.
+ Há um limite de 16 sub-redes e 5 grupos de segurança que podem ser especificados na `awsVpcConfiguration` ao executar uma tarefa ou ao criar um serviço que usa o modo de rede `awsvpc`. Para obter mais informações, consulte [AwsVpcConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_AwsVpcConfiguration.html) na *Referência da API de serviço do contêiner do Amazon Elastic Container Service*.
+ Quando uma tarefa é iniciada com o modo de rede `awsvpc`, o agente de contêiner do Amazon ECS cria um contêiner `pause` adicional para cada tarefa antes de iniciar os contêineres na definição de tarefa. Em seguida, ele configura o namespace de rede do contêiner `pause` ao executar os plug-ins do CNI [amazon-ecs-cni-plugins](https://github.com/aws/amazon-ecs-cni-plugins). O agente inicia então o restante dos contêineres na tarefa para que eles compartilhem a pilha de rede do contêiner `pause`. Isso significa que todos os contêineres em uma tarefa são endereçáveis por endereços IP da ENI, e que eles podem se comunicar entre eles por meio da interface `localhost`.
+ Serviços com tarefas que usam o modo de rede `awsvpc` oferecem suporte somente a Application Load Balancers e Network Load Balancers. Ao criar grupos de destino para esses serviços, você precisa escolher `ip` como o tipo de destino. Não use `instance`. Isso ocorre porque as tarefas que usam o modo de rede `awsvpc` são associadas a uma ENI, não a uma instância do Linux do Amazon EC2. Para obter mais informações, consulte [Uso do balanceamento de carga para distribuir o tráfego de serviço do Amazon ECS](service-load-balancing.md).
+ Se a sua VPC for atualizada para alterar o conjunto de opções de DHCP que ela utiliza, não será possível aplicar essas alterações às tarefas existentes. Inicie novas tarefas com essas alterações aplicadas, verifique se elas estão funcionando corretamente e, em seguida, interrompa tarefas existentes para modificar essas configurações de rede com segurança.

## Considerações sobre Windows
<a name="windows"></a>

 Veja a seguir considerações quando for usado o sistema operacional Windos.
+ Instâncias de contêiner que usam a AMI do Windows Server 2016 otimizada para o Amazon ECS não podem hospedar tarefas que usam o modo de rede `awsvpc`. Se você tiver um cluster que contém AMIs do Windows Server 2016 otimizadas para o Amazon ECS e AMIs do Windows compatíveis com o modo de rede `awsvpc`, tarefas que usam o modo de rede `awsvpc` não serão iniciadas nas instâncias do Windows Server 2016. Em vez disso, elas são iniciadas em instâncias com suporte para o modo de rede `awsvpc`.
+ Sua instância do Windows do Amazon EC2 requer a versão `1.57.1` ou posterior do agente de contêiner para usar métricas do CloudWatch para contêineres do Windows que usem o modo de rede `awsvpc`.
+ As tarefas e os serviços que usam o modo de rede `awsvpc` exigem que a função vinculada ao serviço do Amazon ECS forneça ao Amazon ECS as permissões para fazer chamadas a outros serviços da AWS em seu nome. Essa função será criada automaticamente quando você criar um cluster ou se criar ou atualizar um serviço no Console de gerenciamento da AWS. Para obter mais informações, consulte [Uso de perfis vinculados ao serviço para o Amazon ECS](using-service-linked-roles.md). Também é possível criar a função vinculada ao serviço com o comando da AWS CLI a seguir.

  ```
  aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name ecs.amazonaws.com
  ```
+ Sua instância do Windows do Amazon EC2 requer a versão `1.54.0` ou posterior do agente de contêiner para executar tarefas que usam o modo de rede `awsvpc`. Ao inicializar a instância, você deve configurar as opções necessárias para o modo de rede `awsvpc`. Para obter mais informações, consulte [Inicialização de instâncias de contêiner do Windows no Amazon ECS para transmitir dados](bootstrap_windows_container_instance.md).
+ O Amazon ECS preenche o nome de host da tarefa usando a rede de tarefas com um nome de host DNS (interno) fornecido pela Amazon quando as opções `enableDnsHostnames` e `enableDnsSupport` estão habilitadas na sua VPC. Se essas opções não estiverem habilitadas, o nome de host DNS da tarefa será um nome de host aleatório. Para obter mais informações sobre as configurações de DNS para uma VPC, consulte [Usar DNS com sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html) no *Guia do usuário da Amazon VPC*.
+ Cada tarefa do Amazon ECS que usa o modo de rede `awsvpc` recebe sua própria interface de rede elástica (ENI), que está anexada à instância do Windows do Amazon EC2 que a hospeda. Existe uma cota padrão para o número de interfaces de rede que é possível anexar a uma instância Windows do Amazon EC2. A interface de rede primária conta para essa cota. Por exemplo, por padrão, uma instância `c5.large` só pode ter até três ENIs associadas a ela. A interface de rede primária da instância conta como uma delas. É possível associar mais duas ENIs à instância. Como cada tarefa que usa o modo de rede `awsvpc` exige uma ENI, em geral, você pode executar somente duas dessas tarefas nesse tipo de instância. Para obter mais informações sobre os limites de ENI padrão para cada tipo de instância, consulte [Endereços IP por interface de rede por tipo de instância](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-eni.html#AvailableIpPerENI) no *Guia do usuário do Amazon EC2*.
+ Ao hospedar tarefas que usam o modo de rede `awsvpc` em instâncias do Windows do Amazon EC2, suas ENIs de tarefa não recebem endereços IP públicos. Para acessar a Internet, inicie tarefas em uma sub-rede privada configurada para usar um gateway NAT. Para obter mais informações, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) no *Guia do usuário da Amazon VPC*. O acesso à rede de entrada deve ocorrer de dentro da VPC usando o endereço IP privado ou roteado por um load balancer de dentro da VPC. As tarefas inicializadas em sub-redes públicas não têm acesso à Internet.
+ O Amazon ECS reconhece somente as ENIs que ele anexa às suas instâncias Windows do Amazon EC2. Se você tiver anexado ENIs manualmente às suas instâncias, o Amazon ECS poderá tentar adicionar uma tarefa a uma instância que não tenha adaptadores de rede suficientes. Isso pode fazer com que a tarefa atinja o tempo limite, passe para um status em desprovisionamento e, em seguida, para um status de interrompida. Recomendamos que você não anexe ENIs às suas instâncias manualmente.
+ As instâncias do Windows do Amazon EC2 devem ser registradas com o recurso `ecs.capability.task-eni` para serem consideradas para posicionamento de tarefas com o modo de rede `awsvpc`. 
+  É possível modificar ou desanexar manualmente as ENIs criadas e anexadas às suas instâncias do Windows do Amazon EC2. Isso evita que você exclua acidentalmente uma ENI associada a uma tarefa em execução. Para liberar as ENIs para uma tarefa, interrompa-a.
+  É possível especificar até 16 sub-redes e 5 grupos de segurança em `awsVpcConfiguration` ao executar uma tarefa ou criar um serviço que usa o modo de rede `awsvpc`. Para obter mais informações, consulte [AwsVpcConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_AwsVpcConfiguration.html) na *Referência da API de serviço do contêiner do Amazon Elastic Container Service*.
+ Quando uma tarefa é iniciada com o modo de rede `awsvpc`, o agente de contêiner do Amazon ECS cria um contêiner `pause` adicional para cada tarefa antes de iniciar os contêineres na definição de tarefa. Em seguida, ele configura o namespace de rede do contêiner `pause` ao executar os plug-ins do CNI [amazon-ecs-cni-plugins](https://github.com/aws/amazon-ecs-cni-plugins). O agente inicia então o restante dos contêineres na tarefa para que eles compartilhem a pilha de rede do contêiner `pause`. Isso significa que todos os contêineres em uma tarefa são endereçáveis por endereços IP da ENI, e que eles podem se comunicar entre eles por meio da interface `localhost`.
+ Serviços com tarefas que usam o modo de rede `awsvpc` oferecem suporte somente a Application Load Balancers e Network Load Balancers. Ao criar grupos de destino para esses serviços, você precisa escolher `ip` como o tipo de destino, e não `instance`. Isso ocorre porque as tarefas que usam o modo de rede `awsvpc` são associadas a uma ENI, não a uma instância do Windows do Amazon EC2. Para obter mais informações, consulte [Uso do balanceamento de carga para distribuir o tráfego de serviço do Amazon ECS](service-load-balancing.md).
+ Se a sua VPC for atualizada para alterar o conjunto de opções de DHCP que ela utiliza, não será possível aplicar essas alterações às tarefas existentes. Inicie novas tarefas com essas alterações aplicadas, verifique se elas estão funcionando corretamente e, em seguida, interrompa tarefas existentes para modificar essas configurações de rede com segurança.
+ Não há suporte para os seguintes recursos quando você usa o modo de rede `awsvpc` em uma configuração de EC2 do Windows:
  + Configuração de pilha dupla
  + IPv6
  + Entroncamento ENI

## Usar uma VPC no modo de pilha dupla
<a name="task-networking-vpc-dual-stack"></a>

Ao usar uma VPC no modo de pilha dupla, as tarefas podem se comunicar por IPv4, IPv6 ou ambos. Os endereços IPv4 e IPv6 são independentes um do outro. Portanto, é preciso configurar o encaminhamento e a segurança na VPC separadamente para IPv4 e IPv6. Para obter mais informações sobre como configurar a VPC para o modo de pilha dupla, consulte [Migrar para IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) no *Guia do usuário da Amazon VPC*.

Se tiver configurado sua VPC com um gateway da Internet ou um gateway da Internet somente saída, será possível utilizar sua VPC no modo de pilha dupla. Fazendo isso, as tarefas que obtêm um endereço IPv6 podem acessar a Internet por meio de um gateway da Internet ou um gateway da Internet somente saída. Gateways NAT são opcionais. Para obter mais informações, consulte [Gateways da Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html) e [Gateways da Internet](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html) somente de saída no *Guia do usuário da Amazon VPC*.

As tarefas do Amazon ECS receberão um endereço IPv6 se as seguintes condições forem atendidas:
+ A instância Linux do Amazon EC2 que hospeda a tarefa está usando a versão `1.45.0` ou posterior do agente de contêiner. Para obter informações sobre como verificar a versão do agente que a instância está usando e atualizá-la, se necessário, consulte [Atualizar o agente de contêiner do Amazon ECS](ecs-agent-update.md).
+ A configuração `dualStackIPv6` da conta está habilitada. Para obter mais informações, consulte [Acesso aos recursos do Amazon ECS com as configurações de conta](ecs-account-settings.md).
+ Sua tarefa está usando o modo de rede `awsvpc`.
+ Sua VPC e sua sub-rede estão configuradas para IPv6. A configuração inclui as interfaces de rede criadas na sub-rede especificada. Para obter mais informações sobre como configurar a VPC para o modo de pilha dupla, consulte [Migrar para IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) e [Modificar o atributo de endereçamento IPv6 para a sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-ipv6) no *Guia do usuário da Amazon VPC*.

# Mapeie as portas de contêiner do Amazon ECS para a interface de rede de instância do EC2
<a name="networking-networkmode-host"></a>

Só há suporte para o modo de rede `host` com tarefas do Amazon ECS hospedadas em instâncias do Amazon EC2. Não há suporte com o uso do Amazon ECS no Fargate.

O modo de rede `host` é o modo de rede mais básico com suporte no Amazon ECS. Com o uso do modo host, a rede do contêiner é vinculada diretamente ao host subjacente que está executando o contêiner.

![\[Diagrama que mostra a arquitetura de uma rede com contêineres usando o modo de rede host.\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/images/networkmode-host.png)


Suponha que você esteja executando um contêiner Node.js com uma aplicação Express que escuta em uma porta `3000` semelhante à ilustrada no diagrama anterior. Quando o modo de rede `host` é usado, o contêiner recebe tráfego na porta 3000 usando o endereço IP da instância de host subjacente do Amazon EC2. Não é recomendável usar esse modo.

Existem desvantagens significativas em usar esse modo de rede. Você não pode executar mais do que uma única instanciação de uma tarefa em cada host. Isso ocorre porque somente a primeira tarefa pode ser vinculada à porta necessária na instância do Amazon EC2. Também não há como remapear uma porta de contêiner quando ela estiver usando o modo de rede `host`. Por exemplo, se uma aplicação precisar escutar um determinado número de porta, você não poderá remapear o número da porta diretamente. Em vez disso, você deverá gerenciar quaisquer conflitos de portas alterando a configuração da aplicação.

Também há implicações de segurança com o uso do modo de rede `host`. Esse modo permite que os contêineres representem o host e permite que os contêineres se conectem a serviços de rede de loopback privados no host.

# Usar a rede virtual do Docker para tarefas do Linux no Amazon ECS
<a name="networking-networkmode-bridge"></a>

Só há suporte para o modo de rede `bridge` com tarefas do Amazon ECS hospedadas em instâncias do Amazon EC2.

Com o modo `bridge`, você está usando uma ponte de rede virtual para criar uma camada entre o host e a rede do contêiner. Dessa forma, é possível criar mapeamentos de portas que remapeiem uma porta de host para uma porta de contêiner. Os mapeamentos podem ser estáticos ou dinâmicos.

![\[Diagrama que mostra a arquitetura de uma rede usando o modo de rede bridge com mapeamento de portas estático.\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/images/networkmode-bridge.png)


Com um mapeamento estático de portas, é possível definir explicitamente qual porta de host deseja mapear para uma porta de contêiner. Usando o exemplo acima, a porta `80` do host está sendo mapeada para a porta `3000` do contêiner. Para se comunicar com a aplicação em contêiner, você envia tráfego para a porta `80` no endereço IP da instância do Amazon EC2. Do ponto de vista da aplicação em contêineres, ela vê esse tráfego de entrada na porta `3000`.

Se você quiser alterar apenas a porta de tráfego, os mapeamentos de portas estáticos são adequados. No entanto, isso ainda tem a mesma desvantagem de usar o modo de rede `host`. Você não pode executar mais do que uma única instanciação de uma tarefa em cada host. Isso ocorre porque um mapeamento estático de portas permite que apenas um único contêiner seja mapeado para a porta 80.

Para resolver esse problema, considere usar o modo de rede `bridge` com um mapeamento dinâmico de portas, conforme mostrado no diagrama a seguir.

![\[Diagrama que mostra a arquitetura de uma rede usando o modo de rede bridge com mapeamento de portas dinâmico.\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/images/networkmode-bridge-dynamic.png)


Ao não especificar uma porta host no mapeamento de portas, é possível fazer com que o Docker escolha uma porta aleatória e não usada do intervalo de portas temporárias e a atribua como porta host pública para o contêiner. Por exemplo, a aplicação Node.js receptora na porta `3000` do contêiner pode receber uma porta aleatória de número alto, como `47760`, no host do Amazon EC2. Isso significa que é possível executar várias cópias desse contêiner no host. Além disso, cada contêiner pode ter sua própria porta atribuída no host. Cada cópia do contêiner recebe tráfego na porta `3000`. Contudo, os clientes que enviam tráfego para esses contêineres usam as portas de host atribuídas aleatoriamente.

O Amazon ECS ajuda você a acompanhar as portas atribuídas aleatoriamente para cada tarefa. Isso é feito atualizando automaticamente os grupos-alvo do balanceador de carga e a descoberta de serviços do AWS Cloud Map para ter a lista de portas e endereços IP de tarefas. Isso facilita o uso de serviços em operação usando o modo `bridge` com portas dinâmicas.

No entanto, uma desvantagem de se usar o modo de rede `bridge` é que é difícil bloquear as comunicações entre serviços. Como os serviços podem ser atribuídos a qualquer porta aleatória e não usada, é necessário abrir amplos intervalos de portas entre os hosts. Contudo, não é fácil criar regras específicas para que um determinado serviço só possa se comunicar com outro serviço específico. Os serviços não têm portas específicas para usar nas regras de rede de grupos de segurança.

## Configurar o modo de rede ponte para workloads somente IPv6
<a name="networking-networkmode-bridge-ipv6-only"></a>

Para configurar o modo `bridge` para comunicação via IPv6, você deve atualizar as configurações do daemon do Docker. Atualize `/etc/docker/daemon.json` com o seguinte:

```
{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64",
  "ip6tables": true,
  "experimental": true
}
```

Depois de atualizar as configurações do daemon do Docker, você precisará reiniciar o daemon.

**nota**  
Quando você atualiza e reinicia o daemon, o Docker ativa o encaminhamento IPv6 na instância, o que pode resultar na perda de rotas padrão nas instâncias que usam uma AMI do Amazon Linux 2. Para evitar isso, use o comando a seguir para adicionar uma rota padrão por meio do gateway IPv6 da sub-rede.  

```
ip route add default via FE80:EC2::1 dev eth0 metric 100
```