Um balanceador de carga de rede de proxy externo regional é um balanceador de carga regional de camada 4 baseado em proxy que lhe permite executar e dimensionar o tráfego de serviço TCP numa única região por detrás de um endereço IP regional externo. Estes balanceadores de carga distribuem o tráfego TCP externo da Internet para back-ends na mesma região.
Este guia contém instruções para configurar um balanceador de carga de rede de proxy externo regional com um back-end de grupo de instâncias gerido (MIG).
Antes de começar, leia a Vista geral do balanceador de carga de rede de proxy externo.
Neste exemplo, vamos usar o balanceador de carga para distribuir o tráfego TCP por VMs de back-end em dois grupos de instâncias geridas zonais na região A. Para efeitos do exemplo, o serviço é um conjunto de servidores Apache configurados para responder na porta 110. Muitos navegadores não permitem a porta 110, pelo que a secção de testes usa curl.
Neste exemplo, configura a implementação apresentada no diagrama seguinte.
Um balanceador de carga de rede de proxy externo regional é um balanceador de carga regional. Todos os componentes do balanceador de carga (grupo de instâncias de back-end, serviço de back-end, proxy de destino e regra de encaminhamento) têm de estar na mesma região.
Autorizações
Para seguir este guia, tem de conseguir criar instâncias e modificar uma rede num projeto. Tem de ser proprietário ou editor do projeto, ou ter todas as funções do IAM do Compute Engine seguintes.
| Tarefa | Função necessária | 
|---|---|
| Crie redes, sub-redes e componentes do balanceador de carga | Administrador de rede de Calcular
       ( roles/compute.networkAdmin) | 
| Adicione e remova regras de firewall | Administrador de segurança da computação
       ( roles/compute.securityAdmin) | 
| Crie instâncias | Administrador de instância de computação
       ( roles/compute.instanceAdmin) | 
Para mais informações, consulte os seguintes guias:
Configure a rede e as sub-redes
Precisa de uma rede VPC com duas sub-redes, uma para os back-ends do equilibrador de carga e outra para os proxies do equilibrador de carga. Este balanceador de carga é regional. O tráfego na rede da VPC é encaminhado para o balanceador de carga se a origem do tráfego estiver numa sub-rede na mesma região que o balanceador de carga.
Este exemplo usa a seguinte rede de VPC, região e sub-redes:
- Rede: uma rede VPC no modo personalizado denominada - lb-network
- Sub-rede para back-ends: uma sub-rede denominada - backend-subnetna região A que usa- 10.1.2.0/24para o respetivo intervalo de endereços IP principal
- Sub-rede para proxies: uma sub-rede denominada - proxy-only-subnetna região B que usa- 10.129.0.0/23para o respetivo intervalo de endereços IP principal
Crie a rede e as sub-redes
Consola
- Na Google Cloud consola, aceda à página Redes VPC. 
- Clique em Criar rede de VPC. 
- Em Nome, introduza - lb-network.
- Na secção Sub-redes, defina o Modo de criação de sub-redes como Personalizado. 
- Crie uma sub-rede para os back-ends do balanceador de carga. Na secção Nova sub-rede, introduza as seguintes informações: - Nome: backend-subnet
- Região: REGION_A
- Intervalo de endereços IP: 10.1.2.0/24
 
- Nome: 
- Clique em Concluído. 
- Clique em Criar. 
gcloud
- Para criar a rede VPC personalizada, use o comando - gcloud compute networks create:- gcloud compute networks create lb-network --subnet-mode=custom 
- Para criar uma sub-rede na rede - lb-networkna região- REGION_A, use o comando- gcloud compute networks subnets create:- gcloud compute networks subnets create backend-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=REGION_A
Crie a sub-rede só de proxy
Uma sub-rede apenas de proxy fornece um conjunto de endereços IP que a Google usa para executar proxies do Envoy em seu nome. Os proxies terminam as ligações do cliente e criam novas ligações aos backends.
Esta sub-rede apenas de proxy é usada por todos os equilibradores de carga baseados no Envoy na região A da rede VPC lb-network.
Consola
Se estiver a usar a Google Cloud consola, pode aguardar e criar a sub-rede apenas de proxy mais tarde na página Equilíbrio de carga.
Se quiser criar a sub-rede apenas de proxy agora, siga estes passos:
- Na Google Cloud consola, aceda à página Redes VPC. 
- Clique no nome da rede da VPC: - lb-network.
- Clique em Adicionar sub-rede. 
- Em Nome, introduza - proxy-only-subnet.
- Para Região, selecione - REGION_A.
- Defina Purpose como Regional Managed Proxy. 
- Para o Intervalo de endereços IP, introduza - 10.129.0.0/23.
- Clique em Adicionar. 
gcloud
Para criar a sub-rede só de proxy, use o comando gcloud compute networks subnets
create:
gcloud compute networks subnets create proxy-only-subnet \
    --purpose=REGIONAL_MANAGED_PROXY \
    --role=ACTIVE \
    --region=REGION_A \
    --network=lb-network \
    --range=10.129.0.0/23
Crie regras de firewall
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- 22a 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 inicia sessões SSH. Este exemplo usa a etiqueta de destino- allow-ssh.
- fw-allow-health-check. Uma regra de entrada, aplicável às instâncias com balanceamento de carga, que permite todo o tráfego TCP dos sistemas de verificação de funcionamento (em- 130.211.0.0/22e- 35.191.0.0/16). Este exemplo usa a etiqueta de destino- allow-health-check. Google Cloud
- fw-allow-proxy-only-subnet. Uma regra de entrada que permite que as ligações da sub-rede só de proxy alcancem os back-ends.
Sem estas regras de firewall, a regra de negação predefinida de entrada bloqueia o tráfego de entrada para as instâncias de back-end.
As etiquetas de destino definem as instâncias de back-end. Sem as etiquetas de destino, as regras da firewall aplicam-se a todas as instâncias de back-end na rede VPC. Quando criar as VMs de back-end, certifique-se de que inclui as etiquetas de destino especificadas, conforme mostrado em Crie um grupo de instâncias gerido.
Consola
- Na Google Cloud consola, aceda à página Políticas de firewall. 
- Clique em Criar regra de firewall para criar a regra que permite ligações SSH de entrada. Preencha os seguintes campos: - Nome: fw-allow-ssh
- Rede: lb-network
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação: allow-ssh
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem: 0.0.0.0/0
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza 22para o número da porta.
 
 
- Nome: 
- Clique em Criar. 
- Clique em Criar regra de firewall uma segunda vez para criar a regra que permite as Google Cloud verificações de funcionamento: - Nome: fw-allow-health-check
- Rede: lb-network
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação: allow-health-check
- Filtro de origem: intervalos IPv4
- Intervalos de IPv4 de origem: 130.211.0.0/22e35.191.0.0/16
- Protocolos e portas: - Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza 80para o número da porta.
 - Como prática recomendada, limite esta regra apenas aos protocolos e às portas que correspondam aos usados pela sua verificação de funcionamento. Se usar - tcp:80para o protocolo e a porta, Google Cloud pode usar o HTTP na porta- 80para contactar as suas VMs, mas não pode usar o HTTPS na porta- 443para as contactar.
 
- Nome: 
- Clique em Criar. 
- Clique em Criar regra de firewall pela terceira vez para criar a regra que permite que os servidores proxy do balanceador de carga se liguem aos back-ends: - Nome: fw-allow-proxy-only-subnet
- Rede: lb-network
- Direção do tráfego: entrada
- Ação na correspondência: Permitir
- Objetivos: etiquetas de destino especificadas
- Etiquetas de segmentação: allow-proxy-only-subnet
- Filtro de origem: intervalos IPv4
- Intervalos IPv4 de origem: 10.129.0.0/23
- Protocolos e portas:
- Escolha Protocolos e portas especificados.
- Selecione a caixa de verificação TCP e, de seguida, introduza 80para o número da porta.
 
 
- Nome: 
- Clique em Criar. 
gcloud
- Crie a regra de firewall - fw-allow-sshpara permitir a conetividade SSH a VMs com a etiqueta de rede- allow-ssh. Quando omite- source-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-checkpara permitir Google Cloud verificações de funcionamento. Este exemplo permite todo o tráfego TCP de sondas de verificação de estado. No entanto, pode configurar um conjunto mais restrito de portas para satisfazer as suas necessidades.- gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80
- Crie a regra - fw-allow-proxy-only-subnetpara permitir que os proxies do Envoy da região se liguem aos seus back-ends. Defina- --source-rangespara os intervalos atribuídos da sua sub-rede só de proxy. Neste exemplo,- 10.129.0.0/23.- gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.129.0.0/23 \ --target-tags=allow-proxy-only-subnet \ --rules=tcp:80
Reserve o endereço IP do balanceador de carga
Reserve um endereço IP estático para o balanceador de carga.
Consola
- Na Google Cloud consola, aceda à página Reserve um endereço estático. 
- Escolha um nome para a nova morada. 
- Para Nível de serviço de rede, selecione Padrão. 
- Para Versão do IP, selecione IPv4. Os endereços IPv6 não são suportados. 
- Para Tipo, selecione Regional. 
- Para Região, selecione - REGION_A.
- Deixe a opção Anexado a definida como Nenhum. Depois de criar o balanceador de carga, este endereço IP é anexado à regra de encaminhamento do balanceador de carga. 
- Clique em Reservar para reservar o endereço IP. 
gcloud
- Para reservar um endereço IP externo estático, use o comando - gcloud compute addresses create:- gcloud compute addresses create ADDRESS_NAME \ --region=REGION_A \ --network-tier=STANDARD- Substitua - ADDRESS_NAMEpelo nome que quer dar a esta morada.
- Para ver o resultado, use o comando - gcloud compute addresses describe:- gcloud compute addresses describe ADDRESS_NAME 
Crie um grupo de instâncias geridas
Esta secção mostra como criar dois back-ends de grupo de instâncias gerido (MIG) na região A para o equilibrador de carga. O MIG fornece instâncias de VMs que executam os servidores Apache de back-end para este exemplo. Normalmente, um balanceador de carga de rede de proxy externo regional não é usado para tráfego HTTP, mas o software Apache é usado frequentemente para testes.
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 - ext-reg-tcp-proxy-backend-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-ssh,allow-health-check, eallow-proxy-only-subnet.
- Para Interfaces de rede, selecione o seguinte:
- Rede: lb-network
- Subnet: backend-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)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2 
- Clique em Criar. 
Crie um grupo de instâncias geridas
- 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 Crie um MIG com discos com estado. 
- Em Nome, introduza - mig-a.
- Para Localização, selecione Zona única. 
- Para Região, selecione - REGION_A.
- Para Zona, selecione - ZONE_A.
- Para Modelo de instância, selecione - ext-reg-tcp-proxy-backend-template.
- Especifique o número de instâncias que quer criar no grupo. - Para este exemplo, especifique as seguintes opções para o dimensionamento automático: - Para o Modo de ajuste automático de escala, selecione Off:do not autoscale.
- Para Número máximo de instâncias, introduza 2.
 
- Para o Modo de ajuste automático de escala, selecione 
- Para Mapeamento de portas, clique em Adicionar porta. - Em Nome da portabilidade, introduza tcp80.
- Em Número da porta, introduza 80.
 
- Em Nome da portabilidade, introduza 
- Clique em Criar. 
- Para criar um segundo grupo de instâncias gerido, repita os passos Crie um grupo de instâncias gerido e use as seguintes definições: - Nome: mig-b
- Zona: ZONE_B
 - Mantenha todas as outras definições inalteradas. 
- Nome: 
gcloud
As instruções da CLI do Google Cloud neste guia pressupõem que está a usar a Cloud Shell ou outro ambiente com o bash instalado.
- Para criar um modelo de instância de VM com um servidor HTTP, use o comando - gcloud compute instance-templates create:- gcloud compute instance-templates create ext-reg-tcp-proxy-backend-template \ --region=REGION_A \ --network=lb-network \ --subnet=backend-subnet \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --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)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
- Crie um grupo de instâncias geridas na zona - ZONE_A:- gcloud compute instance-groups managed create mig-a \ --zone=ZONE_A \ --size=2 \ --template=ext-reg-tcp-proxy-backend-template
- Crie um grupo de instâncias geridas na zona - ZONE_B:- gcloud compute instance-groups managed create mig-b \ --zone=ZONE_B \ --size=2 \ --template=ext-reg-tcp-proxy-backend-template
Configure o balanceador de carga
Consola
Inicie a configuração
- Na Google Cloud consola, aceda à página Equilíbrio de carga. 
- Clique em Criar equilibrador de carga.
- Para Tipo de balanceador de carga, selecione Balanceador de carga de rede (TCP/UDP/SSL) e clique em Seguinte.
- Para Proxy ou passagem, selecione Proxy de balanceamento de carga 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 regionais e clique em Seguinte.
- Clique em Configurar.
Configuração básica
- Em Nome, introduza my-ext-tcp-lb.
- Para Região, selecione REGION_A.
- Para Rede, selecione lb-network.
Reserve uma sub-rede só de proxy
- Clique em Reservar.
- No campo Nome, introduza proxy-only-subnet.
- No campo Intervalo de endereços IP, introduza 10.129.0.0/23.
- Clique em Adicionar.
Configure os back-ends
- Clique em Configuração de back-end.
- Na lista Tipo de back-end, selecione Grupo de instâncias.
- Na lista Protocolo, selecione TCP.
- No campo Porta com nome, introduza tcp80.
- Configure a verificação de estado:
- Na lista Verificação de funcionamento, selecione Criar uma verificação de funcionamento.
- No campo Nome, introduza tcp-health-check.
- Na lista Protocolo, selecione TCP.
- No campo Porta, introduza 80.
- Clique em Criar.
 
- Configure o primeiro back-end:
- Para Novo back-end, selecione o grupo de instâncias mig-a.
- Para Transferir números, introduza 80.
- Mantenha os restantes valores predefinidos e, de seguida, clique em Concluído.
 
- Para Novo back-end, selecione o grupo de instâncias 
- Configure o segundo back-end:
- Clique em Adicionar back-end.
- Para Novo back-end, selecione o grupo de instâncias mig-b.
- Para Transferir números, introduza 80.
- Mantenha os restantes valores predefinidos e, de seguida, clique em Concluído.
 
- Mantenha os restantes valores predefinidos e, de seguida, clique em Guardar.
- Na Google Cloud consola, verifique se existe uma marca de verificação junto a Configuração de back-end. Caso contrário, verifique novamente se concluiu todos os passos.
Configure a interface
- Clique em Configuração do front-end.
- Em Nome, introduza ext-reg-tcp-forwarding-rule.
- Para Nível de serviço de rede, selecione Padrão.
- Para Endereço IP, selecione o endereço IP reservado anteriormente: LB_IP_ADDRESS
- Em Número da porta, introduza 110. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente.
- Para o protocolo PROXY, selecione Desativado porque o protocolo PROXY não funciona com o software Apache HTTP Server. Para mais informações, consulte o protocolo PROXY.
- Clique em Concluído.
- Na Google Cloud consola, verifique se existe uma marca de verificação junto a Configuração do front-end. Caso contrário, verifique novamente se concluiu todos os passos anteriores.
Reveja e finalize
- Clique em Rever e finalizar.
- Reveja as definições de configuração do equilibrador de carga.
- Opcional: clique em Código equivalente para ver o pedido da API REST que é usado para criar o balanceador de carga.
- Clique em Criar.
gcloud
- Crie uma verificação de funcionamento regional: - gcloud compute health-checks create tcp tcp-health-check \ --region=REGION_A \ --use-serving-port
- Crie um serviço de back-end: - gcloud compute backend-services create ext-reg-tcp-proxy-bs \ --load-balancing-scheme=EXTERNAL_MANAGED \ --protocol=TCP \ --port-name=tcp80 \ --region=REGION_A \ --health-checks=tcp-health-check \ --health-checks-region=REGION_A
- Adicione grupos de instâncias ao seu serviço de back-end: - gcloud compute backend-services add-backend ext-reg-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-a \ --instance-group-zone=ZONE_A \ --balancing-mode=UTILIZATION \ --max-utilization=0.8- gcloud compute backend-services add-backend ext-reg-tcp-proxy-bs \ --region=REGION_A \ --instance-group=mig-b \ --instance-group-zone=ZONE_B \ --balancing-mode=UTILIZATION \ --max-utilization=0.8
- Crie um proxy TCP de destino: - gcloud compute target-tcp-proxies create ext-reg-tcp-target-proxy \ --backend-service=ext-reg-tcp-proxy-bs \ --proxy-header=NONE \ --region=REGION_A- Se quiser ativar o cabeçalho do proxy, defina-o como - PROXY_V1em vez de- NONE. Neste exemplo, não ative o protocolo PROXY porque não funciona com o software do servidor HTTP Apache. Para mais informações, consulte o protocolo PROXY.
- Crie a regra de encaminhamento. Para - --ports, especifique um único número de porta entre 1 e 65535. Este exemplo usa a porta- 110. A regra de encaminhamento apenas encaminha pacotes com uma porta de destino correspondente.- gcloud compute forwarding-rules create ext-reg-tcp-forwarding-rule \ --load-balancing-scheme=EXTERNAL_MANAGED \ --network-tier=STANDARD \ --network=lb-network \ --region=REGION_A \ --target-tcp-proxy=ext-reg-tcp-target-proxy \ --target-tcp-proxy-region=REGION_A \ --address=LB_IP_ADDRESS \ --ports=110
Teste o balanceador de carga
Agora que configurou o equilibrador de carga, pode testar o envio de tráfego para o endereço IP do equilibrador de carga.
- Obtenha o endereço IP do balanceador de carga. - Para obter o endereço IPv4, execute o seguinte comando: - gcloud compute addresses describe ADDRESS_NAME 
- Envie tráfego para o balanceador de carga executando o seguinte comando. Substitua - LB_IP_ADDRESSpela morada IPv4 do seu equilibrador de carga.- curl -m1 LB_IP_ADDRESS:9090 
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.
Ative a afinidade de sessão
A configuração de exemplo cria um serviço de back-end sem afinidade de sessão.
Estes procedimentos mostram como atualizar um serviço de back-end para o exemplo de equilibrador de carga criado anteriormente, de modo que o serviço de back-end use a afinidade de IP do cliente ou a afinidade de cookies gerada.
Quando a afinidade de IP do cliente está ativada, o balanceador 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 e do endereço IP do balanceador de carga (o endereço IP interno de uma regra de encaminhamento interno).
Para ativar a afinidade de sessão de IP do cliente, conclua os seguintes passos.
Consola
- Na Google Cloud consola, aceda à página Equilíbrio de carga. 
- Clique em Back-ends. 
- Clique em - ext-reg-tcp-proxy-bs(o nome do serviço de back-end que criou para este exemplo) e, de seguida, clique em Editar.
- Na página Detalhes do serviço de back-end, clique em Configuração avançada. 
- Para Afinidade de sessão, selecione IP do cliente. 
- Clique em Atualizar. 
gcloud
Para atualizar o serviço de back-end ext-reg-tcp-proxy-bs e especificar a afinidade de sessão do IP do cliente, use o comando gcloud compute backend-services update ext-reg-tcp-proxy-bs:
gcloud compute backend-services update ext-reg-tcp-proxy-bs \
    --region=REGION_A \
    --session-affinity=CLIENT_IP
O que se segue?
- Converta o Network Load Balancer de proxy para IPv6
- Vista geral do balanceador de carga de rede de proxy externo.
- Registo e monitorização do balanceador de carga de rede por proxy.
- Limpe a configuração do balanceador de carga.