Configurar um balanceador de carga público

Concluído

Como o arquiteto de soluções do portal de saúde, é necessário distribuir a carga dos navegadores cliente entre as máquinas virtuais do seu Web farm. É necessário configurar um balanceador de carga e definir as máquinas virtuais a serem balanceadas.

Um balanceador de carga público mapeia o endereço IP público e o número da porta do tráfego de entrada até o endereço IP privado e o número da porta da máquina virtual no pool de back-end. As respostas são retornadas ao cliente. Aplicando regras de balanceamento de carga, você pode distribuir tipos específicos de tráfego em várias máquinas virtuais ou serviços.

Modos de distribuição

Por padrão, o Azure Load Balancer distribui o tráfego de rede igualmente entre as instâncias de máquinas virtuais. Os seguintes modos de distribuição também serão possíveis se um comportamento diferente for necessário:

  • Hash de cinco tuplas: O modo de distribuição padrão do Load Balancer é um hash de cinco tuplas. A tupla é composta por IP de origem, porta de origem, IP de destino, porta de destino e tipo de protocolo. Como a porta de origem está incluída no hash e a porta de origem é alterada para cada sessão, os clientes podem ser direcionados para uma máquina virtual diferente a cada sessão.

    Diagrama mostrando como funciona a distribuição baseada em hash.

  • Afinidade de IP de origem: Esse modo de distribuição também é conhecido como afinidade de sessão ou afinidade do IP do cliente. Para mapear o tráfego aos servidores disponíveis, o modo de afinidade do IP de origem usa um hash de duas tuplas (do endereço IP de origem e do endereço IP de destino) ou um hash de três tuplas (do endereço IP de origem, do endereço IP de destino e do tipo de protocolo). O hash garante que as solicitações de um cliente específico sejam sempre enviadas para a mesma máquina virtual por trás do balanceador de carga.

    Diagrama mostrando como a afinidade de sessão funciona.

Escolher um modo de distribuição

No exemplo do portal de saúde, imagine que um requisito do desenvolvedor da camada de apresentação é usar sessões na memória para armazenar o perfil do usuário conectado à medida que o usuário interage com o portal.

Nesse cenário, o balanceador de carga deverá fornecer a afinidade do IP de origem para manter a sessão de um usuário. O perfil é armazenado apenas na máquina virtual à qual o cliente se conecta pela primeira vez, pois esse endereço IP é direcionado para o mesmo servidor. Ao criar o ponto de extremidade do balanceador de carga, você deve especificar o modo de distribuição usando o seguinte exemplo do PowerShell:

$lb = Get-AzLoadBalancer -Name MyLb -ResourceGroupName MyResourceGroup
$lb.LoadBalancingRules[0].LoadDistribution = 'sourceIp'
Set-AzLoadBalancer -LoadBalancer $lb

Para adicionar persistência de sessão por meio do portal do Azure:

  1. No portal do Azure, selecione o recurso Balanceador de Carga.

  2. Na página Regras de balanceamento de carga, no painel Configurações, selecione a regra de balanceamento de carga relevante.

    Captura de tela mostrando como selecionar uma regra de balanceamento de carga no portal do Azure.

  3. Na página Configurações das regras de balanceamento de carga, altere o valor da Persistência de sessão de Nenhum para IP do cliente.

Captura de tela que mostra como definir a afinidade do IP no portal do Azure.

Load Balancer e Gateway de Área de Trabalho Remota

O Gateway de Área de Trabalho Remota é um serviço Windows que permite que os clientes na Internet realizem conexões do protocolo RDP por meio de firewalls com servidores de Área de Trabalho Remota em sua rede privada. O hash de cinco tuplas padrão no Load Balancer é incompatível com esse serviço. Se você quiser usar o Load Balancer com seus servidores de Área de Trabalho Remota, use a afinidade do IP de origem.

Load Balancer e upload de mídia

Outro caso de uso para a afinidade do IP de origem é o upload de mídia. Em muitas implementações, um cliente inicia uma sessão por meio de um protocolo TCP e se conecta a um endereço IP de destino. Essa conexão permanece aberta durante todo o processo de upload para monitorar o andamento, mas o arquivo é carregado por meio de um protocolo UDP separado.

Com o hash de cinco tuplas, o balanceador de carga provavelmente envia as conexões TCP e UDP para endereços IP de destino diferentes, e o upload não é concluído com êxito. Use a afinidade do IP de origem para resolver esse problema.