Configurar um balanceador de carga de aplicativo externo global com a VPC compartilhada

Neste documento, você verá duas configurações de amostra para configurar um balanceador de carga de aplicativo externo global com back-ends de grupos de instâncias de VM em um ambiente de VPC compartilhada:

  • No primeiro exemplo, os componentes de front-end e back-end do balanceador de carga são criados em um projeto de serviço.
  • No segundo exemplo, os componentes de front-end do balanceador de carga e o mapa de URL são criados em um projeto de serviço, enquanto o back-end e o serviço de back-end do balanceador de carga são criados em um serviço diferente. projeto. Esse tipo de implantação, em que o mapa de URL em um projeto faz referência a um serviço de back-end em outro, é chamado de referência de serviços entre projetos.

Os dois exemplos exigem a mesma configuração inicial para conceder permissões, configurar a rede e a sub-rede no projeto host e definir VPC compartilhada antes de começar a criar balanceadores de carga.

Essas não são as únicas configurações de VPC compartilhada compatíveis com o balanceador de carga de aplicativo regional externo. Para outras arquiteturas de VPC compartilhada válidas, consulte Arquiteturas de VPC compartilhada.

Se você não quiser usar uma rede VPC compartilhada, consulte Configurar um balanceador de carga de aplicativo externo global com back-ends de grupos de instâncias de VM.

Antes de começar

Permissões necessárias

A configuração de um balanceador de carga em uma rede VPC compartilhada requer algumas configurações e provisionamento iniciais de um administrador. Após a configuração inicial, o proprietário de um projeto de serviço pode realizar uma das seguintes ações:

  • Implantar todos os componentes e os back-ends do balanceador de carga em um projeto de serviço.
  • Implante os componentes do back-end do balanceador de carga (serviço de back-end e back-ends) em projetos de serviço que podem ser referenciados por um mapa de URL em outro serviço ou projeto de host.

Esta seção resume as permissões necessárias para seguir este guia para configurar um balanceador de carga em uma rede VPC compartilhada.

Configurar VPC compartilhada

Os seguintes papéis são necessários para as seguintes tarefas:

  1. Executar tarefas administrativas únicas, como configurar a VPC compartilhada e ativar um projeto host.
  2. Executar tarefas administrativas que precisam ser repetidas sempre que você quiser integrar um novo projeto de serviço. Isso inclui anexar o projeto de serviço, provisionar e configurar recursos de rede e conceder acesso ao administrador do projeto de serviço.

Essas tarefas precisam ser executadas no projeto host da VPC compartilhada. Recomendamos que o administrador da VPC compartilhada também seja o proprietário do projeto host da VPC compartilhada. Isso concede automaticamente os papéis de administrador de rede e administrador de segurança.

Tarefa Papel necessário
Configurar a VPC compartilhada, ativar o projeto host e conceder acesso aos administradores do projeto de serviço Administrador de VPC compartilhada
Criar sub-redes no projeto host da VPC compartilhada e conceder acesso aos administradores do projeto de serviço Administrador de rede
Adicionar e remover regras de firewall Administrador de segurança

Depois que as sub-redes são provisionadas, o proprietário do projeto de host precisa conceder o papel do usuário de rede no projeto de hosta qualquer pessoa (normalmente desenvolvedores, contas de serviço ou administradores do projeto de serviço) que precisa usar esses recursos.

Tarefa Papel necessário
Usar redes e sub-redes VPC pertencentes ao projeto host Usuário de rede

Esse papel pode ser concedido no nível do projeto ou para sub-redes individuais. Recomendamos que você conceda o papel em sub-redes individuais. Conceder o papel no projeto fornece acesso a todas as sub-redes atuais e futuras na VPC do projeto host.

Implantar balanceador de carga e back-ends

Os administradores do projeto de serviço precisam dos seguintes papéis no projeto de serviço para criar recursos e back-ends de balanceamento de carga. Essas permissões são concedidas automaticamente ao proprietário ou editor do projeto de serviço.

Papéis concedidos no projeto de serviço
Tarefa Papel necessário
Criar componentes do balanceador de carga Administrador de rede
Criar instâncias Administrador de instâncias
Criar e modificar certificados SSL Administrador de segurança

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

Caso seu balanceador de carga precise fazer referência a serviços de back-end de outros projetos de serviço, também conhecidos como referência de serviço entre projetos, os administradores do balanceador de carga precisarão do seguinte papel no Projeto de serviço em que o back-end é criado.

Papéis concedidos no projeto de serviço
Tarefa Papel necessário
Permissões para usar serviços em outros projetos Usuário de serviços do balanceador de carga

Esse papel pode ser concedido no nível do projeto ou para serviços de back-end individuais. Veja instruções sobre como conceder esse papel no exemplo de referência de serviço entre projetos nesta página.

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

Pré-requisitos

Nesta seção, você precisa executar as seguintes etapas:

  1. Como configurar a rede e as sub-redes no projeto host.
  2. Configure a VPC compartilhada no projeto host.

As etapas nesta seção não precisam ser realizadas sempre que você quiser criar um novo balanceador de carga. No entanto, é preciso garantir que você tenha acesso aos recursos descritos aqui antes de continuar criando o balanceador de carga.

Como configurar a rede e as sub-redes no projeto host

Você precisa de uma rede VPC compartilhada com uma sub-rede para os back-ends do balanceador de carga.

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

  • Rede: o nome da rede é lb-network.

  • Sub-rede para back-ends do balanceador de carga. uma sub-rede chamada lb-backend-subnet na região us-west1 usa 10.1.2.0/24 para o intervalo de IP primário.

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

Essa etapa não precisa ser realizada sempre que você quiser criar um novo balanceador de carga. Você só precisa garantir que o projeto de serviço tenha acesso a uma sub-rede na rede VPC compartilhada.

Todas as etapas nesta seção precisam ser realizadas no projeto host.

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.
  3. Em Nome, insira lb-network.
  4. Na seção Sub-redes:

    1. Defina o Modo de criação da sub-rede como Personalizado.
    2. Na seção Nova sub-rede, insira as seguintes informações:

      • Name: 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, região us-west1:

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

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

Os administradores de projetos de serviço exigem acesso à sub-rede lb-backend-subnet para que possam provisionar os back-ends do balanceador de carga.

Um administrador de VPC compartilhada precisa conceder acesso à sub-rede de back-end aos administradores (ou desenvolvedores que implantarão recursos e back-ends que usam a sub-rede) do projeto de serviço. Veja instruções em Administradores de projetos de serviço para algumas sub-redes.

Configurar regras de firewall no projeto host

Este exemplo usa as seguintes regras de firewall:
  • fw-allow-health-check. uma regra de entrada, aplicável às instâncias cuja carga está sendo balanceada, que permite todo o tráfego TCP dos sistemas de verificação de integridade do Google Cloud (em 130.211.0.0/22 e 35.191.0.0/16). Este exemplo usa a tag de destino load-balanced-backend para identificar as instâncias às quais ela deve se aplicar.
Sem essa regra de firewall, a regra padrão de negação de entrada bloqueia a entrada tráfego para as instâncias de back-end.

Todas as etapas nesta seção precisam ser realizadas no projeto host.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

  2. Clique em Criar regra de firewall para criar a regra que permite as verificações de integridade do Google Cloud:
    • Name: fw-allow-health-check
    • Rede: lb-network
    • Direção do tráfego: entrada
    • Ação na correspondência: permitir
    • Destinos: tags de destino especificadas
    • Tags de meta: load-balanced-backend
    • Filtro de origem: intervalos IPv4
    • Intervalos IPv4 de origem: 130.211.0.0/22 e 35.191.0.0/16
    • Protocolos e portas:
      • Escolha Protocolos e portas especificados.
      • Marque TCP e insira 80 como o número da porta.
      • Como prática recomendada, limite esta regra somente aos protocolos e portas que correspondem aos usados por sua verificação de integridade. Se você usar tcp:80 para o protocolo e a porta, o Google Cloud poderá usar HTTP na porta 80 para entrar em contato com suas VMs, mas não poderá usar HTTPS na porta 443 para entrar em contato com elas.

  3. Clique em Criar.

gcloud

  1. Crie a regra de firewall fw-allow-health-check para permitir verificações de integridade do Google Cloud. Neste exemplo, todo o tráfego TCP de sondagens de verificação de integridade é permitido. No entanto, é possível configurar um conjunto mais restrito de portas para atender às 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
    

Configurar a VPC compartilhada no projeto host

Esta etapa envolve ativar um projeto host da VPC compartilhada, compartilhar sub-redes do projeto host e anexar projetos de serviço ao projeto host para que os projetos de serviço possam usar a rede VPC compartilhada. Para configurar a VPC compartilhada no projeto host, consulte as seguintes páginas:

O restante das instruções pressupõe que você já configurou a VPC compartilhada. Isso inclui a configuração de políticas do Cloud IAM para sua organização e a designação dos projetos host e de serviço.

Não continue até configurar a VPC compartilhada e ativar os projetos host e de serviço.

Depois de concluir as etapas definidas nesta seção de pré-requisitos, você poderá seguir uma das seguintes configurações:

Configurar um balanceador de carga no projeto de serviço

Depois de configurar a rede VPC no projeto host e configurar a VPC compartilhada, é possível voltar sua atenção para o projeto de serviço, em que você precisa criar todos os componentes de balanceamento de carga (serviço de back-end), mapa de URL, proxy de destino e regra de encaminhamento) e os back-ends.

Esta seção pressupõe que você executou as etapas de pré-requisito descritas na seção anterior no projeto host. Nesta seção, os componentes de front-end e back-end do balanceador de carga, além dos back-ends, são criados em um projeto de serviço.

A figura a seguir descreve os componentes de um balanceador de carga de aplicativo externo global em um projeto de serviço, que é anexado ao projeto host em uma rede VPC compartilhada.

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

Essas etapas devem ser realizadas pelo administrador do projeto de serviço (ou um desenvolvedor que opere nele) e não exigem o envolvimento do administrador do projeto host. As etapas nesta seção são semelhantes às etapas padrão para configurar um balanceador de carga de aplicativo externo global.

No exemplo desta página, é definido explicitamente um endereço IP externo reservado para a regra de encaminhamento do balanceador de carga de aplicativo externo regional, em vez de um endereço IP externo temporário ser alocado. Como prática recomendada, reserve endereços IP para regras de encaminhamento.

Criar um back-end de grupo gerenciado de instâncias

O precursor da criação de um grupo de instâncias gerenciadas é a criação de um modelo de instância, que é um recurso que pode ser usado para criar instâncias de máquina virtual (VM, na sigla em inglês). O tráfego dos clientes é balanceado por carga para VMs em um grupo de instâncias. O grupo de instâncias gerenciadas fornece VMs que executam os servidores de back-end de um balanceador de carga de aplicativo externo. Neste tutorial, os back-ends disponibilizam seus próprios nomes de host.

Console

Criar um modelo de instância

  1. No console do Google Cloud, acesse a página Modelos de instância do Compute Engine.

    Acesse "Modelos de instância"

  2. Clique em Criar modelo de instância.

  3. Em Nome, insira backend-template.

  4. Na seção Disco de inicialização, verifique se o disco está definido como uma imagem do Debian, como Debian GNU/Linux 12 (bookworm). Clique em Alterar para mudar a imagem se necessário.

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

  6. Abra a seção Rede e, no campo Tags de rede, insira load-balanced-backend.

  7. Em Interfaces de rede, selecione Redes compartilhadas comigo (do projeto host: HOST_PROJECT_ID).

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

  9. Abra a seção Gerenciamento e, no campo Automação, especifique o seguinte script de inicialização:

     #! /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.

Criar um grupo gerenciado de instâncias

  1. No console do Google Cloud, acesse a página Grupos de instâncias do Compute Engine.

    Acesse grupo de instâncias

  2. Selecione Criar grupo de instâncias.

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

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

  5. Na lista Modelo de instância, selecione o modelo de instância backend-template que você criou na etapa anterior.

  6. Na seção Local, selecione Única zona e insira os seguintes valores:

    • Em Região, selecione us-west1.

    • Em Zona, selecione us-west1-a.

  7. Na seção Escalonamento automático, insira os seguintes valores:

    • Em Modo de escalonamento automático, selecione Ativado: adicionar e remover instâncias para o grupo.

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

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

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

    • Em Nome da porta, insira http.

    • Em Número da porta, digite 80.

  9. Clique em Criar.

gcloud

  1. Criar 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 gerenciadas e selecione o modelo de instância que você criou na etapa anterior:

    gcloud compute instance-groups managed create lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_ID
    
  3. Como adicionar uma porta nomeada 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
    

Criar uma verificação de integridade

As verificações de integridade são testes que confirmam a disponibilidade dos back-ends. Crie uma verificação de integridade que use o protocolo HTTP e faça sondagens na porta 80. Posteriormente, você anexará essa verificação de integridade ao serviço de back-end referenciado pelo balanceador de carga.

Console

  1. No console do Google Cloud, acesse a página Verificações de integridade do Compute Engine.

    Acessar "Verificações de integridade"

  2. Para o nome da verificação de integridade, insira lb-health-check.

  3. Defina o protocolo como HTTP.

  4. Clique em Criar.

gcloud

Crie uma verificação de integridade 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.

Console

  1. No console do Google Cloud, acesse a página Endereços IP da VPC.

    Acessar endereços IP

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

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

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

  5. Defina Versão IP como IPv4.

  6. Configure 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

Configurar um recurso de certificado SSL

Para um balanceador de carga que usa HTTPS como o protocolo de solicitação e resposta, crie um recurso de certificado SSL, conforme descrito nos recursos a seguir:

Recomendamos o uso de um certificado gerenciado pelo Google.

Neste exemplo, presumimos que você tenha criado um certificado SSL chamado lb-ssl-cert. O certificado SSL é anexado ao proxy de destino que você criará em uma das etapas a seguir.

Configurar o balanceador de carga

Nesta seção, mostramos como criar os seguintes recursos para um balanceador de carga de aplicativo externo global:

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

Neste exemplo, é possível usar HTTP ou HTTPS como protocolo de solicitação e resposta entre o cliente e o balanceador de carga. Para HTTPS, você precisa de um recurso de certificado SSL para configurar o proxy. Recomendamos o uso de um certificado gerenciado pelo Google.

Console

Iniciar a configuração

  1. No console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
  4. Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
  5. Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Próxima.
  6. Em Geração do balanceador de carga, selecione Balanceador de carga de aplicativo externo global e clique em Próxima.
  7. Clique em Configurar.

Configuração básica

  1. No nome do balanceador de carga, insira l7-xlb-shared-vpc.

Configurar o front-end do balanceador de carga

Para tráfego HTTP:

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

  2. No nome do balanceador de carga, digite http-fw-rule.

  3. Em Protocolo, selecione HTTP.

  4. Configure Versão IP como IPv4.

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

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

  7. Para concluir a configuração do front-end, clique em Concluído .

  8. Verifique se há uma marca de seleção azul ao lado de Configuração do front-end antes de continuar.

Para tráfego HTTPS:

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

  2. No nome do balanceador de carga, digite https-fw-rule.

  3. Em Protocolo, selecione HTTPS.

  4. Configure Versão IP como IPv4.

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

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

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

  8. Para concluir a configuração do front-end, clique em Concluído .

  9. Verifique se há uma marca de seleção azul ao lado de Configuração do front-end antes de continuar.

Configure o back-end

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

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

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

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

  5. Defina Protocolo como HTTP.

  6. No campo Porta nomeada, insira http. Esse é o mesmo nome de porta inserido ao criar o grupo gerenciado de instâncias.

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

    1. Na seção Back-ends, defina o Grupo de instâncias como lb-backend, que é o grupo de instâncias gerenciadas criado em uma etapa anterior.

    2. Em Números de portas, insira 80.

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

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

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

  10. Verifique se há uma marca de seleção azul ao lado de Configuração do back-end antes de continuar.

Configurar as regras de roteamento

  • Clique em Regras de roteamento. Verifique se lb-backend-service é o serviço de back-end padrão para qualquer host e caminho sem correspondência.

Saiba mais sobre gerenciamento de tráfego em Como configurar o gerenciamento de tráfego.

Revise e finalize a configuração

  1. Clique em Analisar e finalizar.

  2. Revise o Front-end e o Back-end do balanceador de carga para garantir que ele esteja configurado como desejado.

  3. Clique em Criar e aguarde o balanceador de carga ser criado.

gcloud

  1. Crie um serviço de back-end para distribuir o tráfego entre os 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 seu grupo de instâncias como back-end do 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 URL para encaminhar solicitações recebidas 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. Criar um proxy de destino.

    Para tráfego HTTP, crie um proxy HTTP de destino para encaminhar solicitações ao mapa de URL:

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

    Para tráfego HTTPS, crie um proxy HTTPS de destino para encaminhar solicitações ao mapa de URL. O proxy é a parte do balanceador de carga que armazena o certificado SSL de um balanceador de carga HTTPS. Portanto, nesta etapa, também é possível carregar o certificado SSL.

    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 as solicitações recebidas 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 as solicitações recebidas 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
    

Testar o balanceador de carga

Agora que o serviço de balanceamento de carga está em execução, é possível enviar o tráfego para a regra de encaminhamento e observar como ele será distribuído em várias instâncias.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

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

  3. Anote o endereço IP do balanceador de carga. Esse endereço IP é chamado de LB_IP_ADDRESS nas etapas a seguir.

  4. Na seção Back-end, confirme se as VMs estão íntegras.

    A coluna Íntegra precisa estar preenchida, indicando que as VMs estão íntegras. Por exemplo, se duas instâncias forem criadas, você verá uma mensagem indicando 2 of 2 com uma marca de seleção ao lado dele. Se não estiver assim, tente atualizar a página. Pode levar alguns instantes para o Console do Google Cloud indicar que as VMs estão íntegras. Se os back-ends não forem exibidos depois de alguns minutos, analise a configuração do firewall e a tag de rede atribuída às suas VMs de back-end.

  5. Depois que o console do Google Cloud mostrar que as instâncias de back-end estão íntegras, teste o balanceador de carga apontando o navegador da Web para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do balanceador de carga.

  6. Caso você tenha usado um certificado autoassinado durante o teste de HTTPS, o navegador exibirá um aviso. Você precisa permitir que o navegador aceite um certificado autoassinado.

  7. Seu navegador deve renderizar uma página que mostre o nome da instância que a exibiu e a zona (por exemplo, Page served from: lb-backend-example-xxxx). Caso seu navegador não renderize essa página, revise as configuração mostradas neste guia.

gcloud

Anote o endereço IP que foi reservado:

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

Para testar o balanceador de carga, aponte o navegador da Web para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do balanceador de carga.

Caso você tenha usado um certificado autoassinado durante o teste de HTTPS, o navegador exibirá um aviso. Você precisa permitir que o navegador aceite um certificado autoassinado.

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

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

Esta seção mostra como configurar um balanceador de carga com um serviço de back-end entre projetos em um ambiente de VPC compartilhada.

Antes de começar

O exemplo anterior nesta página mostra como configurar uma implantação de VPC compartilhada em que todos os componentes do balanceador de carga e os back-ends dele são criados no projeto de serviço. O balanceamento de carga de aplicativo externo global também permite configurar implantações de VPC compartilhada em que um mapa de URL em um projeto host 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 compartilhada.

Use as etapas desta seção como referência para configurar qualquer uma das combinações compatíveis listadas aqui:

  • Regra de encaminhamento, proxy de destino e mapa de URL no projeto host, com serviço de back-end em um projeto de serviço.
  • Regra de encaminhamento, proxy de destino e mapa de URL em um projeto de serviço, com serviço de back-end em outro projeto de serviço.

Embora esta seção use um ambiente de VPC compartilhada para configurar uma implantação entre projetos, esse ambiente não é obrigatório. Para balanceadores de carga de aplicativo externos globais, o front-end do balanceador de carga pode referenciar serviços de back-end ou buckets de back-end de qualquer projeto na mesma organização.

Requisitos de configuração

Se você ainda não tiver feito isso, conclua todas as etapas de pré-requisito para configurar a VPC compartilhada e configurar a rede, as sub-redes e as regras de firewall necessárias para este exemplo. Para instruções, consulte as seguintes seções no início desta página:

Nesta configuração, a regra de encaminhamento, o proxy de destino e o mapa de URL estão localizados em um projeto de serviço, e os serviços de back-end e back-ends estão localizados em outro projeto de serviço.

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

A figura a seguir descreve um balanceador de carga de aplicativo externo global em que o serviço de back-end do balanceador de carga em um projeto de serviço é referenciado por um mapa de URL em outro projeto de serviço.

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

O serviço entre projetos que faz referência a um balanceador de carga de aplicativo externo global não exige que as instâncias de back-end façam parte da mesma rede VPC ou de uma rede VPC compartilhada.

Neste exemplo, as VMs de back-end no projeto de serviço fazem parte da rede VPC compartilhada criada no projeto host. No entanto, também é possível configurar uma rede VPC autônoma (ou seja, uma rede VPC não compartilhada) com as regras de firewall necessárias em um projeto de serviço. Em seguida, crie instâncias de back-end (por exemplo, um grupo de instâncias) que façam parte dessa rede VPC independente. Depois de criar as instâncias de back-end, siga as etapas restantes, conforme descrito neste exemplo, para criar um serviço de back-end no projeto de serviço e conectá-lo a um mapa de URL em outro projeto de serviço. usando a referência de serviços entre projetos.

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

Nesta seção, você precisa configurar os seguintes recursos de back-end no projeto de serviço B:

  • Grupo gerenciado de instâncias
  • Verificação de integridade
  • Serviço de back-end global

Criar um back-end de grupo gerenciado de instâncias

O precursor da criação de um grupo de instâncias gerenciadas é a criação de um modelo de instância, que é um recurso que pode ser usado para criar instâncias de máquina virtual (VM, na sigla em inglês). O tráfego dos clientes é balanceado por carga para VMs em um grupo de instâncias. O grupo de instâncias gerenciadas fornece VMs que executam os servidores de back-end de um balanceador de carga de aplicativo externo. Neste tutorial, os back-ends disponibilizam seus próprios nomes de host.

Console

Criar um modelo de instância

  1. No console do Google Cloud, acesse a página Modelos de instância do Compute Engine.

    Acesse "Modelos de instância"

  2. Clique em Criar modelo de instância.

  3. Em Nome, insira backend-template.

  4. Na seção Disco de inicialização, verifique se o disco está definido como uma imagem do Debian, como Debian GNU/Linux 12 (bookworm). Clique em Alterar para mudar a imagem se necessário.

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

  6. Abra a seção Rede e, no campo Tags de rede, insira load-balanced-backend.

  7. Em Interfaces de rede, selecione Redes compartilhadas comigo (do projeto host: HOST_PROJECT_ID)).

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

  9. Abra a seção Gerenciamento e, no campo Automação, especifique o seguinte script de inicialização:

      #! /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.

Criar um grupo gerenciado de instâncias

  1. No console do Google Cloud, acesse a página Grupos de instâncias do Compute Engine.

    Acesse grupo de instâncias

  2. Selecione Criar grupo de instâncias.

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

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

  5. Na lista Modelo de instância, selecione o modelo de instância backend-template que você criou na etapa anterior.

  6. Na seção Local, selecione Única zona e insira os seguintes valores:

    • Em Região, selecione us-west1.

    • Em Zona, selecione us-west1-a.

  7. Na seção Escalonamento automático, insira os seguintes valores:

    • Em Modo de escalonamento automático, selecione Ativado: adicionar e remover instâncias para o grupo.

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

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

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

    • Em Nome da porta, insira http.

    • Em Número da porta, digite 80.

  9. Clique em Criar.

gcloud

  1. Criar 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 gerenciadas e selecione o modelo de instância que você criou na etapa anterior:

    gcloud compute instance-groups managed create lb-backend \
        --zone=us-west1-a \
        --size=2 \
        --template=backend-template \
        --project=SERVICE_PROJECT_B_ID
    
  3. Como adicionar uma porta nomeada 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
    

Criar uma verificação de integridade

As verificações de integridade são testes que confirmam a disponibilidade dos back-ends. Crie uma verificação de integridade que use o protocolo HTTP e faça sondagens na porta 80. Posteriormente, você anexará essa verificação de integridade ao serviço de back-end referenciado pelo balanceador de carga.

Console

  1. No console do Google Cloud, acesse a página Verificações de integridade do Compute Engine.

    Acessar "Verificações de integridade"

  2. Para o nome da verificação de integridade, insira lb-health-check.

  3. Defina o protocolo como HTTP.

  4. Clique em Criar.

gcloud

Crie uma verificação de integridade 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 os back-ends. Como parte desta etapa, você precisa atribuir a verificação de integridade criada ao serviço de back-end e adicionar o grupo de instâncias como o back-end ao serviço de back-end.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Acesse a seção Back-ends.

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

  4. Em Serviço de back-end global, clique no botão Criar ao lado dele.

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

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

  7. Defina Protocolo como HTTP.

  8. No campo Porta nomeada, insira http. Esse é o mesmo nome de porta inserido ao criar o grupo gerenciado de instâncias.

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

    1. Na seção Back-ends, defina o Grupo de instâncias como lb-backend, que é o grupo de instâncias gerenciadas criado em uma etapa anterior.

    2. Em Números de portas, insira 80.

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

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

  11. Opcional: na seção Adicionar permissões, insira os principais do IAM de outros projetos (geralmente um endereço de e-mail) que tenham o papel de administrador do balanceador de carga do Compute (roles/compute.loadBalancerAdmin) para que eles possam usar esse serviço de back-end para balanceadores de carga nos próprios projetos. Sem essa permissão, não é possível usar a referência de serviços entre projetos.

    Se você não tiver permissão para definir políticas de controle de acesso para serviços de back-end neste projeto, ainda poderá criar o serviço de back-end agora, e um usuário autorizado poderá realizar essa etapa mais tarde, conforme descrito na seção Conceder permissões ao administrador do balanceador de carga do Compute para usar o serviço de back-end. Essa seção também descreve como conceder acesso a todos os serviços de back-end neste projeto para que você não precise 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 os 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 seu grupo de instâncias como back-end do 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
    

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

Nesta seção, você precisa configurar os seguintes recursos de front-end no projeto de serviço A:

  • Endereço IP
  • Certificado SSL
  • Mapa de 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.

Console

  1. No console do Google Cloud, acesse a página Endereços IP da VPC.

    Acessar endereços IP

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

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

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

  5. Defina Versão IP como IPv4.

  6. Configure 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

Configurar um recurso de certificado SSL

Para um balanceador de carga que usa HTTPS como o protocolo de solicitação e resposta, crie um recurso de certificado SSL, conforme descrito nos recursos a seguir:

Recomendamos o uso de um certificado gerenciado pelo Google.

Neste exemplo, presumimos que você tenha criado um certificado SSL chamado lb-ssl-cert. O certificado SSL é anexado ao proxy de destino que você criará em uma das etapas a seguir.

Criar os componentes de front-end

Console

Iniciar a configuração

  1. No console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Clique em Criar balanceador de carga.
  3. Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
  4. Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
  5. Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Próxima.
  6. Em Geração do balanceador de carga, selecione Balanceador de carga de aplicativo externo global e clique em Próxima.
  7. Clique em Configurar.

Configuração básica

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

Configure o front-end

Para HTTP:

  1. Clique em Configuração de front-end.
  2. Insira um nome para a regra de encaminhamento: cross-ref-http-forwarding-rule.
  3. Defina Protocolo como HTTP.
  4. Selecione o Endereço IP criado em Reservar o endereço IP do balanceador de carga, chamado cross-ref-ip-address.
  5. Defina a Porta como 80.
  6. Clique em Concluído.

Para HTTPS:

Se você usa o HTTPS entre o cliente e o balanceador de carga, um ou mais recursos de certificado SSL serão necessários para configurar o proxy. Saiba mais sobre como criar recursos de certificado SSL em Certificados SSL. Os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga externos de aplicativo regionais.

  1. Clique em Configuração de front-end.
  2. Insira 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 criado em Reservar o endereço IP do balanceador de carga, chamado cross-ref-ip-address.
  5. Certifique-se de que Porta esteja definida como 443, para permitir tráfego HTTPS.
  6. Clique na lista Certificate.
    1. Se você já tiver um recurso de certificado SSL autogerenciado que você quer usar como o certificado SSL principal, selecione-o no menu.
    2. Caso contrário, selecione Criar um novo certificado.
      1. Digite um Nome para o certificado SSL.
      2. Nos campos apropriados, faça o upload dos arquivos formatados em PEM:
        • Certificado de chave pública
        • Cadeia de certificados
        • Chave privada
      3. Clique em Criar.
  7. Para adicionar recursos de certificado além do certificado SSL principal, siga estas etapas:
    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. Em ID do projeto, insira 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 você quer usar. Para este exemplo, digite cross-ref-backend-service.
  5. Clique em OK.

Configurar as regras de roteamento

  • Clique em Regras de roteamento. Certifique-se de que cross-ref-backend-service seja o único serviço de back-end para qualquer host e qualquer caminho sem correspondência.

Saiba mais sobre o gerenciamento de tráfego em Configurar o gerenciamento de tráfego.

Revise 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ência cruzada, descubra se eles podem ser referenciados usando um mapa de URL:

    gcloud compute backend-services list-usable \
        --global \
        --project=SERVICE_PROJECT_B_ID
    
  2. Crie um mapa de URL para encaminhar solicitações recebidas 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. Criar um proxy de destino.

    Para tráfego HTTP, crie um proxy HTTP de destino para encaminhar solicitações ao mapa de URL:

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

    Para tráfego HTTPS, crie um proxy HTTPS de destino para encaminhar solicitações ao mapa de URL. O proxy é a parte do balanceador de carga que armazena o certificado SSL de um balanceador de carga HTTPS. Portanto, nesta etapa, também é possível carregar o certificado SSL:

    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 as solicitações recebidas 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 as solicitações recebidas 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
    

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

Se você quiser que os balanceadores de carga façam referência a serviços de back-end em outros projetos de serviço, o administrador do balanceador de carga precisará ter a permissão compute.backendServices.use. Para conceder essa permissão, use o papel predefinido do IAM chamado Usuário de serviços do balanceador de carga do Compute (roles/compute.loadBalancerServiceUser). Esse papel precisa ser concedido pelo Administrador do projeto de serviço e pode ser aplicado no nível do projeto ou no nível do serviço de back-end individual.

Esta etapa não será necessária se você já tiver concedido as permissões necessárias no nível do serviço de back-end ao criá-lo. Você pode pular esta seção ou continuar a ler para saber como conceder acesso a todos os serviços de back-end neste projeto para que não precise conceder acesso sempre que criar um novo back-end serviço.

Neste exemplo, um administrador de projeto de serviço do projeto B precisa executar um dos comandos a seguir para conceder a permissão compute.backendServices.use a um administrador do balanceador de carga do projeto de serviço A. Isso pode ser feito no nível do projeto (para todos os serviços de back-end no projeto) ou por serviço de back-end.

Console

Permissões de nível de projeto

Use as etapas a seguir para conceder permissões a todos os serviços de back-end no projeto.

Você precisa das permissões compute.backendServices.setIamPolicy e resourcemanager.projects.setIamPolicy para concluir esta etapa.

  1. No console do Google Cloud, abra a página IAM.

    Acessar IAM

  2. Selecione o projeto.

  3. Clique em Conceder acesso.

  4. No campo Novos principais, insira o endereço de e-mail do principal ou outro identificador.

  5. Na lista Selecionar um papel, selecione Usuário de serviços do balanceador de carga do Compute.

  6. Opcional: adicione uma condição ao papel.

  7. Clique em Salvar.

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

Use as etapas a seguir para conceder permissões a serviços de back-end individuais no projeto.

A permissão compute.backendServices.setIamPolicy é necessária para concluir esta etapa.

  1. No console do Google Cloud, abra a página Back-ends.

    Acessar back-ends

  2. Na lista de back-ends, selecione o serviço de back-end a que você quer conceder acesso e clique em Permissões.

  3. Clique em Adicionar principal.

  4. No campo Novos principais, insira o endereço de e-mail do principal ou outro identificador.

  5. Na lista Selecionar um papel, selecione Usuário de serviços do balanceador de carga do Compute.

  6. Clique em Salvar.

gcloud

Permissões de nível de projeto

Use as etapas a seguir para conceder permissões a todos os serviços de back-end no projeto.

Você precisa das permissões compute.backendServices.setIamPolicy e resourcemanager.projects.setIamPolicy para concluir esta etapa.

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

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

No nível de serviço de back-end, os administradores do projeto de serviço podem usar um dos comandos a seguir para conceder o papel de usuário de serviços do balanceador de carga do Compute (roles/compute.loadBalancerServiceUser).

A permissão compute.backendServices.setIamPolicy é necessária para concluir esta etapa.

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 esses comandos, substitua LOAD_BALANCER_ADMIN pelo principal do usuário, por exemplo, test-user@gmail.com.

Também é possível configurar permissões do IAM para que elas se apliquem apenas a um subconjunto de serviços de back-end regionais usando condições e especificando atributos de condição.

Testar o balanceador de carga

A configuração do balanceador de carga pode levar alguns minutos. Quando o serviço de balanceamento de carga está em execução, é possível enviar tráfego para a regra de encaminhamento no projeto de serviço A e observar a dispersão do tráfego para diferentes instâncias de VM em projeto de serviço B.

Console

  1. No Console do Google Cloud, acesse a página Balanceamento de carga no projeto de serviço A.

    Acessar o "Balanceamento de carga"

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

  3. Anote o endereço IP do balanceador de carga. Esse endereço IP é chamado de LB_IP_ADDRESS nas etapas a seguir.

  4. Para testar o balanceador de carga, aponte o navegador da Web para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do balanceador de carga.

  5. Caso você tenha usado um certificado autoassinado durante o teste de HTTPS, o navegador exibirá um aviso. Você precisa permitir que o navegador aceite um certificado autoassinado.

  6. Seu navegador deve renderizar uma página que mostre o nome da instância que a exibiu e a zona (por exemplo, Page served from: lb-backend-example-xxxx). Caso seu navegador não renderize essa página, revise as configuração mostradas neste guia.

gcloud

Anote o endereço IP que foi reservado:

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

Para testar o balanceador de carga, aponte o navegador da Web para https://LB_IP_ADDRESS (ou http://LB_IP_ADDRESS). Substitua LB_IP_ADDRESS pelo endereço IP do balanceador de carga.

Caso você tenha usado um certificado autoassinado durante o teste de HTTPS, o navegador exibirá um aviso. Você precisa permitir que o navegador aceite um certificado autoassinado.

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

A seguir