Como configurar o balanceamento de carga HTTP(S)

Neste documento, você verá a primeira etapa da configuração de um balanceador de carga HTTP(S). Antes de começar, conheça os conceitos gerais do balanceamento de carga HTTP(S).

O balanceamento de carga HTTP(S) do Google Cloud Platform (GCP) propicia balanceamento global para solicitações HTTP(S) destinadas às suas instâncias.

O balanceamento de carga global requer o nível Premium dos níveis de serviço de rede.

É possível configurar regras de URL que direcionem alguns URLs a um conjunto de instâncias e outros URLs a outras instâncias. As solicitações são sempre direcionadas ao 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 por meio de IPv4 para seus back-ends.

É possível balancear a carga das solicitações HTTP com base na porta 80 ou 8080. É possível balancear a carga das solicitações HTTPS 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. Conheça 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 ativo para teste, os diagramas a seguir demonstraram três cenários diferentes usando o serviço de balanceamento de carga HTTP(S). Nesses cenários, há um contexto prático para o 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, você verá mais detalhes sobre como os balanceadores de carga são construídos e como eles funcionam.

Balanceamento de carga entre regiões

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

É possível usar um endereço IP global capaz de direcionar os usuários com base na proximidade de modo inteligente. 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 a eles, desde que as instâncias tenham capacidade suficiente. Se as instâncias mais próximas não tiverem capacidade suficiente, o balanceamento de carga entre regiões encaminhará automaticamente os usuários para a segunda região mais próxima.


Balanceamento de carga baseado em conteúdo

Representação do 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 entre instâncias diferentes de acordo com o URL HTTP(S) de entrada. Por exemplo, é possível configurar algumas instâncias para processar apenas seu conteúdo de vídeo e um outro conjunto para processar todo o resto. É possível configurar o balanceador de carga para direcionar o tráfego de example.com/video para os servidores de vídeo e o tráfego de example.com/ para os servidores padrão.

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


Como criar um balanceador de carga combinado

Representação do 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 trabalhar juntos usando vários serviços de back-end e várias regiões. É possível usar os cenários acima para personalizar a configuração de balanceamento de carga própria e atender às suas necessidades. O tutorial de balanceamento de carga HTTP(S) mostra como gerar uma configuração de balanceamento de carga com base em conteúdo e entre regiões.


Interfaces

É possível configurar e atualizar seu serviço de balanceamento de carga HTTP(S) 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 é usada com frequência para a realização de tarefas. Para uma visão geral completa da ferramenta, consulte o Guia da ferramenta gcloud. Você encontra 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.

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ê estiver usando uma imagem personalizada, será necessário configurar manualmente o firewall do sistema operacional. Isso é feito separadamente da regra de firewall do GCP, que precisa ser criada como parte da configuração de um balanceador de carga HTTP(S).
  • O balanceamento de carga não mantém instâncias em sincronização. É necessário configurar seus próprios mecanismos, como usar o Deployment Manager, para garantir que suas instâncias tenham configurações e dados consistentes.

A seguir