Visão geral do balanceamento de carga do proxy TCP

O balanceamento de carga do proxy TCP do Google Cloud permite usar um único endereço IP para todos os usuários do mundo. O balanceador de carga do proxy TCP direciona automaticamente o tráfego para os back-ends mais próximos do usuário.

O balanceamento de carga global exige que você use o nível Premium dos níveis de serviço de rede, que é o nível padrão. Caso contrário, o balanceamento de carga será tratado regionalmente.

O balanceamento de carga do proxy TCP destina-se ao tráfego TCP em portas conhecidas e específicas, como a porta 25 do protocolo SMTP. Para mais informações, consulte Especificações de porta. Para o tráfego de cliente criptografado nessas mesmas portas, use Balanceamento de carga do proxy SSL.

Para informações sobre as diferenças entre os balanceadores de carga do Google Cloud, consulte os documentos a seguir:

O balanceamento de carga do proxy TCP aceita endereços IPv4 e IPv6 para o tráfego do cliente. As solicitações IPv6 do cliente são encerradas na camada de balanceamento de carga e encaminhadas por proxy via IPv4 para seus back-ends.

Ao usar o balanceamento de carga do proxy TCP, é possível encerrar sessões TCP do cliente na camada de balanceamento de carga e encaminhar o tráfego para instâncias de back-end usando TCP ou SSL.

Exemplo de balanceamento de carga do proxy TCP

Usando o balanceamento de carga do proxy TCP, o tráfego proveniente de uma conexão TCP é encerrado na camada de balanceamento de carga e intermediado por proxy para o back-end mais próximo disponível.

Neste exemplo, as conexões para o tráfego de usuários em Seul e Boston são encerradas na camada de balanceamento de carga. Essas conexões são marcadas como 1a e 2a. Conexões separadas são estabelecidas a partir do balanceador de carga para as instâncias de back-end selecionadas. Essas conexões são marcadas como 1b e 2b.

Cloud Load Balancing com encerramento do TCP (clique para ampliar)
Cloud Load Balancing com encerramento do TCP (clique para ampliar)

O balanceamento de carga do proxy TCP pode ser configurado como um serviço de balanceamento de carga global. Com essa configuração, é possível implantar seus back-ends em várias regiões, e o balanceamento de carga global direciona automaticamente o tráfego para a região mais próxima do usuário. Se uma região estiver no limite da capacidade, o balanceador de carga direcionará automaticamente as novas conexões para outra região que tenha capacidade disponível. As conexões de usuário existentes permanecem na região atual.

Vantagens

Veja a seguir alguns benefícios do uso do balanceamento de carga do proxy TCP:

  • Roteamento inteligente. O balanceador de carga pode encaminhar solicitações para locais de back-end em que houver capacidade. Por outro lado, um balanceador de carga L3/L4 precisa ser encaminhado para back-ends regionais sem considerar a capacidade. O uso do encaminhamento mais inteligente permite o aprovisionamento em N+1 ou N+2, em vez de x*N.

  • Patches de segurança: caso surjam vulnerabilidades na pilha do TCP, o Cloud Load Balancing aplicará os patches no balanceador de carga automaticamente para manter suas instâncias seguras.

  • Suporte para o balanceamento de carga do proxy TCP para as seguintes portas: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1883, 3389, 5222, 5432, 5671, 5672, 5900, 5901, 6379, 8085, 8099, 9092, 9200 e 9300.

Comportamento do balanceador de carga em níveis de serviço de rede

O balanceamento de carga do proxy TCP é um serviço global com nível Premium. É possível ter apenas um serviço de back-end e, no nível Premium, ter back-ends em várias regiões. O tráfego é alocado para back-ends da seguinte forma:

  1. Quando um cliente envia uma solicitação, o serviço de balanceamento de carga determina a origem aproximada da solicitação a partir do endereço IP de origem.
  2. O serviço de balanceamento de carga determina os locais dos back-ends pertencentes ao serviço de back-end, sua capacidade geral e seu uso geral atual.
  3. Se as instâncias de back-end mais próximas ao usuário tiverem capacidade disponível, a solicitação será encaminhada para o conjunto mais próximo de back-ends.
  4. As solicitações de entrada para a região determinada são distribuídas uniformemente em todas as instâncias de back-end disponíveis em tal região. No entanto, com cargas muito pequenas, a distribuição pode parecer irregular.
  5. Se não houver instâncias de back-end íntegras com capacidade disponível em uma determinada região, o balanceador de carga enviará a solicitação para a próxima região mais próxima com capacidade disponível.

Com o nível Standard, o balanceamento de carga de proxy TCP é um serviço regional. Todos os back-ends precisam estar localizados na região usada pelo endereço IP externo do balanceador de carga e pela regra de encaminhamento.

Componentes

A seguir, veja os componentes dos balanceadores de carga do proxy TCP.

Regras e endereços de encaminhamento

O tráfego é encaminhado pelas regras de encaminhamento por endereço IP, porta e protocolo, para uma configuração de balanceamento de carga composta de um proxy de destino e um ou mais serviços de back-end.

Cada regra de encaminhamento fornece um endereço IP que pode ser usado nos registros DNS para seu aplicativo. Não é necessário nenhum balanceamento de carga baseado no DNS. É possível reservar um endereço IP estático que possa ser usado ou permitir que o Cloud Load Balancing atribua um para você. Recomendamos a reserva de um endereço IP estático; caso contrário, será necessário atualizar seu registro DNS com o endereço IP temporário recém-atribuído sempre que uma regra de encaminhamento for excluída e uma nova for criada.

Proxies de destino

O balanceamento de carga do proxy TCP encerra as conexões TCP do cliente e cria novas conexões com os back-ends. Por padrão, o endereço IP do cliente original e as informações da porta não são preservados. É possível preservar essas informações usando o protocolo PROXY. As solicitações recebidas são encaminhadas diretamente para serviços de back-end pelos proxies de destino.

Serviços de back-end

O tráfego de entrada é direcionado pelos serviços de back-end a um ou mais back-ends anexados. Cada back-end é composto de um grupo de instâncias ou grupo de endpoint da rede e metadados da capacidade de exibição. A capacidade de exibição do back-end pode ser baseada em CPU ou solicitações por segundo (RPS, na sigla em inglês).

Os balanceadores de carga do proxy TCP têm um único recurso de serviço de back-end. As alterações no serviço de back-end não são instantâneas. Pode levar vários minutos para que as alterações sejam propagadas para o Google Front ends (GFEs).

Cada serviço de back-end especifica as verificações de integridade a serem executadas para os back-ends disponíveis.

Para garantir o mínimo possível de interrupções aos usuários, ative a diminuição das conexões nos serviços de back-end. Essas interrupções podem acontecer quando um back-end é encerrado, removido manualmente ou removido por um escalonador automático. Para saber mais sobre como usar a diminuição da conexão para minimizar as interrupções do serviço, consulte Ativar a diminuição da conexão.

Protocolo para os back-ends

Ao configurar um serviço de back-end para o balanceador de carga do proxy TCP, defina o protocolo que o serviço usará para se comunicar com os back-ends. É possível escolher SSL ou TCP. O balanceador de carga usa apenas o protocolo que você especifica e não tenta negociar uma conexão com o outro protocolo.

Regras de firewall

As instâncias de back-end precisam permitir conexões dos intervalos de verificação de integridade/GFE do balanceador de carga. Isso significa que você precisa criar uma regra de firewall que permita que o tráfego de 130.211.0.0/22 e 35.191.0.0/16 alcance suas instâncias ou endpoints de back-end. Esses intervalos de endereços IP são usados como origens para pacotes de verificação de integridade e para todos os pacotes com carga balanceada enviados aos back-ends.

As portas configuradas para essa regra de firewall precisam permitir o tráfego para instâncias ou endpoints de back-end:

  • É preciso permitir as portas usadas por cada regra de encaminhamento
  • É preciso permitir as portas usadas por cada verificação de integridade configurada para cada serviço de back-end

As regras de firewall são implementadas no nível da instância de VM, e não nos proxies do Google Front End (GFE). Não é possível usar regras de firewall do Google Cloud para impedir que o tráfego chegue ao balanceador de carga.

Para mais informações sobre sondagens de verificação de integridade e porque é necessário permitir tráfego de 130.211.0.0/22 e 35.191.0.0/16, consulte Intervalos de IP de sondagem e regras de firewall.

Endereços IP de origem

Os endereços IP de origem dos pacotes, conforme vistos por cada instância ou contêiner de máquina virtual (VM) de back-end, são um endereço IP destes intervalos:

  • 35.191.0.0/16
  • 130.211.0.0/22

O endereço IP de origem para o tráfego real com carga balanceada é o mesmo que o intervalo de IP da sondagem das verificações de integridade.

Os endereços IP de origem para o tráfego, conforme vistos pelos back-ends, não são o endereço IP externo do Google Cloud do balanceador de carga. Em outras palavras, há duas sessões HTTP, SSL ou TCP:

  • Sessão 1, do cliente original para o balanceador de carga (GFE):

    • Endereço IP de origem: o cliente original ou endereço IP externo se o cliente estiver usando NAT.
    • Endereço IP de destino: o endereço IP do seu balanceador de carga.
  • Sessão 2: do balanceador de carga (GFE) para a VM ou contêiner de back-end:

    • Endereço IP de origem: um endereço IP em um destes intervalos: 35.191.0.0/16 ou 130.211.0.0/22.

      Não é possível prever o endereço de origem real.

    • Endereço IP de destino: o endereço IP interno da VM ou contêiner de back-end na rede da nuvem privada virtual (VPC).

Modo de balanceamento

Ao adicionar um back-end ao serviço respectivo, você define um modo de balanceamento de carga.

Para o balanceamento de carga do proxy TCP, o modo de balanceamento pode ser CONNECTION ou UTILIZATION.

Se ele for CONNECTION, a carga será distribuída com base em quantas conexões simultâneas o back-end pode processar. Você também precisa especificar exatamente um dos seguintes parâmetros: maxConnections (exceto para grupos regionais de instâncias gerenciadas), maxConnectionsPerInstance ou maxConnectionsPerEndpoint.

Se o modo de balanceamento de carga for UTILIZATION, a carga será distribuída com base na utilização das instâncias em um grupo.

Para mais informações sobre como comparar os tipos de balanceador de carga e os modos compatíveis, consulte este link.

Afinidade da sessão

Afinidade da sessão envia todas as solicitações do mesmo cliente para o mesmo back-end, caso o back-end esteja íntegro e tenha capacidade.

O balanceamento de carga do proxy TCP oferece afinidade de IP do cliente, que encaminha todas as solicitações do mesmo endereço IP de cliente para o mesmo back-end.

Portas abertas

Os balanceadores de carga do proxy TCP são balanceadores de carga de proxy reverso. O balanceador de carga encerra as conexões de entrada e depois abre novas conexões do balanceador de carga para os back-ends. A funcionalidade de proxy reverso é fornecida pelo Google Front Ends (GFE).

Os GFEs têm várias portas abertas para compatibilidade com outros balanceadores de carga do Google Cloud e outros serviços do Google. Se você executar uma verificação de segurança ou de porta em relação ao endereço IP externo do balanceador de carga, terá a impressão de que outras portas estão abertas.

Isso não afeta os balanceadores de carga do proxy TCP. As regras de encaminhamento externas, que são usadas na definição de um balanceador de carga de proxy SSL, só podem se referir a um conjunto específico de portas. O tráfego com uma porta de destino TCP diferente não é encaminhado para o back-end do balanceador de carga. É possível verificar se o tráfego para portas adicionais não é processado ao tentar abrir uma sessão TCP para uma porta não autorizada. O GFE que manipula sua solicitação fecha a conexão com um pacote de redefinição de TCP (RST).

A seguir