Este guia demonstra como criar um Google Cloud balanceador de carga HTTPS que:
- Seleciona serviços de back-end com base nos caminhos de URL do pedido.
- Encaminha pedidos para back-ends próximos dos clientes (balanceamento de carga multirregião).
Antes de começar, certifique-se de que conhece os conceitos do External Application Load Balancer.
Para um exemplo simplificado, consulte o artigo Configurar um Application Load Balancer externo com um back-end do Compute Engine. Para o encaminhamento avançado, como reescritas e redirecionamentos HTTP, consulte a gestão de tráfego para balanceadores de carga de aplicações externos.
Vista geral
Este guia fornece instruções para criar um balanceador de carga que direciona o tráfego com base no caminho no URL do pedido e equilibra o tráfego em várias regiões. Cria um total de oito instâncias do Compute Engine nas regiões dos EUA (na zona us-central1-b) e da UE (na zona eu-west1-b). Em seguida, cria um balanceador de carga que encaminha o tráfego para estas instâncias.
Depois de concluir as instruções, o equilibrador de carga é configurado da seguinte forma:
- O tráfego que contém um caminho de URL que começa com
/video
é encaminhado para um serviço de back-end. - O tráfego com um caminho de URL que não corresponda a este padrão é encaminhado para outro serviço de back-end.
Neste documento de instruções, cria a configuração ilustrada no diagrama seguinte:
A sequência de eventos no diagrama é:
- Um cliente acede ao URL
https://www.example.com/video/concert
, enviando um pedido de conteúdo para o endereço IP externo definido na regra de encaminhamento. O pedido pode usar IPv4 ou IPv6. Existem regras de encaminhamento para ambos os protocolos. - Uma regra de encaminhamento direciona o pedido para o proxy HTTPS de destino.
- O proxy de destino usa as regras definidas no mapa de URLs para determinar que serviço de back-end recebe o pedido. É enviado um pedido que contém
/video
, comohttps://www.example.com/video/concert
, paravideo-backend-service
. Qualquer outro caminho de URL é enviado para o serviço predefinido,web-backend-service
. - O balanceador de carga determina qual dos grupos de instâncias do serviço de back-end deve atender ao pedido, com base no respetivo carregamento e proximidade do cliente, e direciona o pedido para uma instância nesse grupo.
- A instância publica o conteúdo pedido por cada utilizador. As instâncias
video
publicam conteúdo de vídeo, enquanto as instânciaswww
publicam todo o outro conteúdo.
Neste exemplo, o balanceador de carga aceita pedidos HTTPS de clientes e encaminha estes pedidos como HTTP para os back-ends. Também pode configurar um balanceador de carga para aceitar pedidos HTTP, bem como para usar HTTPS ao encaminhar pedidos para back-ends.
Antes de começar
Estas instruções requerem um projeto. Se ainda não tiver um projeto, configure um agora. Estas instruções explicam como criar uma rede da nuvem virtual privada (VPC) no modo personalizado. Também tem de configurar regras de firewall personalizadas para permitir que o tráfego alcance as instâncias.
Se preferir trabalhar a partir da linha de comandos, instale a gcloud
ferramenta de linha de comandos. Consulte a vista geral do gcloud para ver informações conceptuais e de instalação
acerca da ferramenta.
Autorizações
Para concluir os passos neste guia, tem de ter autorização para criar instâncias do Compute Engine num projeto. Tem de ter a função de proprietário ou editor do projeto, ou ter as seguintes funções IAM do Compute Engine:
Tarefa | Função necessária |
---|---|
Crie instâncias | Administrador de instâncias do Compute |
Adicione e remova regras de firewall | Administrador de segurança |
Crie componentes do balanceador de carga | Administrador da rede |
Crie um projeto (opcional) | Project Creator |
Para mais informações, consulte os seguintes guias:
Configuração
Opcional: criar um novo projeto
Recomendamos que os utilizadores com a autorização resourcemanager.projects.create
criem um novo projeto antes de seguirem o resto destas instruções. Isto simplifica a limpeza no final do guia.
Configurar uma rede e sub-redes
Neste exemplo, use a seguinte rede VPC, regiões e sub-redes:
Rede: a rede é uma rede VPC no modo personalizado denominada
lb-network
.Sub-redes em duas regiões diferentes:
us-subnet
usa10.1.10.0/24
para o seu intervalo de IP principal e está localizado na regiãous-central1
.eu-subnet
usa10.1.11.0/24
para o seu intervalo de IP principal e está localizado na regiãoeurope-west1
.
Para criar a rede e a sub-rede de exemplo, siga estes passos:
Consola
Na Google Cloud consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
Introduza um Nome de
lb-network
.Na secção Sub-redes, crie a primeira sub-rede:
- Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).
- Na secção Nova sub-rede, introduza as seguintes informações:
- Nome:
us-subnet
- Região:
us-central1
- Intervalo de endereços IP:
10.1.10.0/24
- Clique em Concluído.
- Nome:
Ainda na secção Sub-redes, clique em Adicionar sub-rede e crie a segunda sub-rede:
- Na secção Nova sub-rede, introduza as seguintes informações:
- Nome:
eu-subnet
- Região:
europe-west1
- Intervalo de endereços IP:
10.1.11.0/24
- Clique em Concluído.
- Nome:
- Na secção Nova sub-rede, introduza as seguintes informações:
Clique em Criar.
gcloud
Crie a rede VPC personalizada:
gcloud compute networks create lb-network --subnet-mode=custom
Crie o
us-subnet
:gcloud compute networks subnets create us-subnet \ --network=lb-network \ --range=10.1.10.0/24 \ --region=us-central1
Crie o
eu-subnet
:gcloud compute networks subnets create eu-subnet \ --network=lb-network \ --range=10.1.11.0/24 \ --region=europe-west1
Configurar regras de firewall
A regra default deny ingress bloqueia o tráfego de entrada para as instâncias de back-end, incluindo o tráfego do balanceador de carga e Google Cloud os sistemas de verificação de funcionamento. Tem de criar novas regras de firewall para substituir a regra predefinida e permitir que o tráfego alcance as suas instâncias.
Neste exemplo, cria as seguintes regras de firewall:
fw-allow-ssh
: Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite a conetividade SSH de entrada na porta TCP 22 a partir de qualquer endereço. Pode escolher um intervalo de IPs de origem mais restritivo para esta regra. Por exemplo, pode especificar apenas os intervalos de IPs do sistema a partir do qual vai iniciar sessões SSH. Este exemplo usa a etiqueta de destinoallow-ssh
para identificar as VMs de back-end às quais deve aplicar-se.fw-allow-health-check-and-proxy
: uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite o tráfego do balanceador de carga e dos sistemas de verificação de funcionamento (130.211.0.0/22
e35.191.0.0/16
). Este exemplo usa a etiqueta de destinoallow-health-check
para identificar as VMs de back-end às quais deve ser aplicada.Google Cloud
Consola
Na Google Cloud consola, aceda à página Políticas de firewall.
Clique em Criar regra de firewall para criar a primeira regra de firewall:
- Introduza um Nome de
fw-allow-ssh
. - Em Rede, selecione
lb-network
. - Em Segmentações, selecione Etiquetas de segmentação especificadas.
- Preencha o campo Etiquetas alvo com
allow-ssh
. - Defina o Filtro de origem como Intervalos IPv4.
- Defina Intervalos de IPv4 de origem como
0.0.0.0/0
. - Em Protocolos e portas, selecione Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e introduza
22
para o número da porta. - Clique em Criar.
- Introduza um Nome de
Clique em Criar regra de firewall para criar a segunda regra de firewall:
- Introduza um Nome de
fw-allow-health-check-and-proxy
. - Em Rede, selecione
lb-network
. - Em Segmentações, selecione Etiquetas de segmentação especificadas.
- Preencha o campo Etiquetas alvo com
allow-health-check
. - Defina o Filtro de origem como Intervalos IPv4.
- Defina os Intervalos IPv4 de origem como
130.211.0.0/22
e35.191.0.0/16
. - Em Protocolos e portas, selecione Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e introduza
80,443
para os números das portas. - Clique em Criar.
- Introduza um Nome de
gcloud
Crie a regra de firewall
fw-allow-ssh
para permitir a conetividade SSH a VMs com a etiqueta de redeallow-ssh
. Quando omitesource-ranges
, Google Cloud interpreta a regra como qualquer origem.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Crie a regra
fw-allow-health-check-and-proxy
para permitir que o balanceador de carga e as Google Cloud verificações de funcionamento comuniquem com as instâncias de back-end na porta TCP80
e443
:gcloud compute firewall-rules create fw-allow-health-check-and-proxy \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80,tcp:443
Criar instâncias
Para configurar um balanceador de carga com um back-end do Compute Engine, as VMs têm de estar em grupos de instâncias. Este guia descreve como criar um grupo de instâncias gerido com VMs Linux que têm o Apache em execução.
O grupo de instâncias gerido fornece VMs que executam os servidores de back-end de um balanceador de carga HTTPS externo. Para fins de demonstração, os back-ends servem os seus próprios nomes de anfitriões.
Neste exemplo, cria oito instâncias de máquinas virtuais (VMs): quatro para publicar conteúdo de vídeo e quatro para publicar todo o outro conteúdo. Usa um script de arranque para instalar o software do servidor Web Apache com uma página inicial única para cada instância. Tenha em atenção que pode usar qualquer servidor Web nas suas VMs. O Apache é instalado neste exemplo por conveniência.
Consola
Crie um modelo de instância.
Na Google Cloud consola, aceda à página Modelos de instâncias.
- Clique em Criar modelo de instância.
- Em Nome, introduza
video-us-template
. - Certifique-se de que o Disco de arranque está definido para uma imagem Debian, como
Debian GNU/Linux 12 (bookworm). Estas instruções usam comandos que só estão disponíveis no Debian, como
apt-get
. - Clique em Opções avançadas.
- Clique em Rede e configure os seguintes campos:
- Para Etiquetas de rede, introduza
allow-health-check
eallow-ssh
. - Para Interfaces de rede, selecione o seguinte:
- Rede:
lb-network
- Subnet:
us-subnet
- Rede:
- Para Etiquetas de rede, introduza
Clique em Gestão. Introduza o seguinte script no campo Script de arranque.
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" mkdir -p /var/www/html/video echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html /var/www/html/video/index.html systemctl restart apache2
Clique em Criar.
Crie um grupo de instâncias gerido. Na Google Cloud consola, aceda à página Grupos de instâncias.
- Clique em Criar grupo de instâncias.
- Selecione Novo grupo de instâncias gerido (sem estado). Para mais informações, consulte o artigo Grupos de instâncias geridos sem estado ou com estado.
- Em Nome, introduza
ig-video-us
. - Em Localização, selecione Zona única.
- Em Região, selecione a sua região preferida. Este exemplo usa
us-central1
. - Para Zona, selecione us-central1-b.
- Em Modelo de instância, selecione
video-us-template
. - Em Modo de ajuste automático de escala, selecione
Off:do not autoscale
. - Em Número máximo de instâncias, introduza
2
. - Clique em Criar.
gcloud
Crie um modelo de instância.
gcloud compute instance-templates create video-us-template \ --region=us-central1 \ --network=lb-network \ --subnet=us-subnet \ --tags=allow-health-check,allow-ssh \ --image-family=debian-12 \ --image-project=debian-cloud \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" mkdir -p /var/www/html/video echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html /var/www/html/video/index.html systemctl restart apache2'
Crie um grupo de instâncias gerido com base no modelo.
gcloud compute instance-groups managed create ig-video-us \ --template=video-us-template --size=2 --zone=us-central1-b
Repita este procedimento quatro vezes para os quatro grupos de instâncias. Certifique-se de que altera o nome do grupo de instâncias, o nome do modelo, a região e a zona de cada grupo de instâncias, da seguinte forma:
ig-video-us
,video-us-template
,us-central1-b
(conforme mostrado no exemplo)ig-video-eu
,video-eu-template
,europe-west1-b
ig-www-us
,www-us-template
,us-central1-b
ig-www-eu
,www-europe-template
,europe-west1-b
Adicionar uma porta com nome ao grupo de instâncias
Para cada grupo de instâncias, defina um serviço HTTP e mapeie um nome de porta para a porta relevante. Depois de configurado, o serviço de balanceamento de carga encaminha o tráfego para a porta especificada.
Consola
Na Google Cloud consola, aceda à página Grupos de instâncias.
Clique no nome do grupo de instâncias (por exemplo,
ig-video-us
) e clique em Editar grupo.Clique em Especificar mapeamento do nome da porta.
Clique em Adicionar item.
Para o nome da porta, introduza
http
. Para o número da porta, introduza80
.Clique em Guardar.
Repita este passo para cada grupo de instâncias.
gcloud
gcloud compute instance-groups unmanaged set-named-ports ig-video-us \ --named-ports http:80 \ --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-us \ --named-ports http:80 \ --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-video-eu \ --named-ports http:80 \ --zone europe-west1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-eu \ --named-ports http:80 \ --zone europe-west1-b
Reservar endereços IP externos
Agora que as suas instâncias estão em funcionamento, configure os serviços necessários para o equilíbrio de carga. Nesta secção, cria dois endereços IP externos estáticos globais que os seus clientes usam para alcançar o balanceador de carga.
Consola
Na Google Cloud consola, aceda à página Endereços IP externos.
Clique em Reservar endereço estático para reservar um endereço IPv4.
Atribua um Nome de
lb-ipv4-1
.Defina o nível da rede como Premium.
Defina a versão do IP como IPv4.
Defina o Tipo como Global.
Clique em Reservar.
Clique novamente em Reservar endereço estático para reservar um endereço IPv6.
Atribua um Nome de
lb-ipv6-1
.Defina o nível da rede como Premium.
Defina a versão do IP como IPv6.
Certifique-se de que o Tipo está definido como Global.
Neste exemplo, o balanceador de carga usa a rede de nível Premium. Em alternativa, um equilibrador de carga que use a rede de nível Standard usaria endereços IP regionais. Os endereços IPv6 não estão disponíveis com o nível padrão.
Clique em Reservar.
gcloud
Reserve um endereço IPv4:
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global
Reserve um endereço IPv6:
gcloud compute addresses create lb-ipv6-1 \ --ip-version=IPV6 \ --network-tier=PREMIUM \ --global
Configurar os recursos de balanceamento de carga
A funcionalidade do balanceador de carga envolve vários recursos ligados. Nesta secção, configura e associa os recursos. São as seguintes:
- Portas com nome, que o equilibrador de carga usa para direcionar o tráfego para os seus grupos de instâncias.
- Uma verificação de funcionamento, que consulta as suas instâncias para ver se estão em bom estado. O balanceador de carga envia apenas tráfego para instâncias em bom estado.
- Serviços de back-end, que monitorizam a capacidade, a afinidade de sessão e o estado da verificação de funcionamento. Os serviços de back-end direcionam pedidos para VMs ou pontos finais de back-end com base na capacidade e no estado das instâncias.
- Um mapa de URLs, que o balanceador de carga usa para direcionar pedidos para serviços de back-end específicos com base no anfitrião e no caminho do URL de pedido.
- Um recurso de certificado SSL. Os recursos de certificado SSL contêm informações do certificado SSL que o equilibrador de carga usa para terminar o TLS quando os clientes HTTPS se ligam a ele. Pode usar vários certificados SSL, que podem ser qualquer combinação de certificados SSL geridos ou autogeridos. Tem de criar um recurso de certificado SSL para cada certificado que usar.
- Um proxy HTTPS de destino, que o balanceador de carga usa para associar o seu mapa de URLs e certificados SSL às suas regras de encaminhamento globais.
Duas regras de encaminhamento globais, uma para IPv4 e outra para IPv6, que contêm os recursos de endereço IP externo global. As regras de encaminhamento global encaminham o pedido recebido para o proxy de destino.
Consola
Selecione o tipo de balanceador de carga
Na Google Cloud consola, aceda à página Equilíbrio de carga.
- Clique em Criar equilibrador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicações (HTTP/HTTPS) e clique em Seguinte.
- Para Público ou interno, selecione Público (externo) e clique em Seguinte.
- Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Seguinte.
- Para Geração do balanceador de carga, selecione Classic Application Load Balancer e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Para o Nome do balanceador de carga, introduza
web-map
. - Mantenha a janela aberta para continuar.
Configure o serviço de back-end e a verificação de funcionamento para as instâncias www
O balanceador de carga requer dois serviços de back-end e uma verificação de estado para atender ambos. Neste exemplo, o balanceador de carga termina os pedidos HTTPS do cliente e usa HTTP para comunicar com os back-ends. Para o fazer, especifique HTTP para os protocolos de back-end e as verificações de funcionamento.
- Clique em Configuração de back-end.
- No menu pendente Criar ou selecionar um serviço de back-end, mantenha o ponteiro do rato sobre Serviços de back-end e, de seguida, selecione Criar um serviço de back-end.
- Defina o Nome do serviço de back-end como
web-backend-service
. - Certifique-se de que o Tipo de back-end está definido como Grupo de instâncias.
- No menu pendente Protocolo, selecione HTTP.
- No campo Porta com nome, introduza
http
. - Em Back-ends, defina Grupo de instâncias como
ig-www-us
. - Para o tráfego entre o balanceador de carga e as instâncias, defina os números de porta como
80
. - Mantenha os valores predefinidos para os restantes campos.
- Clique em Concluído na parte inferior da janela Novo back-end.
- Clique em Adicionar back-end e repita os passos, mas selecione o grupo de instâncias
ig-www-eu
. - Mantenha a janela aberta para continuar.
Configure a verificação de funcionamento para as instâncias www
.
- Na janela Configuração do back-end, em Verificação de funcionamento, selecione Criar uma verificação de funcionamento ou Criar outra verificação de funcionamento.
- Para criar a verificação de funcionamento de HTTP, defina os seguintes parâmetros de verificação de funcionamento:
- Nome para
http-basic-check-www
- Protocolo para
HTTP
- Porta para
80
- Nome para
- Clique em Guardar e continuar.
- Clique em Criar.
Configure o serviço de back-end e a verificação de funcionamento para as instâncias video
- Repita os passos acima, mas atribua o nome
video-backend-service
ao segundo serviço de back-end e atribua-lhe os grupos de instânciasig-video-us
eig-video-eu
. - Siga os mesmos passos para criar uma verificação de funcionamento, mas atribua o nome
http-basic-check-video
à verificação de funcionamento. Os nomes das verificações de estado têm de ser exclusivos.
Configure regras de anfitriões e caminhos
As regras de anfitrião e caminho configuram o recurso do mapa de URLs do balanceador de carga.
- Na coluna do lado esquerdo do ecrã, clique em Regras de anfitrião e caminho.
- A primeira linha tem
web-backend-service
na coluna do lado direito e já está preenchida com a regra predefinidaAny unmatched (default)
para Anfitriões e Caminhos. - Certifique-se de que existe uma segunda linha com
video-backend-service
na coluna do lado direito. Se não existir, clique em Adicionar regra de anfitrião e caminho e, de seguida, selecionevideo-backend-service
no menu pendente na coluna do lado direito. Preencha as outras colunas da seguinte forma:- Defina Hosts como
*
. - No campo Caminhos:
- Introduza
/video
e, em seguida, prima a tecla Tab. - Introduza
/video/*
e, em seguida, prima a tecla Tab.
- Introduza
- Defina Hosts como
Configure a interface
A secção de configuração do front-end configura vários recursos para o balanceador de carga, incluindo as regras de encaminhamento e os certificados SSL. Além disso, permite-lhe selecionar o protocolo usado entre o cliente e o equilibrador de carga.
Neste exemplo, está a usar o protocolo HTTPS entre o cliente e o equilibrador de carga, pelo que precisa de um ou mais recursos de certificado SSL para configurar o proxy. Consulte o artigo Certificados SSL para obter informações sobre como criar recursos de certificados SSL. Recomendamos a utilização de um certificado gerido pela Google.
- No painel do lado esquerdo da página Criar Application Load Balancer externo global, clique em Configuração do front-end.
- No campo Nome, introduza
https-content-rule
. - No campo Protocolo, selecione
HTTPS
. - Mantenha a janela aberta para continuar.
Configure a regra de encaminhamento IPv4
- Defina a versão do IP como
IPv4
. - Em Endereço IP, selecione
lb-ipv4-1
, que criou anteriormente. - Certifique-se de que a Porta está definida como
443
para permitir o tráfego HTTPS. - Clique na lista pendente Certificado.
- Se já tiver um recurso de certificado SSL autogerido e quiser usá-lo como o certificado SSL principal, selecione-o no menu pendente.
- Caso contrário, selecione Criar um novo certificado.
- Preencha um Nome de
www-ssl-cert
. - Selecione Carregar o meu certificado ou Criar certificado gerido pela Google. Para criar um certificado gerido pela Google, tem de ter um domínio. Se não tiver um domínio, pode carregar o seu próprio certificado para fins de teste.
- Se selecionou Carregar o meu certificado, conclua
estes passos.
- No campo Certificado de chave pública, faça uma das seguintes ações:
- Clique no botão Carregar e selecione o ficheiro do certificado no formato PEM.
- Copie e cole o conteúdo de um certificado formatado em PEM. O conteúdo tem de começar com
-----BEGIN CERTIFICATE-----
e terminar com-----END CERTIFICATE-----
.
- Para o campo Cadeia de certificados, faça uma das seguintes ações:
- Clique no botão Carregar e selecione o ficheiro de certificado da CA. Este ficheiro deve incluir certificados da AC intermédios, bem como o certificado da AC de raiz.
- Copie e cole o conteúdo de uma cadeia de certificados. Cada certificado
na cadeia tem de estar no formato PEM, começando com
-----BEGIN CERTIFICATE-----
e terminando com-----END CERTIFICATE-----
. Google Cloud não valida a cadeia de certificados por si. A validação é da sua responsabilidade. - Se omitir a cadeia de certificados, o seu certificado deve ser assinado por uma AC fidedigna publicamente na qual os seus clientes confiam automaticamente.
- No campo Certificado de chave privada, faça uma das seguintes ações:
- Clique no botão Carregar e selecione a sua chave privada. A chave privada tem de estar no formato PEM e não estar protegida com uma frase de acesso.
- Copiar e colar o conteúdo de uma chave privada formatada em PEM. As chaves privadas RSA têm de começar com
-----BEGIN RSA PRIVATE KEY-----
e terminar com-----END RSA PRIVATE KEY-----
. As chaves privadas ECDSA têm de começar com-----BEGIN EC PRIVATE KEY-----
e terminar com-----END EC PRIVATE KEY-----
.
- Clique em Criar.
- No campo Certificado de chave pública, faça uma das seguintes ações:
- Se selecionou Criar certificado gerido pela Google, introduza um Domínio.
- Para adicionar recursos de certificados além do recurso de certificado SSL principal:
- Clique em Adicionar certificado.
- Selecione um certificado na lista Certificados ou clique em Criar um novo certificado e siga as instruções acima.
- Em Negociação QUIC, selecione uma das seguintes opções:
- Automático (predefinição) Permite que a Google controle quando o QUIC é negociado. Atualmente, quando seleciona Automático, o QUIC está desativado. Ao selecionar esta opção, permite que a Google ative automaticamente as negociações QUIC e o HTTP/3 no futuro para este equilibrador de carga.
Na
gcloud
e na API, esta opção chama-seNONE
. - Ativado: permite que o balanceador de carga negoceie o QUIC com os clientes.
- Desativado: impede que o balanceador de carga negoceie o QUIC com os clientes.
- Automático (predefinição) Permite que a Google controle quando o QUIC é negociado. Atualmente, quando seleciona Automático, o QUIC está desativado. Ao selecionar esta opção, permite que a Google ative automaticamente as negociações QUIC e o HTTP/3 no futuro para este equilibrador de carga.
Na
- Clique em Concluído.
- Mantenha a janela aberta para continuar.
Configure a regra de encaminhamento IPv6
- Clique em Adicionar IP e porta do front-end.
- Introduza um Nome de
https-content-ipv6-rule
. - No campo Protocolo, selecione
HTTPS
se quiser usar HTTPS entre o cliente e o balanceador de carga. SelecioneHTTP
se quiser HTTP entre o cliente e o balanceador de carga. - Defina a versão do IP como
IPv6
. - Em IP, selecione
lb-ipv6-1
, que criou anteriormente. - A Porta predefinida de
443
é obrigatória. - Se já tiver um recurso de certificado SSL que quer usar, selecione-o no menu pendente Certificado. Caso contrário, selecione Criar um novo certificado.
- Preencha um Nome de
www-ssl-cert
. - Nos campos adequados, carregue o certificado de chave pública (ficheiro .crt), cadeia de certificados (ficheiro .csr) e chave privada (ficheiro .key).
- Clique em Criar.
- Preencha um Nome de
- Para adicionar recursos de certificados além do recurso de certificado SSL principal:
- Clique em Adicionar certificado.
- Selecione um certificado na lista Certificados ou clique em Criar um novo certificado e siga as instruções acima.
- Em Negociação QUIC, selecione uma das seguintes opções:
- Automático (predefinição) Permite que a Google controle quando o QUIC é negociado. Atualmente, quando seleciona Automático, o QUIC está desativado.
Ao selecionar esta opção, está a permitir que a Google ative automaticamente as negociações QUIC e o HTTP/3 no futuro para este equilibrador de carga.
Na
gcloud
e na API, esta opção chama-seNONE
. - Ativado: permite que o balanceador de carga negoceie o QUIC com os clientes.
- Desativado: impede o balanceador de carga de negociar o QUIC com os clientes.
- Automático (predefinição) Permite que a Google controle quando o QUIC é negociado. Atualmente, quando seleciona Automático, o QUIC está desativado.
Ao selecionar esta opção, está a permitir que a Google ative automaticamente as negociações QUIC e o HTTP/3 no futuro para este equilibrador de carga.
Na
- Clique em Concluído.
Rever e finalizar
- No painel do lado esquerdo da página Criar Application Load Balancer externo global, clique em Rever e finalizar.
- Compare as suas definições com o que pretendia criar.
- Se estiver tudo correto, clique em Criar para criar o seu Application Load Balancer externo.
gcloud
Crie uma verificação de funcionamento. Use o comando
gcloud
para HTTP se estiver a usar HTTP entre o balanceador de carga e os back-ends.gcloud compute health-checks create http http-basic-check \ --port 80
Crie um serviço de back-end para cada fornecedor de conteúdo.
Defina o campo
--protocol
comoHTTP
porque estamos a usar HTTP para aceder às instâncias. Use a verificação de funcionamento que criámos anteriormente como verificação de funcionamento.http-basic-check
-
Para um Application Load Balancer externo global, use o comando da CLI gcloud com
load-balancing-scheme=EXTERNAL_MANAGED
. Esta definição oferece capacidade de gestão avançada do tráfego. - Para um balanceador de carga de aplicações clássico, use
load-balancing-scheme=EXTERNAL
.
gcloud compute backend-services create video-backend-service \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --global-health-checks \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
gcloud compute backend-services create web-backend-service \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --global-health-checks \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
-
Para um Application Load Balancer externo global, use o comando da CLI gcloud com
Adicione os seus grupos de instâncias como back-ends aos serviços de back-end. Um back-end define a capacidade (utilização máxima do back-end ou consultas máximas por segundo) dos grupos de instâncias que contém. Neste exemplo, defina
balancing-mode
para o valorUTILIZATION
,max-utilization
para0.8
ecapacity-scaler
para1
. Definacapacity-scaler
como0
se quiser esgotar um serviço de back-end.Adicione o grupo de instâncias
ig-video-us
:gcloud compute backend-services add-backend video-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-video-us \ --instance-group-zone=us-central1-b \ --global
Adicione o grupo de instâncias
ig-video-eu
:gcloud compute backend-services add-backend video-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-video-eu \ --instance-group-zone=europe-west1-b \ --global
Adicione o grupo de instâncias
ig-www-us
:gcloud compute backend-services add-backend web-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-www-us \ --instance-group-zone=us-central1-b \ --global
Adicione o grupo de instâncias
ig-www-eu
:gcloud compute backend-services add-backend web-backend-service \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --capacity-scaler=1 \ --instance-group=ig-www-eu \ --instance-group-zone=europe-west1-b \ --global
Crie um mapa de URLs para encaminhar os pedidos recebidos para os serviços de back-end adequados. Neste caso, os mapeamentos de caminhos de pedidos definidos através da flag
--path-rules
dividem o tráfego de acordo com o caminho de URL em cada pedido para o seu site. O tráfego que não corresponde a uma entrada na lista--path-rules
é enviado para a entrada em--default-service flag
.Crie um mapa de URLs:
gcloud compute url-maps create web-map \ --default-service web-backend-service
Adicione um correspondente de caminho ao seu mapa de URLs e defina os mapeamentos do caminho do pedido:
gcloud compute url-maps add-path-matcher web-map \ --default-service web-backend-service \ --path-matcher-name pathmap \ --path-rules="/video=video-backend-service,/video/*=video-backend-service"
Crie um recurso de certificado SSL para usar no proxy HTTPS. Para criar um certificado gerido pela Google, tem de ter um domínio. Se não tiver um domínio, pode usar um certificado SSL autoassinado para testes. Para mais informações, consulte o artigo Tipos de certificados SSL.
Se estiver a usar vários certificados SSL, tem de criar um recurso de certificado SSL para cada certificado.
Para criar um recurso de certificado SSL autogerido:
gcloud compute ssl-certificates create www-ssl-cert \ --certificate [CRT_FILE_PATH] \ --private-key [KEY_FILE_PATH]
Para criar um recurso de certificado SSL gerido pela Google:
gcloud compute ssl-certificates create www-ssl-cert \ --domains [DOMAIN]
Crie um proxy HTTPS de destino para encaminhar pedidos para o seu mapa de URLs. O proxy é a parte do equilibrador de carga que contém o certificado SSL para o equilíbrio de carga HTTPS, pelo que também carrega o certificado neste passo.
gcloud compute target-https-proxies create https-lb-proxy \ --url-map web-map --ssl-certificates www-ssl-cert
Crie duas regras de encaminhamento globais para encaminhar pedidos recebidos para o proxy, uma para cada um dos endereços IP que criou.
-
Para um Application Load Balancer externo global, use o comando da CLI gcloud com
load-balancing-scheme=EXTERNAL_MANAGED
. Esta definição oferece capacidade de gestão avançada do tráfego. - Para um balanceador de carga de aplicações clássico, use
load-balancing-scheme=EXTERNAL
.
gcloud compute forwarding-rules create https-content-rule \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --network-tier=PREMIUM \ --address=lb-ipv4-1 \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443
gcloud compute forwarding-rules create https-content-ipv6-rule \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --network-tier=PREMIUM \ --address=lb-ipv6-1 \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443
-
Para um Application Load Balancer externo global, use o comando da CLI gcloud com
Depois de criar a regra de encaminhamento global, a configuração pode demorar vários minutos a propagar-se a nível mundial.
Associe o seu domínio ao balanceador de carga
Após a criação do balanceador de carga, tome nota do endereço IP associado ao balanceador de carga, por exemplo, 30.90.80.100
. Para direcionar o seu domínio para o
equilibrador de carga, crie um registo A
através do serviço de registo de domínios. Se
adicionou vários domínios ao seu certificado SSL, tem de adicionar um registo A
para cada um, todos a apontar para o endereço IP do equilibrador de carga. Por exemplo, para criar registos A
para www.example.com
e example.com
, use o seguinte:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Se usar o Cloud DNS como fornecedor de DNS, consulte o artigo Adicione, modifique e elimine registos.
Enviar tráfego para as suas instâncias
Agora que configurou o serviço de balanceamento de carga, pode começar a enviar tráfego para a regra de encaminhamento e ver o tráfego a ser direcionado para diferentes instâncias.
Consola e navegador de Internet
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Clique em
web-map
para expandir o balanceador de carga que acabou de criar.Na secção Backend, confirme se as instâncias estão em bom estado. A coluna Healthy deve ser preenchida, indicando que ambas as instâncias em cada um dos quatro grupos de instâncias estão em bom estado. Se vir algo diferente, experimente primeiro atualizar a página. A consola pode demorar alguns momentos a indicar que as instâncias estão em bom estado. Google Cloud Se os back-ends não parecerem em bom estado após alguns minutos, reveja a configuração da firewall e o conjunto de etiquetas de rede atribuídas às suas instâncias de back-end.
Registe os endereços IPv4 e IPv6 do seu equilibrador de carga:
Na Google Cloud consola, aceda à página Endereços IP externos.
Em Nome, encontre os endereços denominados
lb-ipv4-1
elb-ipv6-1
e, de seguida, registe os valores associados da coluna Endereços externos.
Se estiver a usar um certificado gerido pela Google:
Crie os seguintes registos de DNS:
- Um registo CAA. Para mais informações, consulte o artigo Especificar as ACs autorizadas a assinar o seu certificado gerido pela Google.
- Um registo A. Para mais informações, consulte o artigo Crie a atualização do registo A de DNS para apontar para o endereço IP do balanceador de carga.
- Um registo AAAA. Isto é semelhante ao registo A, mas destina-se ao endereço IPv6 do seu equilibrador de carga.
Confirme que o estado do recurso de certificado é ACTIVE. Para mais informações, consulte o estado do recurso de certificado SSL gerido pela Google.
Teste o equilibrador de carga através de um navegador de Internet acedendo a uma das seguintes opções:
https://IP_ADDRESS
, onde IP_ADDRESS é o endereço IPv4 do balanceador de carga. Se o navegador apresentar um aviso de certificado, tem de instruir explicitamente o navegador para confiar no certificado. O aviso ocorre porque os certificados são normalmente configurados com domínios e não com endereços IP.https://FQDN
, em que FQDN é o nome do domínio totalmente qualificado (FQDN) para o qual configurou o DNS de modo a apontar para o endereço IP do balanceador de carga. Se usou um certificado SSL autoassinado e autogerido ou um certificado SSL autogerido assinado por uma autoridade de certificação (AC) personalizada, o navegador apresenta um aviso de certificado, a menos que o tenha configurado explicitamente para confiar no certificado ou na respetiva AC. Para mais detalhes sobre certificados autogeridos, consulte o artigo Criar uma chave privada e um certificado.
O navegador deve renderizar uma página com conteúdo que mostre o nome da instância que publicou a página, juntamente com a respetiva zona (por exemplo,
Page on ig-www-us-02 in us-central1-b
).No navegador, aceda a uma das seguintes opções:
https://IP_ADDRESS/video
, onde IP_ADDRESS é o endereço IPv4 do equilibrador de carga.https://FQDN/video
, em que FQDN é o FQDN para o qual configurou o DNS de modo a apontar para o endereço IP do balanceador de carga.
O seu navegador deve renderizar uma página com conteúdo que mostre o nome da instância de vídeo que publicou a página, juntamente com a respetiva zona (por exemplo,
Page on ig-video-us-02 in us-central1-b
).
gcloud e utilização do curl
Registe os endereços IPv4 e IPv6 do seu equilibrador de carga:
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
gcloud compute addresses describe lb-ipv6-1 \ --format="get(address)" \ --global
Se estiver a usar um certificado gerido pela Google:
Crie os seguintes registos de DNS:
- Um registo CAA. Para mais informações, consulte o artigo Especificar as ACs autorizadas a assinar o seu certificado gerido pela Google.
- Um registo A. Para mais informações, consulte o artigo Crie a atualização do registo A de DNS para apontar para o endereço IP do balanceador de carga.
- Um registo AAAA. Isto é semelhante ao registo A, mas destina-se ao endereço IPv6 do seu equilibrador de carga.
Confirme que o estado do recurso de certificado é ACTIVE. Para mais informações, consulte o estado do recurso do certificado SSL gerido pela Google.
gcloud compute ssl-certificates list
Use o comando
curl
para testar a resposta destes URLs. Substitua IP_ADDRESS pelo endereço IPv4 do balanceador de carga:curl -k https://IP_ADDRESS
curl -k https://IP_ADDRESS/video/
Use o comando
curl
para testar a resposta destes URLs. Substitua IP_ADDRESS pelo endereço IPv6 do balanceador de carga. Para IPv6, tem de colocar parênteses retos ([]
) à volta do endereço e desativar o globbing com a flag-g
(por exemplo,curl -g -6 "https://[2001:DB8::]/"
).curl -k -g -6 https://[IP_ADDRESS]
curl -k -g -6 https://[IP_ADDRESS]/video/
Testar a funcionalidade multirregião
Para simular um utilizador numa geografia diferente, pode estabelecer ligação a uma das suas instâncias de máquinas virtuais numa região diferente e, em seguida, executar um comando curl
nessa instância para ver o pedido ser enviado para uma instância na região mais próxima.
Se estabelecer ligação ao ig-www-us-01
, a execução de um comando curl
mostra que o pedido é enviado para uma instância no us-central1
. Vê um resultado como o seguinte: Page on ig-www-us-02 in us-central1-b
.
Se estabelecer ligação ao ig-www-eu-01
, a execução de um comando curl
mostra que o pedido é enviado para uma instância no europe-west1
. Vê um resultado como o seguinte: Page on ig-www-eu-02 in europe-west1-b
.
Pode realizar testes a partir de um sistema cliente localizado em qualquer parte do mundo. Se os back-ends numa região ficarem em mau estado ou atingirem a capacidade, o balanceador de carga HTTPS envia automaticamente tráfego para a região mais próxima.
Opções de configuração adicionais
Esta secção expande o exemplo de configuração para oferecer opções de configuração alternativas e adicionais. Todas as tarefas são opcionais. Pode realizá-las por qualquer ordem.
Ativar afinidade de sessão
Estes procedimentos demonstram como configurar um tipo diferente de afinidade de sessão para cada serviço de back-end:
- Afinidade de sessão do endereço IP do cliente para
web-backend-service
- Afinidade de sessão de cookies HTTP para
video-backend-service
Quando a afinidade de IP do cliente está ativada, o equilibrador de carga direciona os pedidos de um cliente específico para a mesma VM de back-end com base num hash criado a partir do endereço IP do cliente.
Quando a afinidade de cookie gerado está ativada, o equilibrador de carga emite um cookie no primeiro pedido. Para cada pedido subsequente com o mesmo cookie, o balanceador de carga direciona o pedido para a mesma VM ou ponto final de back-end. Para balanceadores de carga de aplicações externos, o cookie tem o nome GCLB
.
Consola
Para ativar a afinidade de sessão de IP do cliente para web-backend-service
:
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Clique em Back-ends.
Clique em web-backend-service (o nome de um dos serviços de back-end que criou para este exemplo) e clique em Editar.
Na página Detalhes do serviço de back-end, clique em Configuração avançada.
Em Afinidade de sessão, selecione IP do cliente no menu.
Clique em Guardar.
Para ativar a afinidade de sessão de cookies gerados para video-backend-service
:
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Clique em Back-ends.
Clique em video-backend-service (o nome de um dos serviços de back-end que criou para este exemplo) e clique em Editar.
Na página Detalhes do serviço de back-end, clique em Configuração avançada.
Em Afinidade de sessão, selecione Cookie gerado no menu.
Clique em Atualizar.
gcloud
Use o seguinte comando gcloud
para atualizar o serviço de back-end, especificando a afinidade da sessão do IP do cliente:web-backend-service
gcloud compute backend-services update web-backend-service \ --session-affinity=CLIENT_IP \ --global
Use o seguinte comando gcloud
para atualizar o serviço de back-end, especificando a afinidade de sessão de cookies gerada:video-backend-service
gcloud compute backend-services update video-backend-service \ --session-affinity=GENERATED_COOKIE \ --global
API
Para definir a afinidade de sessão do IP do cliente, faça um pedido PATCH
ao método
backendServices/patch
.
PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/web-backend-service
{
"sessionAffinity": "CLIENT_IP"
}
Para definir a afinidade de sessão de cookies gerados, faça um pedido PATCH
ao método backendServices/patch
.
PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/video-backend-service
{
"sessionAffinity": "GENERATED_COOKIE"
}
Remover endereços IP externos de VMs de back-end
Os balanceadores de carga de aplicações externos comunicam com os back-ends através dos respetivos endereços IP internos e de rotas do balanceador de carga especiais. As instâncias de back-end não precisam de endereços IP externos para comunicar com o equilibrador de carga. Pode aumentar a segurança removendo os endereços IP externos das suas instâncias de back-end.
Para remover endereços IP externos de instâncias de back-end, siga estas instruções.
Se precisar de estabelecer ligação através de SSH a uma instância de back-end que não tenha um endereço IP externo, consulte o artigo Estabelecer ligação a uma instância que não tenha um endereço IP externo.
Limpar
Depois de concluir este tutorial, pode eliminar os recursos que criou, para que não lhe sejam cobrados no futuro. Se estes recursos foram criados no seu próprio projeto, pode eliminar o projeto completo. Caso contrário, pode eliminar os recursos individualmente.
Eliminar o projeto
Consola
Na Google Cloud consola, aceda à página Projetos.
Na lista de projetos, selecione o projeto que quer eliminar e clique em
Eliminar.Na caixa de diálogo, escreva
PROJECT_ID
e, de seguida, clique em Encerrar para eliminar o projeto.
gcloud
Execute o seguinte comando, substituindo PROJECT_ID
pelo ID do seu projeto:
gcloud projects delete PROJECT_ID
Eliminar recursos individuais
Consola
Eliminar o balanceador de carga
Na Google Cloud consola, aceda à página Equilíbrio de carga.
Selecione a caixa de verificação junto a
web-map
.Clique no botão Eliminar na parte superior da página.
Selecione as caixas de verificação junto a todos os recursos adicionais, incluindo serviços de back-end, verificações de estado e certificados SSL.
Clique em Eliminar equilibrador de carga e os recursos selecionados.
Eliminar os grupos de instâncias
Na Google Cloud consola, aceda à página Grupos de instâncias.
Selecione a caixa de verificação na parte superior junto a Nome para selecionar todos os grupos de instâncias.
Clique em
Eliminar.Na janela de confirmação, clique em
Eliminar.
Libertar endereços IP externos
Na Google Cloud consola, aceda à página Endereços IP externos.
Selecione as caixas de verificação junto a
lb-ipv4-1
elb-ipv6-1
.Clique em Libertar endereços estáticos.
Na janela de confirmação, clique em
Eliminar.
Eliminar as regras de firewall
Na Google Cloud consola, aceda à página Políticas de firewall.
Selecione as caixas de verificação junto a
fw-allow-health-check-and-proxy
efw-allow-ssh
.Clique em
Eliminar.Na janela de confirmação, clique em
Eliminar.
Eliminar as instâncias de VM
Na Google Cloud consola, aceda à página Instâncias de VM.
Selecione a caixa de verificação na parte superior junto a Nome para selecionar todas as instâncias.
Clique em
Eliminar.Na janela de confirmação, clique em
Eliminar.
Eliminar a rede de VPC
Na Google Cloud consola, aceda à página Redes VPC.
Clique em
lb-network
.Na página de detalhes da rede, clique em Eliminar rede VPC.
Na janela de confirmação, clique em
Eliminar.
gcloud
Eliminar o balanceador de carga
Para eliminar o equilibrador de carga, tem de eliminar cada um dos respetivos componentes.
Elimine as regras de encaminhamento:
gcloud compute forwarding-rules delete https-content-rule \ --global
gcloud compute forwarding-rules delete https-content-ipv6-rule \ --global
Elimine os endereços IP externos globais:
gcloud compute addresses delete lb-ipv4-1 \ --global
gcloud compute addresses delete lb-ipv6-1 \ --global
Elimine o proxy de destino:
gcloud compute target-https-proxies delete https-lb-proxy
Elimine o certificado SSL:
gcloud compute ssl-certificates delete www-ssl-cert
Elimine o mapa de URLs:
gcloud compute url-maps delete web-map
Elimine os serviços de back-end:
gcloud compute backend-services delete web-backend-service \ --global
gcloud compute backend-services delete video-backend-service \ --global
Elimine as verificações de funcionamento:
gcloud compute health-checks delete http-basic-check
Eliminou todos os recursos do equilibrador de carga.
Eliminar os grupos de instâncias
Repita o seguinte comando para eliminar quatro grupos de instâncias não geridos, usando as seguintes combinações de nome e zona. Substitua
INSTANCE_GROUP_NAME
e ZONE
em conformidade:
- Nome:
ig-www-us
, zona:us-central1-b
- Nome:
ig-video-us
, zona:us-central1-b
- Nome:
ig-www-eu
, zona:europe-west1-b
- Nome:
ig-video-eu
, zona:europe-west1-b
gcloud compute instance-groups unmanaged delete INSTANCE_GROUP_NAME \ --zone=ZONE
Eliminar as instâncias de VM
Repita o seguinte comando para eliminar oito VMs, usando as seguintes combinações de nomes e zonas. Substitua VM_NAME
e ZONE
em conformidade:
- Nome:
ig-www-us-01
, zona:us-central1-b
- Nome:
ig-www-us-02
, zona:us-central1-b
- Nome:
ig-video-us-01
, zona:us-central1-b
- Nome:
ig-video-us-02
, zona:us-central1-b
- Nome:
ig-www-eu-01
, zona:europe-west1-b
- Nome:
ig-www-eu-02
, zona:europe-west1-b
- Nome:
ig-video-eu-01
, zona:europe-west1-b
- Nome:
ig-video-eu-02
, zona:europe-west1-b
gcloud compute instances delete VM_NAME \ --zone=ZONE
Eliminar as regras de firewall
Elimine ambas as regras de firewall:
gcloud compute firewall-rules delete fw-allow-health-check-and-proxy
gcloud compute firewall-rules delete fw-allow-ssh
Eliminar a rede de VPC
Elimine o
us-subnet
:gcloud compute networks subnets delete us-subnet \ --region=us-central1
Elimine o
eu-subnet
:gcloud compute networks subnets delete eu-subnet \ --region=europe-west1
Elimine a rede de VPC:
gcloud compute networks delete lb-network
Eliminou todos os recursos que configurou neste projeto.
O que se segue?
- Usar o registo e a monitorização
- Resolução de problemas de balanceamento de carga
- Para ativar a IAP, consulte o artigo Ativar a IAP no Application Load Balancer externo.