Configurar um balanceador de carga público

Concluído

Enquanto arquiteto de soluções do portal de cuidados de saúde, tem de distribuir a carga dos browsers dos clientes pelas máquinas virtuais no seu Web farm. Tem de configurar um balanceador de carga e configurar as máquinas virtuais para serem equilibradas.

Um balanceador de carga público mapeia o número de porta e endereço IP público do tráfego de entrada ao número de porta e endereço IP privado de uma máquina virtual no conjunto de back-end. Depois, as respostas são devolvidas ao cliente. Ao aplicar 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 predefinição, o Balanceador de Carga do Azure distribui o tráfego de rede igualmente entre várias instâncias da máquina virtual. Os seguintes modos de distribuição também são possíveis se for necessário um comportamento diferente:

  • Hash de cinco tuplas: O modo de distribuição padrão para o 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. Dado que a porta de origem é incluída no hash e muda para cada sessão, os clientes podem ser direcionados para uma máquina virtual diferente em cada sessão.

    Diagram showing how hash-based distribution works.

  • Afinidade IP de origem: Este modo de distribuição também é conhecido como afinidade de sessão ou afinidade IP de cliente. Para mapear o tráfego para os servidores disponíveis, o modo de afinidade 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, endereço IP de destino e tipo de protocolo). O hash garante que os pedidos de um cliente específico são sempre enviados para a mesma máquina virtual atrás do balanceador de carga.

    Diagram showing how session affinity works.

Escolher um modo de distribuição

No exemplo do portal de assistência médica, 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.

Neste cenário, o balanceador de carga tem de fornecer a afinidade do IP de origem para manter a sessão do utilizador. O perfil é armazenado somente na máquina virtual à qual o cliente se conecta primeiro, porque 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 a persistência da sessão através do portal do Azure:

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

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

    Screenshot showing how to select a load balancing rule in the Azure portal.

  3. Na página de configurações da regra de balanceamento de carga, altere o valor para Persistência de sessão de Nenhum para IPs do cliente.

Screenshot showing how to set IP affinity in the Azure portal.

Balanceador de Carga e Gateway de Ambiente de Trabalho Remoto

O Gateway de Ambiente de Trabalho Remoto é um serviço Windows que pode utilizar para permitir que os clientes na Internet façam ligações do Protocolo RDP (Remote Desktop Protocol) através de firewalls aos servidores do Ambiente de Trabalho Remoto na sua rede privada. O hash de cinco cadeias predefinido no Balanceador de Carga não é compatível com este serviço. Se quiser utilizar o Balanceador de Carga com os seus servidores do Ambiente de Trabalho Remoto, utilize a afinidade do IP de origem.

Balanceador de Carga e carregamento de multimédia

A afinidade do IP de origem também é utilizada para o carregamento de multimédia. Em muitas implementações, um cliente inicia uma sessão através de um protocolo TCP e liga-se a um endereço IP de destino. Esta ligação permanece aberta durante o carregamento para monitorizar o progresso, mas o ficheiro é carregado através 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 carregamento não será concluído com êxito. Utilize a afinidade do IP de origem para resolver este problema.