Visão geral da configuração do balanceamento de carga HTTP(S)

Este documento é a primeira etapa na configuração de um balanceador de carga HTTP(S). Antes de começar, familiarize-se com os conceitos gerais de balanceamento de carga HTTP(S).

Ele fornece balanceamento de carga global para solicitações HTTP(S) destinadas às suas instâncias.

O balanceamento de carga global exige que você use o nível Premium dos Níveis de serviço de rede.

É possível configurar regras de URL que direcionem alguns URLs para um conjunto de instâncias e outros URLs para outras instâncias. As solicitações são sempre direcionadas para o grupo de instâncias mais próximo do usuário, desde que o grupo tenha capacidade suficiente e seja apropriado para a solicitação. Se o grupo mais próximo não tiver capacidade suficiente, a solicitação será enviada ao grupo mais próximo que tiver capacidade.

O balanceamento de carga HTTP(S) é compatível com 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.

O balanceamento de carga das solicitações HTTP pode ser feito com base na porta 80 ou 8080. O balanceamento de carga das solicitações HTTPS pode ser feito na porta 443.

O balanceador de carga atua como uma camada de conversão de HTTP/2 para HTTP/1.1. Isso significa que os servidores da Web sempre consultam e respondem às solicitações HTTP/1.1, mas as solicitações do navegador podem ser HTTP/1.0, HTTP/1.1 ou HTTP/2. O push do servidor HTTP/2 não é compatível.

Antes de começar

O balanceamento de carga HTTP(S) usa grupos de instâncias para organizar as instâncias. Familiarize-se com os grupos de instâncias antes de usar o balanceamento de carga.

Exemplo de configuração

Se você quiser entrar em ação e criar um balanceador de carga funcional para fazer testes, consulte estes links para saber como configurar um balanceador de carga externo e simples que seja HTTP ou HTTPS.

Para ver um exemplo mais complexo que usa balanceamento de carga (HTTPS) com base em conteúdo e entre regiões, consulte este link.

Os diagramas a seguir demonstram três cenários diferentes com o balanceamento de carga HTTP(S). Nesses cenários, há um contexto prático para balanceamento de carga HTTP(S) e demonstrações de como é possível configurar o balanceamento de carga de acordo com suas necessidades específicas.

No restante desta página, apresentamos mais detalhes sobre como os balanceadores de carga são construídos e como eles funcionam.

Balanceamento de carga entre regiões

Representação de balanceamento de carga entre regiões

É possível usar um endereço IP global que pode encaminhar usuários de forma inteligente com base em proximidade. Por exemplo, se você configurar instâncias na América do Norte, na Europa e na Ásia, usuários em todo o mundo serão automaticamente enviados aos back-ends mais próximos, supondo que aquelas instâncias tenham capacidade suficiente. Se as instâncias mais próximas não têm capacidade suficiente, o balanceamento de carga entre regiões encaminha automaticamente os usuários para a região mais próxima seguinte.


Balanceamento de carga baseado em conteúdo

Representação de balanceamento de carga baseado em conteúdo

O balanceamento de carga baseado em conteúdo ou com reconhecimento de conteúdo usa balanceamento de carga HTTP(S) para distribuir o tráfego para instâncias diferentes de acordo com o URL HTTP(S) de entrada. Por exemplo, configure algumas instâncias para processar seu conteúdo de vídeo e outro conjunto para processar o restante. Configure o balanceador de carga para direcionar o tráfego para example.com/video aos servidores de vídeo e example.com/ aos servidores padrão.

Também é possível usar o balanceamento de carga HTTP(S) com buckets do Cloud Storage. Depois de configurar o balanceador de carga, é possível adicionar buckets do Cloud Storage a ele.


Como criar um balanceador de carga combinado

Representação de balanceamento de carga baseado em conteúdo e entre regiões

O balanceamento de carga baseado em conteúdo e o balanceamento de carga entre regiões podem funcionar juntos usando vários serviços de back-end e várias regiões. É possível criar usando os cenários acima para definir uma configuração de balanceamento de carga própria que satisfaça suas necessidades.


Interfaces

Seu serviço de balanceamento de carga HTTP(S) pode ser configurado e atualizado 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ê.

Observações e restrições

  • O balanceamento de carga HTTP(S) é compatível com a resposta HTTP/1.1 100 Continue.
  • Se as instâncias de balanceamento de carga estiverem executando uma imagem pública do sistema operacional fornecida pelo Google Cloud Platform, as regras de firewall no sistema operacional serão configuradas automaticamente para permitir o tráfego com carga balanceada. Se você usar uma imagem personalizada, será preciso configurar manualmente o firewall do sistema operacional. Isso é feito separadamente da regra de firewall do GCP, que é preciso criar como parte da configuração de um balanceador de carga HTTP(S).
  • O balanceamento de carga não mantém as instâncias em sincronização. É preciso configurar seus próprios mecanismos, como usar o Deployment Manager, para garantir que suas instâncias tenham configurações e dados consistentes.

A seguir