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 enfrentarem problemas de desempenho. O Cloud Load Balancing do Google foi criado com base em tecnologias confiáveis e de alto desempenho, como Maglev, Andromeda, Google Front Ends e Envoy, as mesmas tecnologias usadas nos próprios produtos do Google.

O Cloud Load Balancing oferece um portfólio abrangente de balanceadores de carga de aplicativos e redes. Use nossos balanceadores de carga globais de proxy para distribuir milhões de solicitações por segundo entre back-ends em várias regiões com a frota do Google Front End em mais de 80 locais distintos no mundo todo, tudo com um único endereço IP anycast. Implemente um forte controle jurídico com nossos balanceadores de carga de proxy regionais, mantendo seus back-ends e proxies em uma região de sua escolha sem se preocupar com a descarga de TLS/SSL. Use nossos balanceadores de carga de passagem para rotear rapidamente vários protocolos para back-ends com o alto desempenho do retorno direto do servidor (DSR, na sigla em inglês).

Visão geral do Cloud Load Balancing.
Visão geral do Cloud Load Balancing (clique para ampliar).

O Cloud Load Balancing oferece os seguintes recursos de balanceador de carga:

  • Endereço IP anycast único. Com o Cloud Load Balancing, um único endereço IP anycast é o front-end de todas as instâncias de back-end em várias regiões do mundo. Ele oferece balanceamento de carga entre regiões com failover automático multirregional, que redireciona o tráfego para os back-ends de failover quando os back-ends principais não estão íntegros. O Cloud Load Balancing reage instantaneamente a alterações de usuários, tráfego, rede, integridade do back-end e outras condições relacionadas.

  • Escalonamento automático sem interrupções. O Cloud Load Balancing pode ser escalonado de acordo com o aumento do tráfego e do número de usuários, inclusive para o gerenciamento fácil de grandes picos instantâneos e inesperados com o encaminhamento do tráfego para outras regiões do mundo que podem lidar com ele. O escalonamento automático não exige pré-aquecimento. Vá do zero à potência máxima em segundos.

  • Balanceamento de carga definido por software. O Cloud Load Balancing é um serviço totalmente gerenciado, distribuído e definido por software para todo seu tráfego. Como não se trata de uma solução baseada em dispositivos ou instâncias, você não ficará preso a uma infraestrutura física de balanceamento de carga nem enfrentará os desafios de alta disponibilidade, escala e gerenciamento inerentes aos balanceadores de carga baseados em instâncias.

  • Balanceamento de carga das camadas 4 e 7. Usar o balanceamento de carga baseado na camada 4 para direcionar o tráfego com base nos dados de protocolos de camada de rede e transporte, como TCP, UDP, ESP, GRE, ICMP e ICMPv6 . Use o balanceamento de carga com base na camada 7 para adicionar decisões de roteamento baseadas em atributos, como o cabeçalho HTTP e o identificador uniforme de recursos

  • Balanceamento de carga externo e interno. Use o balanceamento de carga externo quando os usuários acessarem seus aplicativos pela Internet. É possível usar o balanceamento de carga interno quando os clientes estão dentro do Google Cloud.

  • Balanceamento de carga global e regional. Distribua seus recursos com balanceamento de carga em uma ou várias regiões, para encerrar conexões próximas aos usuários e atender aos requisitos de alta disponibilidade.

  • Compatibilidade com recursos avançados. O Cloud Load Balancing é compatível com recursos como o balanceamento de carga por IPv6, Direcionamento de tráfego baseado em IP de origem, balanceamento de carga ponderado, WebSockets, cabeçalhos de solicitação definidos pelo usuário e encaminhamento de protocolo para endereço IP virtuais privados.

    Também inclui as seguintes integrações:

    • Integração com Cloud CDN para entrega de conteúdo em cache. O Cloud CDN é compatível com o balanceador de carga de aplicativo externo global e o balanceador de carga de aplicativo clássico.
    • Integração com o Google Cloud Armor para proteger sua infraestrutura contra ataques distribuídos de negação de serviço (DDoS) e outros ataques a aplicativos direcionados. A proteção DDoS sempre ativa está disponível para o balanceador de carga de aplicativo externo global, o balanceador de carga de aplicativo clássico, o balanceador de carga de rede de proxy externo e o balanceador de carga de rede de passagem externa. Além disso, o Google Cloud Armor é compatível com a proteção avançada contra DDoS de rede apenas para balanceadores de carga de rede de passagem externa. Para mais informações, consulte Configurar proteção avançada contra DDoS de rede.

Tipos de balanceadores de carga

O Cloud Load Balancing oferece dois tipos de balanceadores de carga: de aplicativo e de rede. Escolha um balanceador de carga de aplicativo quando precisar de um balanceador de carga da camada 7 para seus aplicativos com tráfego HTTP(S). Escolha um balanceador de carga de rede quando precisar de um balanceador de carga de camada 4 compatível com descarregamento de TLS (com um balanceador de carga de proxy) ou com protocolos IP, como UDP, ESP e ICMP com um balanceador de carga de passagem.

Balanceadores de carga de aplicativos

Os balanceadores de carga de aplicativo são baseados em proxy na camada 7 e permitem executar e escalonar os serviços em um endereço IP anycast. O balanceador de carga de aplicativo distribui o tráfego HTTP e HTTPS para back-ends hospedados em várias plataformas do Google Cloud, como o Compute Engine e o Google Kubernetes Engine (GKE), assim como back-ends externos fora Google Cloud.

Os balanceadores de carga do aplicativo podem ser implantados externamente ou internamente, dependendo se seu aplicativo é voltado para a Internet ou interno:

  • Balanceadores de carga de aplicativo externos são implementados como serviços gerenciados no Google Front Ends (GFEs) ou Envoy proxies. Os clientes podem se conectar a esses balanceadores de carga de qualquer lugar na Internet. Observe o seguinte:

    • Eles podem ser implantados nos seguintes modos: global, regional ou clássico.
      • Balanceadores de carga de aplicativo externos globais dão suporte a back-ends em várias regiões.
      • Os balanceadores de carga de aplicativo externos regionais dão suporte a back-ends apenas em uma única região.
      • Os balanceadores de carga de aplicativo clássicos são globais no nível Premium, mas podem ser configurados para serem efetivamente regionais no nível Standard.
    • Os balanceadores de carga de aplicativo usam o proxy Envoy de código aberto para ativar recursos avançados de gerenciamento de tráfego.
  • Os balanceadores de carga de aplicativo interno são criados na pilha de virtualização de rede Andromeda e no proxy Envoy de código aberto. Esse balanceador de carga fornece balanceamento de carga interno com base em proxy dos dados do aplicativo na camada 7. O balanceador de carga usa um endereço IP interno acessível apenas a clientes na mesma rede VPC ou a clientes conectados à sua rede VPC. Observações:

    • Eles podem ser implantados nos seguintes modos: regional ou entre regiões.
    • Os balanceadores de carga de aplicativo internos regionais dão suporte a back-ends apenas em uma única região.
    • Os balanceadores de carga de aplicativo internos entre regiões (pré-lançamento) dão suporte a back-ends em várias regiões e estão sempre acessíveis globalmente. Clientes de qualquer região do Google Cloud podem enviar tráfego para o balanceador de carga.

O diagrama a seguir mostra um exemplo de arquitetura do balanceador de carga de aplicativo.

Arquitetura do balanceador de carga de aplicativo.
Arquitetura do balanceador de carga de aplicativo (clique para ampliar).

Balanceadores de carga de rede

Os balanceadores de carga de rede são de camada 4 e podem lidar com tráfego TCP, UDP ou outro protocolo IP. Eles estão disponíveis como balanceadores de carga de proxy ou balanceadores de carga de passagem. Escolha um balanceador de carga de acordo com as necessidades do seu aplicativo e o tipo de tráfego que ele precisa processar. Escolha um balanceador de carga de rede proxy se quiser configurar um balanceador de carga de proxy reverso compatível com controles de tráfego avançados e back-ends no local e em outros ambientes de nuvem. Escolha um balanceador de carga de rede de passagem se quiser preservar o endereço IP de origem dos pacotes do cliente, preferir o retorno direto do servidor para as respostas ou gerenciar vários protocolos de IP, como TCP, UDP, ESP, GRE, ICM e ICMPv6.

Balanceadores de carga de rede proxy

Os balanceadores de carga de proxy reverso são de camada 4 e distribuem o tráfego TCP para instâncias de máquina virtual (VM, na sigla em inglês) na sua rede VPC do Google Cloud. O tráfego é encerrado na camada de balanceamento de carga e encaminhado para o back-end mais próximo usando TCP. Esses balanceadores de carga são implementados como serviços gerenciados nos GFEs.

Os balanceadores de carga de rede do proxy podem ser implantados externamente ou internamente, dependendo se o aplicativo é voltado para a Internet ou interno:

  • Balanceadores de carga de rede de proxy externo são balanceadores de carga de camada 4 que distribuem tráfego proveniente da Internet para back-ends na rede VPC do Google Cloud, no local ou em outros ambientes de nuvem.

    Eles podem ser implantados nos seguintes modos: global, regional ou clássico.

    • Os balanceadores de carga de rede de proxy externo global dão suporte a back-ends em várias regiões.
    • Os balanceadores de carga de rede de proxy externo regionais dão suporte a back-ends em uma única região.
    • Os balanceadores de carga de rede de proxy clássico são globais no nível Premium, mas podem ser configurados para serem efetivamente regionais no nível Standard.
  • Balanceadores de carga de rede de proxy interno são balanceadores de carga regionais de camada 4 baseados em proxy do Envoy que permitem executar e escalonar o tráfego do serviço TCP por trás de um IP interno que só pode ser acessado por clientes na mesma rede VPC ou em clientes conectados à sua rede VPC.

    Eles podem ser implantados em um dos seguintes modos: regional ou entre regiões.

    • Os balanceadores de carga de rede de proxy interno regional só dão suporte a back-ends em uma única região.
    • Os balanceadores de carga de rede de proxy internos entre regiões (pré-lançamento) dão suporte a back-ends em várias regiões e estão sempre acessíveis globalmente. Clientes de qualquer região do Google Cloud podem enviar tráfego para o balanceador de carga.

O diagrama a seguir mostra um exemplo de arquitetura do balanceador de carga de rede do proxy.

Arquitetura do balanceador de carga da rede proxy.
Arquitetura do balanceador de carga de rede do proxy (clique para ampliar).

Balanceadores de carga de rede de passagem

Os balanceadores de carga de rede de passagem são regionais e de camada 4. Eles distribuem o tráfego entre back-ends na mesma região do balanceador de carga. Eles são implementadas usando a rede virtual Andromeda e o Google Maggle.

Como o nome sugere, esses balanceadores de carga não são proxies. Os pacotes com balanceamento de carga são recebidos por VMs de back-end com os endereços IP de origem e destino do pacote e, se o protocolo for baseado em portas, as portas de origem e de destino inalteradas. As conexões com carga balanceada são encerradas nos back-ends. As respostas das VMs de back-end vão diretamente para os clientes, e não voltam pelo balanceador de carga. O termo do setor para isso é retorno direto do servidor (DSR, na sigla em inglês).

Esses balanceadores de carga são implantados de dois modos, dependendo se o balanceador de carga é voltado para a Internet ou interno:

  • Balanceadores de carga de rede de passagem externa são criados no Maglev. Os clientes podem se conectar a esses balanceadores de carga de qualquer lugar na Internet, independentemente dos níveis de serviço de rede. O balanceador de carga também pode receber tráfego de VMs do Google Cloud com endereços IP externos ou de VMs do Google Cloud que tenham acesso à Internet por meio do Cloud NAT ou NAT baseado em instância.

    Os back-ends para balanceadores de carga de rede de passagem externa podem ser implantados usando um serviço de back-end ou um pool de destino. Para novas implantações, recomendamos o uso de serviços de back-end.

  • Balanceadores de carga de rede de passagem interna são criados na pilha de virtualização de rede Andromeda. Um balanceador de carga de rede de passagem interna permite balancear a carga do tráfego TCP/UDP por trás de um endereço IP de balanceamento de carga interno acessível apenas a sistemas na mesma rede VPC ou em sistemas conectados à rede VPC. Esse balanceador de carga só pode ser configurado no nível Premium.

O diagrama a seguir mostra um exemplo de arquitetura de balanceador de carga de rede de passagem.

Arquitetura de balanceador de carga de rede de passagem.
Arquitetura do balanceador de carga de rede de passagem (clique para ampliar).

Escolher um balanceador de carga

Para determinar qual produto do Cloud Load Balancing deve ser usado, primeiro você precisa determinar que tipo de tráfego seus balanceadores de carga devem gerenciar. Como regra geral, escolha um balanceador de carga de aplicativo quando precisar de um conjunto de recursos flexível para aplicativos com tráfego HTTP(S). Escolha um balanceador de carga de rede quando precisar de descarregamento de TLS em escala ou com suporte para UDP ou se precisar expor endereços IP do cliente aos seus aplicativos.

É possível restringir ainda mais suas opções, dependendo dos requisitos do aplicativo: se ele é externo (voltado à Internet) ou interno, se você precisa de back-ends implantados globalmente ou regionalmente e se você precisa do Nível de serviço de rede Padrão ou Premium.

O diagrama a seguir mostra todos os modos de implantação disponíveis para o Cloud Load Balancing. Para mais detalhes, consulte Escolher um balanceador de carga.

Escolha um balanceador de carga.
Escolha um balanceador de carga (clique para ampliar).

1 Os balanceadores de carga de aplicativo externos globais são compatíveis com dois modos de operação: o global e o clássico.

2 Os balanceadores de carga de rede de proxy externo global são compatíveis com dois modos de operação: global (Pré-lançamento) e clássico.

3 Os balanceadores de carga de rede de passagem preservam os endereços IP de origem do cliente. Os balanceadores de carga de rede de passagem também são compatíveis com protocolos adicionais como UDP, ESP e ICMP.

Resumo dos tipos de balanceadores de carga do Google Cloud

A tabela a seguir apresenta informações específicas sobre cada balanceador de carga.

Balanceador de carga Modo de implantação Tipo de tráfego Nível de serviço da rede Esquema de balanceamento de carga
Balanceadores de carga de aplicativos Global e externo HTTP ou HTTPS Nível Premium EXTERNAL_MANAGED
Regional externo HTTP ou HTTPS Nível Premium ou Standard EXTERNAL_MANAGED
Clássico HTTP ou HTTPS

Global no nível Premium.

Regional no nível Standard

EXTERNAL
Regional interno HTTP ou HTTPS Nível Premium INTERNAL_MANAGED
Inter-regional interno HTTP ou HTTPS Nível Premium INTERNAL_MANAGED
Balanceadores de carga de rede proxy Global e externo TCP com descarga de SSL opcional Nível Premium EXTERNAL_MANAGED
Regional externo TCP Nível Premium ou Standard EXTERNAL_MANAGED
Clássico TCP com descarga de SSL opcional

Global no nível Premium.

Regional no nível Standard

EXTERNAL
Regional interno TCP sem descarregamento de SSL Nível Premium INTERNAL_MANAGED
Inter-regional interno TCP sem descarregamento de SSL Nível Premium INTERNAL_MANAGED
Balanceadores de carga de rede de passagem

Externo

Sempre regional

TCP, UDP, ESP, GRE, ICMP e ICMPv6 Nível Premium ou Standard EXTERNAL

Interno

Sempre regional

TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH e GRE Nível Premium INTERNAL

O esquema de balanceamento de carga é um atributo na regra de encaminhamento e no serviço de back-end de um balanceador de carga e indica se o balanceador de carga pode ser usado para tráfego interno ou externo.

O termo *_MANAGED no esquema de balanceamento de carga indica que o balanceador de carga é implementado como um serviço gerenciado no Google Front Ends (GFEs) ou no código aberto Proxy Envoy. Em um esquema de balanceamento de carga *_MANAGED, as solicitações são roteadas para o GFE ou o proxy Envoy.

Interfaces

É possível configurar e atualizar os balanceadores de carga usando as seguintes interfaces:

  • A Google Cloud CLI: uma ferramenta de linha de comando incluída na Google Cloud CLI; a documentação chama essa ferramenta com frequência para realizar tarefas. Para uma visão geral completa da ferramenta, consulte o Guia da CLI 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 flag --help:

    gcloud compute http-health-checks create --help
    
    
  • O console do Google Cloud: tarefas de balanceamento de carga podem ser realizadas usando o console do Google Cloud.

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

  • Terraform: é possível provisionar, atualizar e excluir a infraestrutura do balanceamento de carga do Google Cloud usando uma ferramenta de infraestrutura como código de código aberto como o Terraform.

A seguir