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.

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

  • 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.

    Diagrama mostrando como funciona a afinidade de sessão.

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.

    Captura de ecrã a mostrar como selecionar uma regra de balanceamento de carga no portal do Azure.

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

Captura de ecrã a mostrar como definir afinidade IP no portal do Azure.

Balanceador de Carga e Gateway de Ambiente de Trabalho Remoto

O Gateway de Área de Trabalho Remota é um serviço do Windows que permite que clientes na Internet façam conexões RDP (Remote Desktop Protocol) através de firewalls para servidores de Área de Trabalho Remota em 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 (Transmission Control Protocol) e se conecta a um endereço IP de destino. Essa conexão permanece aberta durante todo o upload para monitorar o progresso, mas o arquivo é carregado por meio de um protocolo UDP (User Datagram Protocol) 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 é concluído com êxito. Utilize a afinidade do IP de origem para resolver este problema.