Configure um Application Load Balancer externo global com a VPC partilhada

Este documento mostra duas configurações de exemplo para configurar um Application Load Balancer externo global com back-ends de grupos de instâncias de VMs num ambiente de VPC partilhada:

  • No primeiro exemplo, os componentes de front-end e back-end do balanceador de carga são criados num projeto de serviço.
  • No segundo exemplo, os componentes de front-end do balanceador de carga e o mapa de URLs são criados num projeto de serviço, enquanto o serviço de back-end e os back-ends do balanceador de carga são criados num projeto de serviço diferente. Este tipo de implementação, em que o mapa de URLs num projeto faz referência a um serviço de back-end noutro projeto, é denominado referência de serviços entre projetos.

Ambos os exemplos requerem a mesma configuração inicial para conceder autorizações, configurar a rede e a sub-rede no projeto anfitrião e configurar a VPC partilhada antes de poder começar a criar balanceadores de carga.

Estas não são as únicas configurações de VPC partilhada suportadas pelo balanceador de carga de aplicações externo global. Para outras arquiteturas de VPC partilhada válidas, consulte o artigo Arquitetura de VPC partilhada.

Se não quiser usar uma rede de VPC partilhada, consulte o artigo Configure um Application Load Balancer externo global com back-ends de grupo de instâncias de VM.

Antes de começar

Autorizações necessárias

A configuração de um equilibrador de carga numa rede de VPC partilhada requer alguma configuração inicial e aprovisionamento por parte de um administrador. Após a configuração inicial, um proprietário do projeto de serviço pode fazer uma das seguintes ações:

  • Implemente todos os componentes do equilibrador de carga e os respetivos back-ends num projeto de serviço.
  • Implemente os componentes de back-end do equilibrador de carga (serviço de back-end e back-ends) em projetos de serviço que podem ser referenciados por um mapa de URLs noutro projeto de serviço ou anfitrião.

Esta secção resume as autorizações necessárias para seguir este guia para configurar um equilibrador de carga numa rede de VPC partilhada.

Configure a VPC partilhada

As seguintes funções são necessárias para as seguintes tarefas:

  1. Realizar tarefas administrativas únicas, como configurar a VPC partilhada e ativar um projeto anfitrião.
  2. Executar tarefas administrativas que têm de ser repetidas sempre que quiser integrar um novo projeto de serviço. Isto inclui anexar o projeto de serviço, aprovisionar e configurar recursos de rede, bem como conceder acesso ao administrador do projeto de serviço.

Estas tarefas têm de ser realizadas no projeto anfitrião da VPC partilhada. Recomendamos que o administrador da VPC partilhada seja também o proprietário do projeto anfitrião da VPC partilhada. Isto concede automaticamente as funções de administrador de rede e administrador de segurança.

Tarefa Função necessária
Configure a VPC partilhada, ative o projeto anfitrião e conceda acesso aos administradores do projeto de serviço Administrador da VPC partilhada
Crie sub-redes no projeto anfitrião da VPC partilhada e conceda acesso aos administradores do projeto de serviço Administrador da rede
Adicione e remova regras de firewall Administrador de segurança

Depois de as sub-redes terem sido aprovisionadas, o proprietário do projeto anfitrião tem de conceder a função de utilizador da rede no projeto anfitrião a qualquer pessoa (normalmente, administradores, programadores ou contas de serviço do projeto de serviço) que precise de usar estes recursos.

Tarefa Função necessária
Use redes VPC e sub-redes pertencentes ao projeto anfitrião Utilizador da rede

Esta função pode ser concedida ao nível do projeto ou para sub-redes individuais. Recomendamos que conceda a função em sub-redes individuais. A concessão da função no projeto dá acesso a todas as sub-redes atuais e futuras na rede VPC do projeto anfitrião.

Implemente o balanceador de carga e os back-ends

Os administradores do projeto de serviço precisam das seguintes funções no projeto de serviço para criar recursos de equilíbrio de carga e back-ends. Estas autorizações são concedidas automaticamente ao proprietário ou editor do projeto de serviço.

Funções concedidas no projeto de serviço
Tarefa Função necessária
Crie componentes do balanceador de carga Administrador da rede
Crie instâncias Administrador da instância
Crie e modifique certificados SSL Administrador de segurança

Faça referência a serviços de back-end entre projetos

Se o seu balanceador de carga precisar de referenciar serviços de back-end de outros projetos de serviço, também conhecido como referenciação de serviços entre projetos, os administradores do balanceador de carga vão precisar da seguinte função no projeto de serviço onde o serviço de back-end é criado.

Funções concedidas no projeto de serviço
Tarefa Função necessária
Autorizações para usar serviços noutros projetos Utilizador dos serviços do balanceador de carga

Esta função pode ser concedida ao nível do projeto ou para serviços de back-end individuais. Para ver instruções sobre como conceder esta função, consulte o exemplo de referência de serviço entre projetos nesta página.

Para mais informações sobre o IAM, consulte os seguintes guias:

Pré-requisitos

Nesta secção, tem de realizar os seguintes passos:

  1. Configure a rede e as sub-redes no projeto anfitrião.
  2. Configure a VPC partilhada no projeto anfitrião.

Não é necessário executar os passos desta secção sempre que quiser criar um novo equilibrador de carga. No entanto, tem de garantir que tem acesso aos recursos descritos aqui antes de avançar para a criação do equilibrador de carga.

Configure a rede e as sub-redes no projeto anfitrião

Precisa de uma rede de VPC partilhada com uma sub-rede para os back-ends do equilibrador de carga.

Este exemplo usa a seguinte rede, região e sub-rede:

  • Rede. A rede tem o nome lb-network.

  • Sub-rede para os back-ends do balanceador de carga. Uma sub-rede denominada lb-backend-subnet na região us-west1 usa 10.1.2.0/24 para o respetivo intervalo de IP principal.

Configure a sub-rede para os back-ends do balanceador de carga

Não tem de realizar este passo sempre que quiser criar um novo equilibrador de carga. Só tem de garantir que o projeto de serviço tem acesso a uma sub-rede na rede de VPC partilhada.

Todos os passos nesta secção têm de ser realizados no projeto anfitrião.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.
  3. Em Nome, introduza lb-network.
  4. Na secção Subnets (Sub-redes):

    1. Defina o Subnet creation mode (Modo de criação de sub-rede) como Custom (Personalizado).
    2. Na secção Nova sub-rede, introduza as seguintes informações:

      • Nome: lb-backend-subnet
      • Região: us-west1

      • Intervalo de endereços IP: 10.1.2.0/24

    3. Clique em Concluído.

  5. Clique em Criar.

gcloud

  1. Crie uma rede VPC com o comando gcloud compute networks create:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Crie uma sub-rede na rede lb-network na região us-west1:

    gcloud compute networks subnets create lb-backend-subnet 
    --network=lb-network
    --range=10.1.2.0/24
    --region=us-west1

Conceda aos administradores do projeto de serviço acesso à sub-rede de back-end

Os administradores do projeto de serviço precisam de acesso à sub-rede lb-backend-subnet para poderem aprovisionar os back-ends do balanceador de carga.

Um administrador da VPC partilhada tem de conceder acesso à sub-rede de back-end aos administradores do projeto de serviço (ou aos programadores que implementam recursos e back-ends que usam a sub-rede). Para ver instruções, consulte o artigo Administradores do projeto de serviço para algumas sub-redes.

Configure regras de firewall no projeto anfitrião

Este exemplo usa a seguinte regra de firewall:
  • 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 Google Cloude 35.191.0.0/16.130.211.0.0/22 Este exemplo usa a etiqueta de destino load-balanced-backend para identificar as instâncias às quais deve ser aplicada.
Sem esta regra de firewall, a regra de negação predefinida de entrada bloqueia o tráfego de entrada para as instâncias de back-end.

Todos os passos nesta secção têm de ser realizados no projeto anfitrião.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Clique em Criar regra de firewall para criar a regra que permite Google Cloud verificações de funcionamento:
    • Nome: fw-allow-health-check
    • Rede: lb-network
    • Sentido do tráfego: entrada
    • Ação na correspondência: permitir
    • Objetivos: etiquetas de objetivo especificadas
    • Etiquetas de segmentação: load-balanced-backend
    • Filtro de origem: intervalos de IPv4
    • Intervalos de IPv4 de origem: 130.211.0.0/22 e 35.191.0.0/16
    • Protocolos e portas:
      • Escolha Protocolos e portas especificados.
      • Selecione TCP e introduza 80 para 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:80 para o protocolo e a porta, Google Cloud pode usar HTTP na porta 80 para contactar as suas VMs, mas não pode usar HTTPS na porta 443 para as contactar.

  3. Clique em Criar.

gcloud

  1. Crie a regra de firewall fw-allow-health-check para permitir verificações de funcionamentoGoogle Cloud . 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=load-balanced-backend \
       --rules=tcp
    

Configure a VPC partilhada no projeto anfitrião

Este passo implica ativar um projeto anfitrião de VPC partilhada, partilhar sub-redes do projeto anfitrião e anexar projetos de serviço ao projeto anfitrião para que os projetos de serviço possam usar a rede VPC partilhada. Para configurar a VPC partilhada no projeto anfitrião, consulte as seguintes páginas:

O resto destas instruções pressupõe que já configurou a VPC partilhada. Isto inclui configurar políticas IAM para a sua organização e designar os projetos anfitrião e de serviço.

Não avance até configurar a VPC partilhada e ativar os projetos de serviço e anfitrião.

Depois de concluir os passos definidos nesta secção de pré-requisitos, pode seguir qualquer uma das seguintes configurações:

Configure um balanceador de carga num projeto de serviço

Depois de configurar a rede VPC no projeto anfitrião e configurar a VPC partilhada, pode concentrar-se no projeto de serviço, no qual tem de criar todos os componentes de equilíbrio de carga (serviço de back-end, mapa de URLs, proxy de destino e regra de encaminhamento) e os back-ends.

Esta secção pressupõe que realizou os passos pré-requisitos descritos na secção anterior no projeto anfitrião. Nesta secção, os componentes de front-end e back-end do equilibrador de carga, juntamente com os back-ends, são criados num projeto de serviço.

A figura seguinte representa os componentes de um Application Load Balancer externo global num projeto de serviço, que está anexado ao projeto anfitrião numa rede de VPC partilhada.

Componentes de front-end e back-end do balanceador de carga num projeto de serviço
Figura 1. Componentes de front-end e back-end do balanceador de carga num projeto de serviço

Estes passos devem ser realizados pelo administrador do projeto de serviço (ou por um programador que opere no projeto de serviço) e não requerem a participação do administrador do projeto anfitrião. Os passos nesta secção são semelhantes aos passos padrão para configurar um balanceador de carga de aplicações externo global.

O exemplo nesta página define explicitamente um endereço IP reservado para a regra de encaminhamento do balanceador de carga da aplicação externo global, em vez de permitir a atribuição de um endereço IP efémero. Como prática recomendada, recomendamos que reserve endereços IP para regras de encaminhamento.

Crie um back-end de grupo de instâncias geridas

O precursor da criação de um grupo de instâncias geridas é a criação de um modelo de instância, que é um recurso que pode usar para criar instâncias de máquinas virtuais (VMs). O tráfego dos clientes é equilibrado em carga para VMs num grupo de instâncias. O grupo de instâncias gerido fornece VMs que executam os servidores de back-end de um balanceador de carga de aplicações externo. Neste exemplo, os back-ends servem os respetivos nomes de anfitrião.

Consola

Crie um modelo de instância

  1. Na Google Cloud consola, aceda à página Compute Engine Modelos de instâncias.

    Aceda a Modelos de instâncias

  2. Clique em Criar modelo de instância.

  3. Em Nome, introduza backend-template.

  4. Na secção Disco de arranque, certifique-se de que o disco de arranque está definido para uma imagem do Debian, como Debian GNU/Linux 12 (bookworm). Clique em Alterar para alterar a imagem, se necessário.

  5. Expanda a secção Opções avançadas.

  6. Expanda a secção Redes e, no campo Etiquetas de rede, introduza load-balanced-backend.

  7. Para Interfaces de rede, selecione Redes partilhadas comigo (do projeto anfitrião: HOST_PROJECT_ID).

  8. Na lista Sub-rede partilhada, selecione a sub-rede da rede lb-network.lb-backend-subnet

  9. Expanda a secção Gestão e, no campo Automatização, especifique o seguinte 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
    
  10. Clique em Criar.

Crie um grupo de instâncias geridas

  1. Na Google Cloud consola, aceda à página Compute Engine Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique em Criar grupo de instâncias.

  3. Nas opções, selecione Novo grupo de instâncias gerido (sem estado).

  4. Para o nome do grupo de instâncias, introduza lb-backend.

  5. Na lista Modelo de instância, selecione o modelo de instância backend-template que criou no passo anterior.

  6. Na secção Localização, selecione Zona única e introduza os seguintes valores:

    • Para Região, selecione us-west1.

    • Para Zona, selecione us-west1-a.

  7. Na secção Ajuste automático de escala, introduza os seguintes valores:

    • Para o Modo de dimensionamento automático, selecione Ativado: adicionar e remover instâncias do grupo.

    • Para Número mínimo de instâncias, selecione 2.

    • Para Número máximo de instâncias, selecione 3.

  8. Na secção Mapeamento de portas, clique em Adicionar porta e introduza os seguintes valores:

    • Em Nome da portabilidade, introduza http.

    • Em Número da porta, introduza 80.

  9. Clique em Criar.

gcloud

  1. Crie um modelo de instância:

    gcloud compute instance-templates create backend-template \
        --region=us-west1 \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-backend-subnet \
        --tags=load-balanced-backend \
        --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' \
        --project=SERVICE_PROJECT_ID
    
  2. Crie um grupo de instâncias gerido e selecione o modelo de instância que criou no passo anterior:

    gcloud compute instance-groups managed create lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_ID
    
  3. Adicione uma porta com nome ao grupo de instâncias:

    gcloud compute instance-groups set-named-ports lb-backend \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=SERVICE_PROJECT_ID
    

Crie uma verificação de funcionamento

As verificações de funcionamento são testes que confirmam a disponibilidade dos back-ends. Crie uma verificação de funcionamento que use o protocolo HTTP e sondas na porta 80. Mais tarde, vai anexar esta verificação de estado ao serviço de back-end referenciado pelo balanceador de carga.

Consola

  1. Na Google Cloud consola, aceda à página Compute Engine Verificações de estado.

    Aceda às verificações de saúde

  2. Para o nome da verificação de estado, introduza lb-health-check.

  3. Defina o protocolo como HTTP.

  4. Clique em Criar.

gcloud

Crie uma verificação de funcionamento de HTTP.

gcloud compute health-checks create http lb-health-check \
  --use-serving-port \
  --project=SERVICE_PROJECT_ID

Reserve o endereço IP do balanceador de carga

Reserve um endereço IP externo estático global que possa ser atribuído à regra de encaminhamento do balanceador de carga.

Consola

  1. Na Google Cloud consola, aceda à página de endereços IP da VPC.

    Aceda a Endereços IP

  2. Clique em Reservar endereço IP estático externo.

  3. Em Nome, introduza lb-ipv4-1.

  4. Defina o Nível de serviço de rede como Premium.

  5. Defina a versão do IP como IPv4.

  6. Defina o Tipo como Global.

  7. Clique em Reservar.

gcloud

Crie um endereço IP externo estático global.

gcloud compute addresses create lb-ipv4-1 \
  --ip-version=IPV4 \
  --network-tier=PREMIUM \
  --global
  --project=SERVICE_PROJECT_ID

Configure um recurso de certificado SSL

Para um balanceador de carga que usa o protocolo HTTPS como protocolo de pedido e resposta, crie um recurso de certificado SSL, conforme descrito nos seguintes recursos:

Recomendamos a utilização de um certificado gerido pela Google.

Este exemplo pressupõe que criou um certificado SSL com o nome lb-ssl-cert. O certificado SSL está anexado ao proxy de destino que vai criar num dos passos seguintes.

Configure o balanceador de carga

Esta secção mostra como criar os seguintes recursos para um balanceador de carga de aplicações externo global:

  • Serviço de back-end com um grupo de instâncias geridas como back-end
  • Mapa do URL
  • Certificado SSL (obrigatório apenas para tráfego HTTPS)
  • Proxy de destino
  • Regra de encaminhamento

Neste exemplo, pode usar HTTP ou HTTPS como o protocolo de pedido e resposta entre o cliente e o balanceador de carga. Para o HTTPS, precisa de um recurso de certificado SSL para configurar o proxy. Recomendamos que use um certificado gerido pela Google.

Consola

Selecione o tipo de balanceador de carga

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Clique em Criar equilibrador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicações (HTTP/HTTPS) e clique em Seguinte.
  4. Para Público ou interno, selecione Público (externo) e clique em Seguinte.
  5. Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Seguinte.
  6. Para Geração do balanceador de carga, selecione Balanceador de carga de aplicações externo global e clique em Seguinte.
  7. Clique em Configurar.

Configuração básica

  1. Para o nome do balanceador de carga, introduza l7-xlb-shared-vpc.

Configure a interface do balanceador de carga

Para tráfego HTTP:

  1. Clique em Configuração do front-end.

  2. Para o nome do front-end do balanceador de carga, introduza http-fw-rule.

  3. Para Protocolo, selecione HTTP.

  4. Defina a versão do IP como IPv4.

  5. Para Endereço IP, selecione lb-ipv4-1, que é o endereço IP que reservou anteriormente.

  6. Defina a Porta como 80 para permitir o tráfego HTTP.

  7. Para concluir a configuração do frontend, clique em Concluído.

  8. Antes de continuar, verifique se existe uma marca de verificação azul junto a Configuração do front-end.

Para tráfego HTTPS:

  1. Clique em Configuração do front-end.

  2. Para o nome do front-end do balanceador de carga, introduza https-fw-rule.

  3. Para Protocolo, selecione HTTPS.

  4. Defina a versão do IP como IPv4.

  5. Para Endereço IP, selecione lb-ipv4-1, que é o endereço IP que reservou anteriormente.

  6. Defina a Porta como 443 para permitir o tráfego HTTPS.

  7. Na lista Certificado, selecione o certificado SSL que criou.

  8. Para concluir a configuração do frontend, clique em Concluído.

  9. Verifique se existe uma marca de verificação azul junto a Configuração do frontend antes de continuar.

Configure o back-end

  1. Clique em Configuração de back-end.

  2. No menu Serviços de back-end e contentores de back-end, clique em Criar um serviço de back-end.

  3. Para o nome do serviço de back-end, introduza lb-backend-service.

  4. Para Tipo de back-end, selecione Grupo de instâncias.

  5. Defina o Protocolo como HTTP.

  6. No campo Porta com nome, introduza http. Este é o mesmo nome da porta que introduziu ao criar o grupo de instâncias gerido.

  7. Para adicionar serviços de back-end ao serviço de back-end, faça o seguinte:

    1. Na secção Back-ends, defina o Grupo de instâncias como lb-backend, que é o grupo de instâncias gerido que criou num passo anterior.

    2. Para Transferir números, introduza 80.

    3. Para adicionar o back-end, clique em Concluído.

  8. Para adicionar uma verificação de funcionamento, na lista Verificação de funcionamento, selecione lb-health-check, que é a verificação de funcionamento que criou anteriormente.

  9. Para criar o serviço de back-end, clique em Criar.

  10. Verifique se existe uma marca de verificação azul junto a Configuração de back-end antes de continuar.

Configure as regras de encaminhamento

  • Clique em Regras de encaminhamento. Certifique-se de que lb-backend-service é o serviço de back-end predefinido para qualquer anfitrião não correspondente e qualquer caminho não correspondente.

Para obter informações sobre a gestão de tráfego, consulte o artigo Configure a gestão de tráfego.

Reveja e finalize a configuração

  1. Clique em Rever e finalizar.

  2. Reveja as definições de frontend e backend do equilibrador de carga para garantir que está configurado como pretendido.

  3. Clique em Criar e, de seguida, aguarde que o equilibrador de carga seja criado.

gcloud

  1. Crie um serviço de back-end para distribuir o tráfego entre back-ends:

    gcloud compute backend-services create lb-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=lb-health-check \
        --global \
        --project=SERVICE_PROJECT_ID
    
  2. Adicione o seu grupo de instâncias como back-end ao serviço de back-end:

    gcloud compute backend-services add-backend lb-backend-service \
        --instance-group=lb-backend \
        --instance-group-zone=us-west1-a \
        --global \
        --project=SERVICE_PROJECT_ID
    
  3. Crie um mapa de URLs para encaminhar pedidos recebidos para o serviço de back-end:

    gcloud compute url-maps create lb-map \
        --default-service=lb-backend-service \
        --global \
        --project=SERVICE_PROJECT_ID
    
  4. Crie um proxy de destino.

    Para o tráfego HTTP, crie um proxy HTTP de destino para encaminhar pedidos para o mapa de URLs:

    gcloud compute target-http-proxies create http-proxy \
        --url-map=lb-map \
        --global \
        --project=SERVICE_PROJECT_ID
    

    Para o tráfego HTTPS, crie um proxy HTTPS de destino para encaminhar pedidos para o mapa de URLs. O proxy é a parte do balanceador de carga que contém o certificado SSL para um balanceador de carga HTTPS. Por isso, também carrega o seu certificado SSL neste passo:

    gcloud compute target-https-proxies create https-proxy \
        --url-map=lb-map \
        --ssl-certificates=lb-ssl-cert
        --global \
        --project=SERVICE_PROJECT_ID
    
  5. Crie uma regra de encaminhamento.

    Para o tráfego HTTP, crie uma regra de encaminhamento global para encaminhar pedidos recebidos para o proxy de destino:

    gcloud compute forwarding-rules create http-fw-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=lb-ipv4-1 \
        --global \
        --target-http-proxy=http-proxy \
        --ports=80 \
        --project=SERVICE_PROJECT_ID
    

    Para o tráfego HTTPS, crie uma regra de encaminhamento global para encaminhar pedidos recebidos para o proxy de destino:

    gcloud compute forwarding-rules create https-fw-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-proxy \
        --ports=443 \
        --project=SERVICE_PROJECT_ID
    

Teste o balanceador de carga

Quando o serviço de balanceamento de carga estiver em execução, pode enviar tráfego para a regra de encaminhamento e ver o tráfego disperso por diferentes instâncias.

Consola

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Clique no balanceador de carga que acabou de criar.

  3. Tome nota do endereço IP do balanceador de carga. Este endereço IP é denominado LB_IP_ADDRESS nos passos seguintes.

  4. Na secção Backend, confirme que as VMs estão em bom estado.

    A coluna Em bom estado deve estar preenchida, o que indica que as VMs estão em bom estado. Por exemplo, se forem criadas duas instâncias, deve ver uma mensagem a indicar 2 of 2 com uma marca de verificação verde junto. Se vir algo diferente, experimente primeiro atualizar a página. Pode demorar alguns minutos até que a consola indique que as VMs 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 a etiqueta de rede atribuída às VMs de back-end.

  5. Depois de a Google Cloud consola mostrar que as instâncias de back-end estão em bom estado, pode testar o equilibrador de carga direcionando o navegador de Internet para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do equilibrador de carga.

  6. Se usou um certificado autoassinado para testar o HTTPS, o navegador apresenta um aviso. Tem de instruir explicitamente o navegador para aceitar um certificado autossinado.

  7. O navegador deve renderizar uma página com conteúdo que mostre o nome da instância que publicou a página (por exemplo, Page served from: lb-backend-example-xxxx). Se o navegador não renderizar esta página, reveja as definições de configuração neste guia.

gcloud

Tome nota do endereço IP que foi reservado:

gcloud compute addresses describe IP_ADDRESS_NAME \
    --format="get(address)" \
    --global

Pode testar o equilibrador de carga direcionando o navegador de Internet para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do equilibrador de carga.

Se usou um certificado autoassinado para testar o HTTPS, o navegador apresenta um aviso. Tem de instruir explicitamente o navegador para aceitar um certificado autossinado.

O navegador deve renderizar uma página com informações mínimas sobre a instância de back-end. Se o navegador não renderizar esta página, reveja as definições de configuração neste guia.

Configure um balanceador de carga com um serviço de back-end entre projetos

Esta secção mostra como configurar um equilibrador de carga com um serviço de back-end de vários projetos num ambiente de VPC partilhada.

Antes de começar

O exemplo anterior nesta página mostra como configurar uma implementação de VPC partilhada onde todos os componentes do balanceador de carga e os respetivos back-ends são criados num projeto de serviço. Os equilibradores de carga de aplicações externos globais também permitem configurar implementações de VPC partilhada em que um mapa de URLs num projeto de anfitrião ou de serviço faz referência a serviços de back-end (e back-ends) localizados em vários projetos de serviço no ambiente de VPC partilhada.

Pode usar os passos nesta secção como referência para configurar qualquer uma das combinações suportadas indicadas aqui:

  • Regra de encaminhamento, proxy de destino e mapa de URLs no projeto anfitrião, e serviço de back-end num projeto de serviço
  • Regra de encaminhamento, proxy de destino e mapa de URLs num projeto de serviço, e serviço de back-end noutro projeto de serviço

Embora esta secção use um ambiente de VPC partilhada para configurar uma implementação entre projetos, não é necessário um ambiente de VPC partilhada. Para os balanceadores de carga de aplicações externos globais, o front-end do balanceador de carga pode fazer referência a serviços de back-end ou contentores de back-end de qualquer projeto na mesma organização.

Requisitos de configuração

Se ainda não o fez, tem de concluir todos os passos pré-requisitos para configurar a VPC partilhada e configurar a rede, as sub-redes e as regras de firewall necessárias para este exemplo. Para ver instruções, consulte as secções seguintes no início desta página:

Nesta configuração, a regra de encaminhamento, o proxy de destino e o mapa de URLs estão localizados num projeto de serviço, e o serviço de back-end e os back-ends estão localizados noutro projeto de serviço.

  1. No projeto de serviço B, vai configurar os seguintes recursos de back-end:
    • Back-end do grupo de instâncias geridas
    • Verificação de funcionamento
    • Serviço de back-end global
  2. No projeto de serviço A, vai configurar os seguintes recursos de front-end:
    • Endereço IP
    • Certificado SSL
    • Mapa do URL
    • Proxy de destino
    • Regra de encaminhamento

A figura seguinte representa um Application Load Balancer externo global no qual o serviço de back-end do balanceador de carga num projeto de serviço é referenciado por um mapa de URLs noutro projeto de serviço.

Componentes de front-end e back-end do balanceador de carga em diferentes projetos de serviço
Figura 2. Interface e back-end do balanceador de carga em diferentes projetos de serviço

A referência de serviços entre projetos com um Application Load Balancer externo global não requer que as instâncias de back-end façam parte da mesma rede VPC ou de uma rede VPC partilhada.

Neste exemplo, as VMs de back-end no projeto de serviço fazem parte da rede de VPC partilhada criada no projeto anfitrião. No entanto, também pode configurar uma rede de VPC autónoma (ou seja, uma rede de VPC não partilhada), juntamente com as regras de firewall necessárias, num projeto de serviço. Em seguida, pode criar instâncias de back-end (por exemplo, um grupo de instâncias) que fazem parte desta rede VPC autónoma. Depois de criar as instâncias de back-end, pode seguir os passos restantes, conforme ilustrado neste exemplo, para criar um serviço de back-end no projeto de serviço e associá-lo a um mapa de URLs noutro projeto de serviço através da referência de serviços entre projetos.

Configure os componentes de back-end do balanceador de carga no projeto de serviço B

Nesta secção, tem de configurar os seguintes recursos de back-end no projeto de serviço B:

  • Grupo de instâncias geridas
  • Verificação de funcionamento
  • Serviço de back-end global

Crie um back-end de grupo de instâncias geridas

O precursor da criação de um grupo de instâncias geridas é a criação de um modelo de instância, que é um recurso que pode usar para criar instâncias de máquinas virtuais (VMs). O tráfego dos clientes é equilibrado em carga para VMs num grupo de instâncias. O grupo de instâncias gerido fornece VMs que executam os servidores de back-end de um balanceador de carga de aplicações externo. Neste exemplo, os back-ends servem os seus próprios nomes de anfitrião.

Consola

Crie um modelo de instância

  1. Na Google Cloud consola, aceda à página Compute Engine Modelos de instâncias.

    Aceda a Modelos de instâncias

  2. Clique em Criar modelo de instância.

  3. Em Nome, introduza backend-template.

  4. Na secção Disco de arranque, certifique-se de que o disco de arranque está definido para uma imagem do Debian, como Debian GNU/Linux 12 (bookworm). Clique em Alterar para alterar a imagem, se necessário.

  5. Expanda a secção Opções avançadas.

  6. Expanda a secção Redes e, no campo Etiquetas de rede, introduza load-balanced-backend.

  7. Para Interfaces de rede, selecione Redes partilhadas comigo (do projeto do anfitrião: HOST_PROJECT_ID)).

  8. Na lista Sub-rede partilhada, selecione a sub-rede da rede lb-network.lb-backend-subnet

  9. Expanda a secção Gestão e, no campo Automatização, especifique o seguinte 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
    
  10. Clique em Criar.

Crie um grupo de instâncias geridas

  1. Na Google Cloud consola, aceda à página Compute Engine Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique em Criar grupo de instâncias.

  3. Nas opções, selecione Novo grupo de instâncias gerido (sem estado).

  4. Para o nome do grupo de instâncias, introduza lb-backend.

  5. Na lista Modelo de instância, selecione o modelo de instância backend-template que criou no passo anterior.

  6. Na secção Localização, selecione Zona única e introduza os seguintes valores:

    • Para Região, selecione us-west1.

    • Para Zona, selecione us-west1-a.

  7. Na secção Ajuste automático de escala, introduza os seguintes valores:

    • Para o Modo de dimensionamento automático, selecione Ativado: adicionar e remover instâncias do grupo.

    • Para Número mínimo de instâncias, selecione 2.

    • Para Número máximo de instâncias, selecione 3.

  8. Na secção Mapeamento de portas, clique em Adicionar porta e introduza os seguintes valores:

    • Em Nome da portabilidade, introduza http.

    • Em Número da porta, introduza 80.

  9. Clique em Criar.

gcloud

  1. Crie um modelo de instância:

    gcloud compute instance-templates create backend-template \
        --region=us-west1 \
        --network=projects/HOST_PROJECT_ID/global/networks/lb-network \
        --subnet=projects/HOST_PROJECT_ID/regions/us-west1/subnetworks/lb-backend-subnet \
        --tags=load-balanced-backend \
        --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' \
        --project=SERVICE_PROJECT_B_ID
    
  2. Crie um grupo de instâncias gerido e selecione o modelo de instância que criou no passo anterior:

    gcloud compute instance-groups managed create lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_B_ID
    
  3. Adicione uma porta com nome ao grupo de instâncias:

    gcloud compute instance-groups set-named-ports lb-backend \
        --named-ports=http:80 \
        --zone=us-west1-a \
        --project=SERVICE_PROJECT_B_ID
    

Crie uma verificação de funcionamento

As verificações de funcionamento são testes que confirmam a disponibilidade dos back-ends. Crie uma verificação de funcionamento que use o protocolo HTTP e sondas na porta 80. Mais tarde, vai anexar esta verificação de estado ao serviço de back-end referenciado pelo balanceador de carga.

Consola

  1. Na Google Cloud consola, aceda à página Compute Engine Verificações de estado.

    Aceda às verificações de saúde

  2. Para o nome da verificação de estado, introduza lb-health-check.

  3. Defina o protocolo como HTTP.

  4. Clique em Criar.

gcloud

Crie uma verificação de funcionamento de HTTP.

gcloud compute health-checks create http lb-health-check \
  --use-serving-port \
  --project=SERVICE_PROJECT_B_ID

Crie um serviço de back-end global

Crie um serviço de back-end global para distribuir o tráfego entre back-ends. Como parte deste passo, tem de atribuir a verificação de estado que criou ao serviço de back-end e adicionar o grupo de instâncias como back-end ao serviço de back-end.

Consola

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Aceda à secção Back-ends.

  3. Clique em Criar serviço de back-end.

  4. Para o Serviço de back-end global, clique no botão Criar junto ao mesmo.

  5. Para o nome do serviço de back-end, introduza cross-ref-backend-service.

  6. Para Tipo de back-end, selecione Grupo de instâncias.

  7. Defina o Protocolo como HTTP.

  8. No campo Porta com nome, introduza http. Este é o mesmo nome da porta que introduziu ao criar o grupo de instâncias gerido.

  9. Para adicionar serviços de back-end ao serviço de back-end, faça o seguinte:

    1. Na secção Back-ends, defina o Grupo de instâncias como lb-backend, que é o grupo de instâncias gerido que criou num passo anterior.

    2. Para Transferir números, introduza 80.

    3. Para adicionar o back-end, clique em Concluído.

  10. Para adicionar uma verificação de funcionamento, na lista Verificação de funcionamento, selecione lb-health-check, que é a verificação de funcionamento que criou anteriormente.

  11. Opcional: na secção Adicionar autorizações, introduza os diretores do IAM de outros projetos (normalmente, um endereço de email) que tenham a função de administrador do equilibrador de carga de computação (roles/compute.loadBalancerAdmin) para que possam usar este serviço de back-end para equilibradores de carga nos respetivos projetos. Sem esta autorização, não pode usar referências de serviços entre projetos.

    Se não tiver autorização para definir políticas de controlo de acesso para serviços de back-end neste projeto, pode criar o serviço de back-end agora, e um utilizador autorizado pode realizar este passo mais tarde, conforme descrito na secção Conceda autorizações ao administrador do Compute Load Balancer para usar o serviço de back-end. Essa secção também descreve como conceder acesso a todos os serviços de back-end neste projeto, para que não tenha de conceder acesso sempre que criar um novo serviço de back-end.

  12. Para criar o serviço de back-end, clique em Criar.

gcloud

  1. Crie um serviço de back-end global para distribuir o tráfego entre back-ends:

    gcloud compute backend-services create cross-ref-backend-service \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=lb-health-check \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Adicione o seu grupo de instâncias como back-end ao serviço de back-end:

    gcloud compute backend-services add-backend cross-ref-backend-service \
        --instance-group=lb-backend \
        --instance-group-zone=us-west1-a \
        --global \
        --project=SERVICE_PROJECT_B_ID
    

Configure os componentes de front-end do balanceador de carga no projeto de serviço A

Nesta secção, tem de configurar os seguintes recursos de front-end no projeto de serviço A:

  • Endereço IP
  • Certificado SSL
  • Mapa do URL
  • Proxy de destino
  • Regra de encaminhamento

Reserve o endereço IP do balanceador de carga

Reserve um endereço IP externo estático global que possa ser atribuído à regra de encaminhamento do balanceador de carga.

Consola

  1. Na Google Cloud consola, aceda à página de endereços IP da VPC.

    Aceda a Endereços IP

  2. Clique em Reservar endereço IP estático externo.

  3. Em Nome, introduza cross-ref-ip-address.

  4. Defina o Nível de serviço de rede como Premium.

  5. Defina a versão do IP como IPv4.

  6. Defina o Tipo como Global.

  7. Clique em Reservar.

gcloud

Crie um endereço IP externo estático global.

gcloud compute addresses create cross-ref-ip-address \
    --ip-version=IPV4 \
    --network-tier=PREMIUM \
    --global \
    --project=SERVICE_PROJECT_A_ID

Configure um recurso de certificado SSL

Para um balanceador de carga que usa o protocolo HTTPS como protocolo de pedido e resposta, crie um recurso de certificado SSL, conforme descrito nos seguintes recursos:

Recomendamos a utilização de um certificado gerido pela Google.

Este exemplo pressupõe que criou um certificado SSL com o nome lb-ssl-cert. O certificado SSL está anexado ao proxy de destino que vai criar num dos passos seguintes.

Crie os componentes do frontend

Consola

Selecione o tipo de balanceador de carga

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga.

    Aceda a Balanceamento de carga

  2. Clique em Criar equilibrador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicações (HTTP/HTTPS) e clique em Seguinte.
  4. Para Público ou interno, selecione Público (externo) e clique em Seguinte.
  5. Para a Implementação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Seguinte.
  6. Para Geração do balanceador de carga, selecione Balanceador de carga de aplicações externo global e clique em Seguinte.
  7. Clique em Configurar.

Configuração básica

  1. Introduza o Nome do balanceador de carga: cross-ref-lb-shared-vpc.
  2. Mantenha a página aberta para continuar.

Configure a interface

Para HTTP:

  1. Clique em Configuração do front-end.
  2. Introduza um Nome para a regra de encaminhamento: cross-ref-http-forwarding-rule.
  3. Defina o Protocolo como HTTP.
  4. Selecione o endereço IP que criou em Reserve o endereço IP do equilibrador de carga, denominado cross-ref-ip-address.
  5. Defina a Porta para 80.
  6. Clique em Concluído.

Para HTTPS:

Se estiver a usar o protocolo HTTPS entre o cliente e o balanceador de carga, precisa de um ou mais recursos de certificado SSL para configurar o proxy. Para obter informações sobre como criar recursos de certificados SSL, consulte o artigo Certificados SSL. Os certificados geridos pela Google não são suportados com balanceadores de carga de aplicações externos regionais.

  1. Clique em Configuração do front-end.
  2. Introduza um Nome para a regra de encaminhamento: cross-ref-https-forwarding-rule.
  3. No campo Protocolo, selecione HTTPS (includes HTTP/2).
  4. Selecione o endereço IP que criou em Reserve o endereço IP do equilibrador de carga, denominado cross-ref-ip-address.
  5. Certifique-se de que a Porta está definida como 443 para permitir o tráfego HTTPS.
  6. Clique na lista Certificado.
    1. Se já tiver um recurso de certificado SSL autogerido que quer usar como certificado SSL principal, selecione-o no menu.
    2. Caso contrário, selecione Criar um novo certificado.
      1. Introduza um Nome para o certificado SSL.
      2. Nos campos adequados, carregue os seus ficheiros formatados em PEM:
        • Certificado de chave pública
        • Cadeia de certificados
        • Chave privada
      3. Clique em Criar.
  7. Para adicionar recursos de certificados além do recurso de certificado SSL principal:
    1. Clique em Adicionar certificado.
    2. Selecione um certificado na lista Certificados ou clique em Criar um novo certificado e siga as instruções anteriores.
  8. Clique em Concluído.

Configure o back-end

  1. Clique em Configuração de back-end.
  2. Clique em Serviços de back-end entre projetos.
  3. Para o ID do projeto, introduza o ID do projeto para o projeto de serviço B.
  4. Na lista Selecionar serviços de back-end, selecione os serviços de back-end do projeto de serviço B que quer usar. Para este exemplo, introduza cross-ref-backend-service.
  5. Clique em OK.

Configure as regras de encaminhamento

  • Clique em Regras de encaminhamento. Certifique-se de que o cross-ref-backend-service é o único serviço de back-end para qualquer anfitrião não correspondente e qualquer caminho não correspondente.

Para obter informações sobre a gestão de tráfego, consulte o artigo Configure a gestão de tráfego.

Reveja e finalize a configuração

  • Clique em Criar.

gcloud

  1. Opcional: antes de criar um balanceador de carga com serviços de back-end de referências cruzadas, descubra se os serviços de back-end aos quais quer fazer referência podem ser referenciados através de um mapa de URLs:

    gcloud compute backend-services list-usable \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Crie um mapa de URLs para encaminhar pedidos recebidos para o serviço de back-end:

    gcloud compute url-maps create cross-ref-url-map \
        --default-service=projects/SERVICE_PROJECT_B_ID/global/backendServices/cross-ref-backend-service \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  3. Crie um proxy de destino.

    Para o tráfego HTTP, crie um proxy HTTP de destino para encaminhar pedidos para o mapa de URLs:

    gcloud compute target-http-proxies create cross-ref-http-proxy \
        --url-map=cross-ref-url-map \
        --global \
        --project=SERVICE_PROJECT_A_ID
    

    Para o tráfego HTTPS, crie um proxy HTTPS de destino para encaminhar pedidos para o mapa de URLs. O proxy é a parte do equilibrador de carga que contém o certificado SSL para um equilibrador de carga HTTPS. Por isso, também carrega o seu certificado SSL neste passo:

    gcloud compute target-https-proxies create cross-ref-https-proxy \
        --url-map=cross-ref-url-map \
        --ssl-certificates=lb-ssl-cert \
        --global \
        --project=SERVICE_PROJECT_A_ID
    
  4. Crie uma regra de encaminhamento.

    Para o tráfego HTTP, crie uma regra de encaminhamento global para encaminhar pedidos recebidos para o proxy de destino:

    gcloud compute forwarding-rules create cross-ref-http-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=cross-ref-ip-address \
        --global \
        --target-http-proxy=cross-ref-http-proxy \
        --ports=80 \
        --project=SERVICE_PROJECT_A_ID
    

    Para o tráfego HTTPS, crie uma regra de encaminhamento global para encaminhar pedidos recebidos para o proxy de destino:

    gcloud compute forwarding-rules create cross-ref-https-forwarding-rule \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --address=cross-ref-ip-address \
        --global \
        --target-https-proxy=cross-ref-https-proxy \
        --ports=443 \
        --project=SERVICE_PROJECT_A_ID
    

Conceda autorizações ao administrador do balanceador de carga do Compute para usar o serviço de back-end

Se quiser que os balanceadores de carga referenciem serviços de back-end noutros projetos de serviço, o administrador do balanceador de carga tem de ter a autorização compute.backendServices.use. Para conceder esta autorização, pode usar a função de IAM predefinida denominada Utilizador dos serviços de equilibrador de carga de computação (roles/compute.loadBalancerServiceUser). Esta função tem de ser concedida pelo administrador do projeto de serviço e pode ser aplicada ao nível do projeto ou ao nível do serviço de back-end individual.

Este passo não é obrigatório se já tiver concedido as autorizações necessárias ao nível do serviço de back-end durante a criação do serviço de back-end. Pode ignorar esta secção ou continuar a ler para saber como conceder acesso a todos os serviços de back-end neste projeto, para não ter de conceder acesso sempre que criar um novo serviço de back-end.

Neste exemplo, um administrador do projeto de serviço B tem de executar um dos seguintes comandos para conceder a autorização compute.backendServices.use a um administrador do equilibrador de carga do projeto de serviço A. Isto pode ser feito ao nível do projeto (para todos os serviços de back-end no projeto) ou por serviço de back-end.

Consola

Autorizações ao nível do projeto

Siga os passos abaixo para conceder autorizações a todos os serviços de back-end no seu projeto.

Precisa das autorizações compute.backendServices.setIamPolicy e resourcemanager.projects.setIamPolicy para concluir este passo.

  1. Na Google Cloud consola, aceda à página IAM.

    Aceda ao IAM

  2. Selecione o seu projeto.

  3. Clique em Conceder acesso.

  4. No campo Novos membros, introduza o endereço de email do membro ou outro identificador.

  5. Na lista Selecionar uma função, selecione Utilizador dos serviços do Compute Load Balancer.

  6. Opcional: adicione uma condição à função.

  7. Clique em Guardar.

Autorizações ao nível do recurso para serviços de back-end individuais

Siga os passos abaixo para conceder autorizações a serviços de back-end individuais no seu projeto.

Precisa da autorização compute.backendServices.setIamPolicy para concluir este passo.

  1. Na Google Cloud consola, aceda à página Back-ends.

    Aceda a Back-ends

  2. Na lista de back-ends, selecione o serviço de back-end ao qual quer conceder acesso e clique em Autorizações.

  3. Clique em Adicionar principal.

  4. No campo Novos membros, introduza o endereço de email do membro ou outro identificador.

  5. Na lista Selecionar uma função, selecione Utilizador dos serviços do Compute Load Balancer.

  6. Clique em Guardar.

gcloud

Autorizações ao nível do projeto

Siga os passos abaixo para conceder autorizações a todos os serviços de back-end no seu projeto.

Precisa das autorizações compute.backendServices.setIamPolicy e resourcemanager.projects.setIamPolicy para concluir este passo.

gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser"

Autorizações ao nível do recurso para serviços de back-end individuais

Ao nível do serviço de back-end, os administradores do projeto de serviço podem usar qualquer um dos seguintes comandos para conceder a função de utilizador dos serviços de equilibrador de carga do Compute (roles/compute.loadBalancerServiceUser).

Precisa da autorização compute.backendServices.setIamPolicy para concluir este passo.

gcloud projects add-iam-policy-binding SERVICE_PROJECT_B_ID \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser" \
    --condition='expression=resource.name=="projects/SERVICE_PROJECT_B_ID/regions/us-west1/backend-services/BACKEND_SERVICE_NAME",title=Shared VPC condition'

ou

gcloud compute backend-services add-iam-policy-binding BACKEND_SERVICE_NAME \
    --member="user:LOAD_BALANCER_ADMIN" \
    --role="roles/compute.loadBalancerServiceUser" \
    --project=SERVICE_PROJECT_B_ID \
    --region=us-west1

Para usar estes comandos, substitua LOAD_BALANCER_ADMIN pelo principal do utilizador. Por exemplo, test-user@gmail.com.

Também pode configurar autorizações da IAM para que se apliquem apenas a um subconjunto de serviços de back-end regionais através de condições e da especificação de atributos de condições.

Teste o balanceador de carga

A configuração do equilibrador de carga pode demorar vários minutos. Quando o serviço de balanceamento de carga está em execução, pode enviar tráfego para a regra de encaminhamento no projeto de serviço A e ver o tráfego disperso para diferentes instâncias de VMs no projeto de serviço B.

Consola

  1. Na Google Cloud consola, aceda à página Equilíbrio de carga no projeto de serviço A.

    Aceda a Balanceamento de carga

  2. Clique no balanceador de carga que acabou de criar.

  3. Tome nota do endereço IP do balanceador de carga. Este endereço IP é denominado LB_IP_ADDRESS nos passos seguintes.

  4. Pode testar o equilibrador de carga direcionando o navegador de Internet para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do equilibrador de carga.

  5. Se usou um certificado autoassinado para testar o HTTPS, o navegador apresenta um aviso. Tem de instruir explicitamente o navegador para aceitar um certificado autossinado.

  6. O navegador deve renderizar uma página com conteúdo que mostre o nome da instância que publicou a página (por exemplo, Page served from: lb-backend-example-xxxx). Se o navegador não renderizar esta página, reveja as definições de configuração neste guia.

gcloud

Tome nota do endereço IP que foi reservado:

gcloud compute addresses describe IP_ADDRESS_NAME \
    --format="get(address)" \
    --global
    --project=SERVICE_PROJECT_A_ID

Pode testar o equilibrador de carga direcionando o navegador de Internet para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do equilibrador de carga.

Se usou um certificado autoassinado para testar o HTTPS, o navegador apresenta um aviso. Tem de instruir explicitamente o navegador para aceitar um certificado autossinado.

O navegador deve renderizar uma página com informações mínimas sobre a instância de back-end. Se o navegador não renderizar esta página, reveja as definições de configuração neste guia.

O que se segue?