Network Load Balancers - Elastic Load Balancing

Network Load Balancers

Um Network Load Balancer atua como ponto único de contato para os clientes. Os clientes enviam solicitações para o Network Load Balancer e ele as envia para os destinos, como instâncias do EC2, em uma ou mais zonas de disponibilidade.

Para configurar o Network Load Balancer, você cria grupos de destino e, em seguida, registra os destinos nesses grupos. O Network Load Balancer será mais eficaz se você garantir que cada zona de disponibilidade habilitada tenha pelo menos um destino registrado. Você também pode criar listeners para verificar a solicitações de conexão de clientes e rotear solicitações dos clientes para os destinos em seus grupos de destino.

Os Network Load Balancers são compatíveis com conexões de clientes por emparelhamento de VPC, VPN gerenciada pela AWS, AWS Direct Connect ou soluções de VPN de terceiros.

Estado do load balancer

Um Network Load Balancer pode estar em um dos seguintes estados:

provisioning

O Network Load Balancer está sendo configurado.

active

O Network Load Balancer está totalmente configurado e pronto para rotear tráfego.

failed

Não foi possível configurar o Network Load Balancer.

Tipo de endereço IP

É possível definir os tipos de endereços IP que os clientes podem usar com seu Network Load Balancer.

Os Network Load Balancers oferecem suporte aos seguintes tipos de endereço IP:

ipv4

Os clientes devem se conectar ao Network Load Balancer usando endereços IPv4 (por exemplo, 192.0.2.1). Os Network Load Balancers habilitados para IPv4 (tanto voltados para a Internet quanto internos) são compatíveis com receptores TCP, UDP, TCP_UDP e TLS.

dualstack

Os clientes podem se conectar ao Network Load Balancer usando endereços IPv4 (por exemplo, 192.0.2.1) e endereços IPv6 (por exemplo, 2001:0db8:85a3:0:0:8a2e:0370:7334). Os Network Load Balancers dualstack (tanto voltados para a Internet quanto internos) são compatíveis com receptores TCP e TLS.

Considerações
  • O Network Load Balancer se comunica com os destinos com base no tipo de endereço IP do grupo de destino.

  • Quando você habilita o modo dualstack para o Network Load Balancer, o Elastic Load Balancing fornece um registro de DNS AAAA para o Network Load Balancer. Os clientes que se comunicam com o Network Load Balancer usando endereços IPv4 resolvem o registro de DNS A. Os clientes que se comunicam com o Network Load Balancer usando endereços IPv6 resolvem o registro de DNS AAAA.

  • O acesso aos Network Load Balancers dualstack internos por meio do gateway da Internet é bloqueado para impedir acesso não intencional à Internet. Entretanto, esse atributo não impede outros acessos à Internet (por exemplo, por meio de emparelhamento, gateway de trânsito, AWS Direct Connect ou AWS VPN).

Para obter mais informações sobre tipos de endereços IP, consulte Atualizar os tipos de endereço IP para o Network Load Balancer.

Tempo limite de inatividade da conexão

Para cada solicitação de TCP que um cliente faz por meio de um Network Load Balancer, o estado da conexão é rastreado. Se não há dados enviados do cliente nem do destino por um período que ultrapasse o tempo limite de inatividade, a conexão não é mais acompanhada. Se um cliente ou um destino envia dados depois do tempo limite de inatividade, o cliente recebe um pacote TCP RST para indicar que a conexão não é mais válida.

O valor padrão do tempo limite de inatividade para fluxos TCP é 350 segundos, mas pode ser atualizado para qualquer valor entre 60 e 6.000 segundos. Os clientes ou destinos podem usar pacotes keepalive de TCP para reiniciar o tempo limite de natividade. Pacotes Keepalive enviados para manter conexões TLS não podem conter dados ou carga.

Quando um receptor TLS recebe um pacote TCP keepalive de um cliente ou de um destino, o balanceador de carga gera pacotes TCP keepalive e os envia para as conexões de frontend e backend a cada 20 segundos. Não é possível modificar esse comportamento.

Embora o UDP não tenha conexão, o balanceador de carga mantém o estado do fluxo de UDP com base nos endereços IP e nas portas. Isso garante que os pacotes que pertencem ao mesmo fluxo sejam enviados consistentemente para o mesmo destino. Depois do tempo limite de inatividade, o balanceador de carga considerará o pacote UDP de entrada como um novo fluxo e o roteará para um novo destino. O Elastic Load Balancing define o valor do tempo limite de inatividade para fluxos de UDP como 120 segundos. Elas não podem ser alteradas.

As instâncias do EC2 devem responder a uma nova solicitação dentro de 30 segundos para estabelecer um caminho de retorno.

Para ter mais informações, consulte Atualizar o tempo limite de inatividade.

Atributos do load balancer

É possível configurar o Network Load Balancer editando seus atributos. Para ter mais informações, consulte Editar atributos do Network Load Balancer.

Os atributos de balanceador de carga para Network Load Balancers são:

access_logs.s3.enabled

Indica se os logs de acesso armazenados no Amazon S3 estão habilitados. O padrão é false.

access_logs.s3.bucket

O nome do bucket do Amazon S3 para os logs de acesso. Esse atributo é necessário se os logs de acesso estiverem habilitados. Para ter mais informações, consulte Requisitos do bucket.

access_logs.s3.prefix

O prefixo para o local no bucket do Amazon S3.

deletion_protection.enabled

Indica se a proteção contra exclusão está habilitada. O padrão é false.

ipv6.deny_all_igw_traffic

Bloqueia o acesso do gateway da Internet (IGW) ao Network Load Balancer, impedindo o acesso não intencional ao Network Load Balancer interno por meio de um gateway da Internet. Ele é definido como false para Network Load Balancers voltados para a Internet e true para Network Load Balancers internos. Esse atributo não impede o acesso à Internet não IGW (por exemplo, por meio de emparelhamento, do gateway de trânsito, do AWS Direct Connect ou da AWS VPN).

load_balancing.cross_zone.enabled

Indica se o balanceamento de carga entre zonas está habilitado. O padrão é false.

dns_record.client_routing_policy

Indica como o tráfego é distribuído entre as zonas de disponibilidade de Network Load Balancers. Os valores possíveis são availability_zone_affinity com 100% de afinidade zonal, partial_availability_zone_affinity com 85% de afinidade zonal e any_availability_zone com 0% de afinidade zonal.

zonal_shift.config.enabled

Indica se a mudança de zona está habilitada. O padrão é false.

Balanceamento de carga entre zonas

Por padrão, cada nó de Network Load Balancer distribui tráfego aos destinos registrados somente na própria zona de disponibilidade. Se você ativar o balanceamento de carga entre zonas, cada nó de Network Load Balancer distribuirá tráfego aos destinos registrados em todas as zonas de disponibilidade habilitadas. Você também pode ativar o balanceamento de carga entre zonas no nível de grupo de destino. Para mais informações, consulte Balanceamento de carga entre zonas para grupos de destino e Balanceamento de carga entre zonas no Guia do usuário do Elastic Load Balancing.

Nome DNS

Cada Network Load Balancer recebe um nome padrão do Sistema de Nomes de Domínio (DNS) com a seguinte sintaxe: name-id.elb.region.amazonaws.com. Por exemplo, my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com.

Se preferir usar um nome DNS que seja mais fácil de lembrar, é possível criar um nome de domínio personalizado e associá-lo ao nome DNS do seu Network Load Balancer. Quando um cliente faz uma solicitação usando esse nome de domínio personalizado, o servidor DNS o resolverá para o nome DNS para seu Network Load Balancer.

Primeiro, registre um nome de domínio com um registrador de nomes de domínio credenciado. Em seguida, use o serviço de DNS, como o registrador de domínios, para criar um registro de DNS para rotear solicitações para o Network Load Balancer. Para obter mais informações, consulte a documentação do serviço DNS. Por exemplo, se você usar o Amazon Route 53 como serviço de DNS, criará um registro de alias que apontará para o Network Load Balancer. Para obter mais informações, consulte Rotear tráfego para um balanceador de carga ELB no Guia do desenvolvedor do Amazon Route 53.

O Network Load Balancer tem um endereço IP por zona de disponibilidade habilitada. Esses são os endereços IP dos nós do Network Load Balancer. O nome de DNS do Network Load Balancer é resolvido nesses endereços. Por exemplo, vamos supor que o nome de domínio personalizado para seu Network Load Balancer seja example.networkloadbalancer.com. Use o comando dig ou nslookup a seguir para determinar os endereços IP dos nós do Network Load Balancer.

Linux ou Mac

$ dig +short example.networkloadbalancer.com

Windows

C:\> nslookup example.networkloadbalancer.com

O Network Load Balancer tem registros de DNS para seus nós. É possível usar nomes de DNS com a seguinte sintaxe para determinar os endereços IP dos nós do Network Load Balancer: az.name-id.elb.region.amazonaws.com.

Linux ou Mac

$ dig +short us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Windows

C:\> nslookup us-east-2b.my-load-balancer-1234567890abcdef.elb.us-east-2.amazonaws.com

Integridade de zona do balanceador de carga

Os Network Load Balancers têm registros DNS de zonas e endereços IP no Route 53 para cada zona de disponibilidade habilitada. Quando um Network Load Balancer falha em uma verificação de integridade de zona para uma zona de disponibilidade específica, seu registro DNS é removido do Route 53. A integridade de zona do balanceador de carga é monitorada por meio da métrica ZonalHealthStatus do Amazon CloudWatch, oferecendo mais informações sobre eventos que causam uma falha na implementação de medidas preventivas para garantir a disponibilidade ideal da aplicação. Para obter mais informações, consulte Métricas do Network Load Balancer.

Os Network Load Balancers podem falhar nas verificações de integridade de zonas por vários motivos, o que faz com que eles se tornem não íntegros. Veja abaixo as causas comuns de Network Load Balancers não íntegros decorrentes de falhas nas verificações de integridade de zonas.

Verifique as seguintes causas possíveis:
  • Não há destinos íntegros para o balanceador de carga

  • O número de destinos íntegros é menor que o mínimo configurado

  • Há uma mudança de zona ou mudança de zona automática em andamento

  • O tráfego está sendo migrado automaticamente para zonas íntegros devido a problemas detectados