Visão geral do Cloud Load Balancing

Um balanceador de carga distribui o tráfego de usuários em várias instâncias de seus aplicativos. Ao distribuir a carga, o balanceamento de carga reduz o risco de seus aplicativos ficarem excessivamente sobrecarregados, lentos ou não funcionais.

Visão geral simples do balanceamento de carga (clique para ampliar)
Visão geral simples do balanceamento de carga (clique para ampliar)

Sobre o Cloud Load Balancing

Ao usar o Cloud Load Balancing, é possível veicular o conteúdo o mais próximo possível de seus usuários em um sistema que possa responder a mais de um milhão de consultas por segundo.

O Cloud Load Balancing é um serviço gerenciado, totalmente distribuído e definido por software. Ele não é baseado em hardware, então você não precisa gerenciar uma infraestrutura de balanceamento físico de carga.

O Google Cloud oferece os seguintes recursos de balanceamento de carga:

  • Único endereço IP para servir como front-end
  • Autoescalamento inteligente automático dos seus back-ends
  • Balanceamento de carga externo para quando os usuários acessarem seus aplicativos da Internet
  • Balanceamento de carga interno para quando seus clientes estiverem no Google Cloud
  • Balanceamento de carga regional para quando seus aplicativos estiverem disponíveis em uma única região
  • Balanceamento de carga global para quando seus aplicativos estiverem disponíveis em todo o mundo
  • Balanceamento de carga de passagem (consulte também retorno direto do servidor (DSR) ou direcionamento direto)
  • Balanceamento de carga baseado em proxy (como uma alternativa para o repasse)
  • Balanceamento de carga com base em 4 camadas para direcionar tráfego baseado em dados de protocolos de camada de transporte e rede, como endereço IP e porta TCP ou UDP
  • Balanceamento de carga com base em 7 camadas para adicionar decisões de roteamento baseadas em conteúdo originado de atributos, como o cabeçalho HTTP e o identificador uniforme de recursos
  • Integração com Cloud CDN para entrega de conteúdo em cache

Para ver uma lista mais detalhada de recursos, consulte Recursos do balanceador de carga.

Tipos de Cloud Load Balancing

A tabela a seguir resume as características de cada balanceador de carga do Google Cloud, incluindo se o balanceador de carga usa um endereço IP interno ou externo, se o balanceador de carga é regional ou global e os tipos de tráfego e níveis de serviço de rede compatíveis.

Interno ou externo Regional ou global Níveis de rede compatíveis Proxy ou passagem Tipo de tráfego Tipo de balanceador de carga
Interno Regional Somente no plano Premium Passagem TCP ou UDP TCP/UDP interno
Regional Somente no plano Premium Proxy HTTP ou HTTPS HTTP(S) interno
Externo Regional Premium ou padrão Passagem TCP ou UDP Rede TCP/UDP
Global no nível Premium

Efetivamente regional1 no Nível Standard
Premium ou padrão Proxy TCP Proxy TCP
Premium ou padrão Proxy SSL Proxy SSL
Premium ou padrão Proxy HTTP ou HTTPS HTTP(S) externo

1Efetivamente regional significa que, enquanto o serviço de back-end é global, se você escolher o nível Padrão, a regra de encaminhamento externa e o endereço IP externo precisam ser regionais e os grupos de instâncias de back-end ou os grupos de endpoints da rede (NEGs) vinculados ao serviço de back-end global precisam estar na mesma região da regra de encaminhamento e endereço IP. Para mais informações, consulte Configuração do nível Padrão para balanceamento de carga HTTP(S), Balanceamento de carga do proxy TCP e Balanceamento de carga do proxy SSL.

Balanceamento de carga global ou regional

Use o balanceamento de carga global quando seus back-ends estiverem distribuídos em várias regiões, seus usuários precisarem acessar os mesmos aplicativos e conteúdo e você quiser fornecer acesso usando um único endereço IP anycast. O balanceamento de carga global também pode encerrar o IPv6.

Use o balanceamento de carga regional quando seus back-ends estiverem em uma região e você só precisar do encerramento do IPv4.

Balanceamento de carga externo ou interno

Os balanceadores de carga do Google Cloud podem ser divididos em balanceadores de carga externos e internos:

  • Balanceadores de carga externos distribuem o tráfego proveniente da Internet para sua rede de nuvem privada virtual (VPC, na sigla em inglês) do Google Cloud. O balanceamento de carga global exige que você use o nível Premium dos níveis de serviço de rede. Para o balanceamento de carga regional, use o nível Standard.

  • Balanceadores de carga internos distribuem tráfego para instâncias no Google Cloud.

Tipos de balanceamento de carga externo e interno (clique para ampliar)
Tipos de balanceamento de carga externo e interno (clique para ampliar)

No diagrama a seguir, veja um caso de uso comum: como usar o balanceamento de carga externo e interno juntos. Na ilustração, o tráfego de usuários em São Francisco, Iowa e Singapura é direcionado para um balanceador de carga externo, que distribui esse tráfego para diferentes regiões em uma rede do Google Cloud. Em seguida, um balanceador de carga interno distribui o tráfego entre as zonas us-central-1a e us-central-1b.

Como os balanceamentos de carga externo e interno funcionam juntos (clique para ampliar)
Como os balanceamentos de carga externo e interno funcionam juntos (clique para ampliar)

Tipo de tráfego

O tipo de tráfego que você precisa que seu balanceador de carga manipule é outro fator para determinar qual balanceador de carga precisa ser usado:

  • Para tráfego HTTP e HTTPS, use:
    • Balanceamento de carga HTTP(S) externo
    • Balanceamento de carga HTTP(S) interno
  • Para tráfego TCP, use:
    • Balanceamento de carga de proxy TCP
    • Balanceamento de carga da Rede
    • Balanceamento de carga TCP/UDP interno
  • Para tráfego UDP, use:
    • Network Load Balancing
    • Balanceamento de carga TCP/UDP interno

Região de back-end e rede

A tabela a seguir resume o suporte para back-ends residentes em diferentes redes VPC. A tabela também fornece informações sobre suporte a balanceamento de carga de vários NICs.

Tipo de balanceador de carga Região de back-end e rede Observações do Multi-NIC
Balanceamento de carga TCP/UDP interno Todos os back-ends precisam estar na mesma rede VPC e na mesma região do serviço de back-end. O serviço de back-end também precisa estar na mesma região e rede VPC que a regra de encaminhamento. Ao usar vários balanceadores de carga, ele pode carregar o saldo de vários NICs no mesmo back-end.
Balanceamento de carga HTTP(S) interno Todos os back-ends precisam estar na mesma rede VPC e na mesma região do serviço de back-end. O serviço de back-end também precisa estar na mesma região e rede VPC que a regra de encaminhamento. A VM de back-end nic0 precisa estar na mesma rede e região usadas pela regra de encaminhamento.
Balanceamento de carga HTTP(S), balanceamento de carga de proxy SSL, balanceamento de carga de proxy TCP No nível Premium: os back-ends podem estar em qualquer região e qualquer rede VPC.

No nível Padrão: os back-ends precisam estar na mesma região que a regra de encaminhamento, mas podem estar em qualquer rede VPC.
O balanceador de carga envia tráfego somente para a primeira interface de rede (nic0), a rede VPC em que nic0 está.

Regras de firewall

A tabela a seguir resume as regras mínimas de firewall necessárias para o acesso do balanceador de carga.

Tipo de balanceador de carga Regras de firewall de permissão de entrada mínima obrigatória Visão geral Exemplo
Balanceamento de carga HTTP(S) externo
  • Intervalos de verificação de integridade
Visão geral Exemplo
Balanceamento de carga HTTP(S) interno
  • Intervalos de verificação de integridade
  • Sub-rede somente proxy
Visão geral Exemplo
Balanceamento de carga TCP/UDP interno
  • Intervalos de verificação de integridade
  • Endereços IP de origem internos de clientes
Visão geral Exemplo
Balanceamento de carga de proxy SSL
  • Intervalos de verificação de integridade
Visão geral Exemplo
Balanceamento de carga de proxy TCP
  • Intervalos de verificação de integridade
Visão geral Exemplo
Network Load Balancing
  • Intervalos de verificação de integridade
  • Endereços IP de origem externos de clientes na Internet
    (por exemplo, 0.0.0.0/0 ou um conjunto específico de intervalos)
Visão geral Exemplo

Proteções contra DDoS para balanceadores de carga externos

O Google Cloud oferece diferentes proteções de DDos, dependendo do tipo de balanceador de carga.

Balanceadores de carga externos baseados em proxy

Todos os balanceadores de carga externos baseados em proxy do Google Cloud herdam automaticamente a proteção DDoS dos Google Front Ends (GFEs), que fazem parte da infraestrutura de produção do Google.

Além do DDoS automático fornecido pelos GFEs, é possível configurar o Google Cloud Armor para balanceadores de carga HTTP(S) externos.

Balanceadores de carga externos de passagem

O único balanceador de carga externo de passagem é o balanceador de carga de rede. Esses balanceadores de carga são implementados usando a mesma infraestrutura de roteamento do Google usada para implementar endereços IP externos para VMs do Compute Engine. Para o tráfego de entrada para um balanceador de carga de rede, o Google Cloud limita os pacotes recebidos por VM.

Para mais informações, consulte Largura de banda de entrada para um endereço IP externo.

A tecnologia subjacente dos balanceadores de carga do Google Cloud

Esta seção fornece mais informações sobre cada tipo de balanceador de carga do Google Cloud, incluindo links para a documentação da visão geral para entender melhor.

Tipos de balanceamento de carga externos e internos e a tecnologia subjacente (clique para ampliar)
Tipos de balanceamento de carga externos e internos e a tecnologia subjacente (clique para ampliar)
  • Google front-ends (GFEs) são sistemas distribuídos definidos por software que estão localizados em pontos de presença (POPs, na sigla em inglês) do Google e fazem balanceamento de carga global em conjunto com outros sistemas e planos de controle.
  • Andrômeda é a pilha de virtualização de rede definida por software do Google Cloud.
  • Maglev é um sistema distribuído para balanceamento de carga de rede.
  • O proxy Envoy é um proxy de borda e serviço de código aberto projetado para aplicativos nativos da nuvem.

Balanceamento de carga HTTP(S) interno

O balanceamento de carga de HTTP(S) interno é integrado à pilha de virtualização de rede Andromeda e é um serviço gerenciado baseado no proxy Envoy de código aberto. Esse balanceador de carga fornece balanceamento de carga com base em proxy dos dados do aplicativo da camada 7. Você especifica como o tráfego é roteado com mapas de URL. O balanceador de carga usa um endereço IP interno que atua como o front-end dos back-ends.

Balanceamento de carga HTTP(S) externo

O balanceamento de carga de HTTP(S) é implementado nos GFEs. Os GFEs são distribuídos globalmente e funcionam em conjunto usando a rede global e o plano de controle do Google. No nível Premium, os GFEs oferecem balanceamento de carga entre regiões, direcionando o tráfego para o back-end saudável mais próximo que tem capacidade e encerrando o tráfego HTTP(S) o mais próximo possível de seus usuários.

Balanceamento de carga TCP/UDP interno

Balanceamento de carga TCP/UDP interno é criado na pilha de virtualização de rede Andromeda. O balanceamento de carga TCP/UDP interno permite que você faça o balanceamento de carga de tráfego TCP/UDP atrás de um endereço IP de balanceamento de carga interno acessível somente às instâncias de máquina virtual (VM, na sigla em inglês) interna. Usando o balanceamento de carga TCP/UDP interno, um endereço IP de balanceamento de carga interno é configurado para atuar como o front-end para suas instâncias internas de back-end. Você só usa endereços IP internos para seu serviço de balanceamento de carga. De modo geral, a configuração fica mais simples.

O balanceamento de carga TCP/UDP interno é compatível com grupos de instâncias gerenciadas regionais para que você possa fazer escalonamento automático em uma região, protegendo seu serviço de falhas de zona.

Balanceamento de carga de rede TCP/UDP externa

O balanceamento de carga de rede foi desenvolvido com base no Maglev. Esse balanceador de carga permite que você balanceie a carga do tráfego nos seus sistemas com base nos dados do protocolo IP, incluindo endereço, porta e tipo de protocolo. Trata-se de um sistema de balanceamento de carga regional e sem representação. Use o balanceamento de carga de rede para o tráfego UDP e para TCP e SSL em portas que não são compatíveis com o balanceador de carga de proxy SSL e de balanceamento de proxy TCP. Um balanceador de carga de rede é um balanceador de passagem que não representa conexões de clientes.

Balanceamento de carga de proxy SSL

O balanceamento de carga do proxy SSL é implementado nos GFEs que são distribuídos globalmente. Se você escolher o nível Premium dos níveis de serviço de rede, um balanceador de carga de proxy SSL será global. No nível Premium, é possível implantar back-ends em várias regiões, e o balanceador de carga direciona automaticamente o tráfego do usuário para a região que tenha capacidade e seja mais próxima do usuário. Se você escolher o nível Standard, um balanceador de carga de proxy SSL só pode direcionar tráfego entre back-ends em uma única região.

Balanceamento de carga de proxy TCP

O balanceamento de carga do proxy TCP é implementado em GFEs distribuídos globalmente. Se você escolher o nível Premium dos níveis de serviço de rede, um balanceador de carga de proxy TCP será global. No nível Premium, é possível implantar back-ends em várias regiões, e o balanceador de carga direciona automaticamente o tráfego do usuário para a região que tenha capacidade e seja mais próxima do usuário. Se você escolher o nível Standard, um balanceador de carga de proxy TCP só poderá direcionar o tráfego entre os back-ends em uma única região.

Interfaces

É possível configurar e atualizar os balanceadores de carga por meio das seguintes interfaces:

  • Ferramenta de linha de comando gcloud: incluída no SDK do Cloud. Na documentação do balanceamento de carga HTTP(S), essa ferramenta é frequentemente usada para a realização de tarefas. Para uma visão geral completa da ferramenta, consulte o Guia da ferramenta gcloud. Encontre comandos relacionados ao balanceamento de carga no grupo de comandos gcloud compute.

    Também é possível acessar a ajuda detalhada de qualquer comando gcloud usando a sinalização --help:

    gcloud compute http-health-checks create --help
    
  • Console do Google Cloud: é possível realizar tarefas de balanceamento de carga por meio do Console do Google Cloud.

  • API REST: é possível realizar todas as tarefas de balanceamento de carga usando a API Cloud Load Balancing. Os documentos de referência da API descrevem os recursos e métodos disponíveis para você.

A seguir