

# Uso de um Network Load Balancer no Amazon ECS
<a name="nlb"></a>

Um Network Load Balancer toma decisões de roteamento na camada de transporte (TCP/SSL). Ele pode lidar com milhões de solicitações por segundo. Após o load balancer receber uma conexão, ele seleciona um destino do grupo de destino para a regra padrão usando um algoritmo de roteamento de hash de fluxo. Ele tenta abrir uma conexão TCP para o destino selecionado na porta especificada na configuração do listener. Ele encaminha a solicitação sem modificar os cabeçalhos. Os network load balancers oferecem suporte ao mapeamento de porta de host dinâmico. Por exemplo, se a definição de contêiner da tarefa especifica a porta 80 para uma porta de contêiner NGINX e a porta 0 para a porta do host, a porta do host é escolhida dinamicamente com base no intervalo de portas temporário da instância de contêiner (como entre 32768 e 61000 na AMI otimizado para Amazon ECS mais recente). Quando a tarefa é inicializada, o contêiner NGINX é registrado no Network Load Balancer como uma combinação de ID e porta da instância, e o tráfego é distribuído para o ID e para a porta da instância correspondentes a este contêiner. Esse mapeamento dinâmico permite várias tarefas de um único serviço na mesma instância de contêiner. Para obter mais informações, consulte o [Guia do usuário de network load balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/).

Para obter informações sobre as práticas recomendadas para a definição de parâmetros a fim de acelerar as implantações, consulte:
+ [Otimização dos parâmetros de verificação de integridade do balanceador de carga para o Amazon ECS](load-balancer-healthcheck.md)
+ [Otimização de parâmetros de drenagem da conexão do balanceador de carga para o Amazon ECS](load-balancer-connection-draining.md)

Considere o seguinte ao usar Network Load Balancers com o Amazon ECS:
+ O Amazon ECS exige o perfil do IAM vinculado ao serviço, que fornece as permissões necessárias para registrar e cancelar o registro de destinos com o balanceador de carga quando as tarefas são criadas e interrompidas. Para obter mais informações, consulte [Uso de perfis vinculados ao serviço para o Amazon ECS](using-service-linked-roles.md).
+ Não é possível anexar mais de cinco grupos de destino a um serviço.
+ Para serviços em uma configuração somente IPv6, você deve definir o tipo de endereço IP do grupo de destino do Network Load Balancer como `dualstack`.
+ Para serviços com tarefas que usam o modo de rede `awsvpc`, ao criar um grupo de destino para o serviço, é necessário escolher `ip` como o tipo de destino, e não `instance`. Isso ocorre porque as tarefas que usam o modo de rede `awsvpc` estão associadas a uma interface de rede elástica, e não a uma instância do Amazon EC2.
+ A configuração de sub-rede do load balancer deve incluir todas as zonas de disponibilidade nas quais as instâncias de contêiner residem.
+ Após você criar um serviço, a configuração do balanceador de carga não poderá ser alterada no Console de gerenciamento da AWS. É possível usar o AWS Copilot, o AWS CloudFormation, a AWS CLI ou o SDK para modificar a configuração do balanceador de carga somente para o controlador de implantação rolling do `ECS`, e não o AWS CodeDeploy azul/verde ou externo. Quando você adiciona, atualiza ou remove uma configuração de balanceador de carga, o Amazon ECS inicia uma nova implantação com a configuração atualizada do Elastic Load Balancing. Isso faz com que as tarefas se registrem e cancelem o registro dos balanceadores de carga. Recomendamos verificar isso em um ambiente de teste antes de atualizar a configuração do Elastic Load Balancing. Para obter informações sobre como modificar a configuração, consulte [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) na *Referência da API do Amazon Elastic Container Service*. 
+ Caso a tarefa de um serviço não passe nos critérios de verificação de integridade do balanceador de carga, a tarefa é interrompida e reiniciada. Esse processo continuará até que o serviço alcance o número de tarefas em execução desejadas.
+ Ao usar um Gateway Load Balancer configurado com endereços IP como destinos e a Preservação do IP do Cliente desativada, as solicitações parecem se originar do endereço IP privado do Gateway Load Balancers. Isso significa que, ao permitir solicitações de entrada e verificações de integridade no grupo de segurança de destino, os serviços protegidos por um Gateway Load Balancer ficam efetivamente expostos.
+ Para tarefas do Fargate, você deve usar a versão da plataforma `1.4.0` (Linux) ou `1.0.0` (Windows).
+ Caso você esteja enfrentando problemas com os serviços habilitados pelo balanceador de carga, consulte [Solução de problemas relacionados aos balanceadores de carga de serviço no Amazon ECS](troubleshoot-service-load-balancers.md).
+ Ao usar o tipo de destino `instance`, as tarefas e o balanceador de carga devem estar na mesma VPC. Ao usar o tipo de destino `ip`, há suporte para conectividade entre VPCs.
+ A preservação do endereço IP do cliente do Network Load Balancer é compatível com os destinos do Fargate.
+ Use um grupo de destino exclusivo para cada serviço. 

  Usar o mesmo grupo de destino para vários serviços pode causar problemas durante a implantação do serviço.
+ Você deve especificar grupos de destino que estejam associados a um Network Load Balancer.

Para obter informações sobre como criar um Network Load Balancer, consulte [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) em *Network Load Balancers*

**Importante**  
Se a definição de tarefa do serviço usar o modo de rede `awsvpc` (exigido para o Fargate), será preciso escolher `ip` como tipo de destino, e não `instance`. Isso ocorre porque as tarefas que usam o modo de rede `awsvpc` estão associadas a uma interface de rede elástica, e não a uma instância do Amazon EC2.   
Você não pode registrar instâncias por ID de instância se eles tiverem os seguintes tipos de instância: C1, CC1, CC2, CG1, CG2, CR1, G1, G2, HI1, HS1, M1, M2, M3 e T1. É possível registrar instâncias desses tipos por endereço IP. 