Configurar um balanceador de carga público
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.
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.
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:
No portal do Azure, selecione o recurso Balanceador de Carga.
Na página Regras de balanceamento de carga, no painel Configurações, selecione a regra de balanceamento de carga relevante.
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.
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.