Acessar APIs regionais do Google por back-ends
Neste guia, você vai aprender a configurar um balanceador de carga de aplicativo interno com um back-end do Private Service Connect para acessar uma API regional do Google.
Para mais informações sobre back-ends, consulte Sobre back-ends.
Um balanceador de carga de aplicativo interno usado para o Private Service Connect pode ser acessado de redes VPC compartilhadas e de redes conectadas.
Papéis
O papel Administrador do balanceador de carga do Compute (roles/compute.loadBalancerAdmin
) contém a permissão necessária para executar as tarefas descritas neste guia.
Serviços compatíveis
Consulte a lista de endpoints de serviço regionais compatíveis.
Antes de começar
Ative a API Compute Engine no projeto.
Se você quiser registrar a regra de encaminhamento do balanceamento de carga com o Diretório de serviços, ative a API Service Directory no projeto. Para configurar o Diretório de serviços, crie a regra de encaminhamento usando a CLI do Google Cloud ou a API.
Crie uma sub-rede somente proxy se você ainda não tiver uma. É necessário que haja uma única sub-rede somente proxy na região e rede VPC em que você pretende criar o balanceador de carga de aplicativo interno. Essa sub-rede é usada por todos os balanceadores de carga de aplicativo internos nessa rede e região.
Se você ainda não os tem, crie uma chave privada e um certificado para seu domínio. Consulte a etapa 1 de usar certificados SSL autogerenciados. Você precisa de uma chave privada e um certificado para criar o proxy HTTPS de destino ao configurar o balanceador de carga.
Criar um grupo de endpoints da rede
Para cada serviço que você quer disponibilizar usando o balanceador de carga, crie um grupo de endpoints da rede (NEG, na sigla em inglês) do Private Service Connect.
Console
No console do Google Cloud, acesse a página Grupos de endpoints da rede.
Clique em Criar grupo de endpoints de rede.
Inserir um nome para o grupo de endpoints da rede.
Em Tipo de grupo de endpoints de rede, selecione Grupo de endpoints de rede (Private Service Connect).
Selecione a Região do grupo de endpoints da rede.
Selecione o Serviço de destino para o grupo de endpoints de rede.
Clique em Criar.
gcloud
gcloud compute network-endpoint-groups create NEG_NAME \ --network-endpoint-type=private-service-connect \ --psc-target-service=TARGET_SERVICE \ --region=REGION
Substitua:
NEG_NAME
: um nome para o grupo de endpoints da rede.TARGET_SERVICE
: o serviço de destino ao qual você quer se conectar. Consulte a lista de endpoints de serviço regional compatíveis.REGION
: a região em que o grupo de endpoints da rede será criado. A região precisa ser a mesma do serviço ao qual você quer se conectar.
Configurar o balanceador de carga
Todos os componentes do balanceador de carga precisam ser criados na mesma região que o grupo de endpoints da rede do Private Service Connect.
Console
Iniciar a configuração
No console do Google Cloud, acesse a página Balanceamento de carga.
- Clique em Criar balanceador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
- Em Voltado ao público ou interno, selecione Interno e clique em Próxima.
- Em Implantação entre regiões ou região única, selecione Melhor para cargas de trabalho regionais e clique em Próxima.
- Clique em Configurar.
Configuração básica
- Digite um Nome para o balanceador de carga.
- Selecione uma Região para o balanceador de carga.
Selecione uma Rede para o balanceador de carga.
A rede precisa conter uma sub-rede somente proxy na região em que você está criando o NEG e o balanceador de carga. Se você não tiver um, clique em Reservar sub-rede para criar um.
Mantenha a janela aberta para continuar.
Configuração de back-end
O grupo de endpoints da rede do Private Service Connect é um tipo de back-end de balanceador de carga. Crie um serviço de back-end para cada back-end que você quer configurar.
- Clique em Configuração de back-end.
Crie um serviço de back-end para cada grupo de endpoints de rede do Private Service Connect que você quiser configurar.
- No menu Criar ou selecionar serviços de back-end, selecione Criar um serviço de back-end.
- Digite um Nome para o serviço de back-end.
- Defina o Tipo de back-end como Grupo de endpoints da rede do Private Service Connect.
- Defina o tipo de destino do Private Service Connect como Regional Google API.
Selecione HTTPS para o protocolo.
Na seção Back-ends, clique no menu Novo back-end e selecione o grupo de endpoints da rede do Private Service Connect.
Se você precisar criar um novo grupo de endpoints de rede do Private Service Connect, clique em Criar grupo de endpoints da rede do Private Service Connect.
Regras de roteamento
O conjunto de regras para encaminhar solicitações HTTPS de entrada para serviços ou buckets de back-end específicos é chamado de mapa de URLs. Para saber mais sobre mapas de URL, consulte Visão geral de mapas de URL.
Se você estiver configurando apenas um serviço de back-end para o balanceador de carga, a regra de roteamento padrão será suficiente e será possível pular para a configuração do front-end.
- Se você tiver mais de um serviço de back-end, clique em Regras de roteamento.
- Selecione Regra de host e caminho simples.
- Para cada back-end, faça o seguinte:
- Adicionar regra de host e caminho.
- Em Host, insira o nome do host que será usado para enviar solicitações a esse serviço, por exemplo,
pubsub.example.com
. - Em Caminhos, digite o caminho, por exemplo,
/*
. - Em Back-ends, selecione o serviço de back-end.
Configuração de front-end
- Clique em Configuração de front-end.
- Clique em Adicionar IP e porta de front-end.
- Digite um Nome para o balanceador de carga.
- No campo Protocolo, selecione HTTPS (inclui HTTP/2).
- Selecione uma Sub-rede para o balanceador de carga.
- Certifique-se de que Porta esteja definida como
443
, para permitir tráfego HTTPS. Em Endereço IP, selecione um endereço IP no menu.
Se você quiser reservar um novo endereço IP, clique em Criar endereço IP.
Clique na lista suspensa Certificado.
- Se você já tiver um recurso de certificado SSL autogerenciado que quer usar, selecione-o no menu.
- Caso contrário, selecione Criar um novo certificado.
- Digite um nome para o certificado de recurso.
- Nos campos apropriados, faça o upload dos arquivos formatados em PEM:
- Certificado
- Chave privada
- Clique em Criar.
Clique em Concluído.
Revisar e finalizar
- Clique em Analisar e finalizar para revisar a configuração.
- Clique em Criar.
gcloud
Crie um serviço de back-end para cada grupo de endpoints de rede criado.
gcloud compute backend-services create BACKEND_SERVICE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=HTTPS \ --region=REGION
Substitua:
BACKEND_SERVICE_NAME
: o nome do serviço de back-end.REGION
: a região em que o serviço de back-end será criado.
Para cada serviço de back-end que você criou, adicione o NEG correspondente ao serviço de back-end.
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --network-endpoint-group=NEG_NAME \ --region=REGION
Substitua:
BACKEND_SERVICE_NAME
: o nome do serviço de back-end.NEG_NAME
: o nome do grupo de endpoints da rede.REGION
: a região do back-end.
Crie um mapa de URL para o balanceador de carga.
Um mapa de URL precisa referir-se a um serviço de back-end padrão. Se você estiver configurando o balanceador de carga com um serviço de back-end, defina esse serviço como o padrão. Se estiver configurando o balanceador de carga para usar vários serviços de back-end, referenciados por regras de host e correspondentes de caminho criados na próxima etapa, escolha um dos serviços de back-end como padrão do mapa de URL.
gcloud compute url-maps create URL_MAP_NAME \ --default-service=DEFAULT_BACKEND_SERVICE_NAME \ --region=REGION
Substitua:
URL_MAP_NAME
: um nome para o mapa de URL.DEFAULT_BACKEND_SERVICE_NAME
: o nome padrão do balanceador de carga. O padrão é usado quando nenhuma regra de host corresponde ao nome do host solicitado.REGION
: a região em que o mapa de URL será criado.
Adicione outros serviços de back-end ao mapa de URLs.
Se o mapa de URLs precisar referenciar dois ou mais serviços de back-end, siga as etapas a seguir. Se o mapa de URL referenciar apenas um serviço de back-end, ignore esta etapa.
Para cada serviço de back-end, adicione uma correspondência de caminho. É necessário criar uma correspondência de caminho para cada serviço de back-end.
gcloud compute url-maps add-path-matcher URL_MAP_NAME \ --path-matcher-name=PATH_MATCHER \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
Substitua:
URL_MAP_NAME
: o nome do mapa de URL.PATH_MATCHER
: um nome para a correspondência de caminho.BACKEND_SERVICE_NAME
: o nome do serviço de back-end.REGION
: a região do mapa de URL.
Para cada nome de host, adicione uma regra de host.
Cada regra de host pode referir-se apenas a uma correspondência de caminho, mas duas ou mais regras podem referenciar a mesma correspondência.
gcloud compute url-maps add-host-rule URL_MAP_NAME \ --hosts=HOST \ --path-matcher-name=PATH_MATCHER \ --region=REGION
Substitua:
URL_MAP_NAME
: o nome do mapa de URL.HOST
: nome do host para o qual enviar solicitações para este serviço. Por exemplo,pubsub.example.com
.PATH_MATCHER
: o nome da correspondência de caminho.REGION
: a região do mapa de URL.
Crie o proxy de destino HTTPS.
Crie um certificado SSL regional usando o comando
gcloud compute ssl-certificates create
. Os certificados gerenciados pelo Google não são compatíveis com balanceadores de carga de aplicativos internos.gcloud compute ssl-certificates create CERTIFICATE \ --certificate=LB_CERT \ --private-key=LB_PRIVATE_KEY \ --region=REGION
Substitua:
CERTIFICATE
: um nome para o certificado.LB_CERT
: o caminho para o arquivo de certificado formatado em PEM do certificado autogerenciado.LB_PRIVATE_KEY
: o caminho para o arquivo de chave privada formatado em PEM do certificado autogerenciado.REGION
: a região do certificado.
Use o recurso de certificado SSL regional para criar um proxy HTTPS de destino com o comando
gcloud compute target-https-proxies create
.gcloud compute target-https-proxies create PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=REGION \ --ssl-certificates=CERTIFICATE
Substitua:
PROXY_NAME
: um nome para o proxy HTTPS de destino.URL_MAP_NAME
: o nome do mapa de URL.REGION
: a região do recurso de certificado.CERTIFICATE
: o nome do recurso de certificado.
Reserve um endereço IPv4 interno regional para a regra de encaminhamento.
gcloud compute addresses create ADDRESS_NAME \ --ip-version=IPV4 \ --region=REGION \ --subnet=SUBNETWORK
Substitua:
ADDRESS_NAME
: um nome para o recurso de endereço IP.REGION
: a região em que o endereço IP será criado.SUBNET
: a sub-rede em que o endereço IP será criado.
Execute este comando para ver o endereço IP reservado. Depois de criar o balanceador de carga, use o endereço IP para verificar a configuração.
gcloud compute addresses describe ADDRESS_NAME \ --format="get(address)" --region=REGION
Crie a regra de encaminhamento.
Crie a regra de encaminhamento usando o comando
gcloud compute forwarding-rules create
.gcloud compute forwarding-rules create FWD_RULE \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --address=ADDRESS_NAME \ --ports=443 \ --region=REGION \ --target-https-proxy=PROXY_NAME \ --target-https-proxy-region=PROXY_REGION \ [--service-directory-registration=SD_SERVICE_NAME]
Substitua:
FWD_RULE
: um nome para a regra de encaminhamento.NETWORK
: a rede onde criar a regra de encaminhamento.ADDRESS_NAME
: o endereço IP reservado.REGION
: a região da regra de encaminhamento.PROXY_NAME
: o nome do proxy HTTPS de destino.PROXY_REGION
: a região do proxy HTTPS de destino.SD_SERVICE_NAME
: o URI do serviço do diretório de serviços com o qual você quer registrar o balanceador de carga, neste formato:projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME
. Especificar--service-directory-registration
é opcional.
Verificar a configuração
Crie a instância de VM.
gcloud compute instances create VM_NAME \ --network=NETWORK \ --image-project=debian-cloud --image-family=debian-12 \ --zone=ZONE
Substitua:
VM_NAME
: um nome para a máquina virtual.NETWORK
: a rede da VM.ZONE
: a zona para a VM.
Conecte-se à VM.
gcloud compute ssh VM_NAME --zone=ZONE
Use
curl
para verificar a configuração. Esse comando define o cabeçalhoHost
e ignora a resolução DNS especificando um endereço IP definido pelo usuário. É possível omitir a porta se você estiver usando a porta padrão do protocolo, por exemplo, usando a porta 443 para HTTPS.Se necessário, pule a validação do certificado usando a sinalização
-k
. Talvez seja necessário pular a validação se você usou um certificado autoassinado para configurar o proxy HTTPS de destino ou se a VM não tem o certificado da autoridade de certificação que assinou o certificado.curl -iv --resolve HOSTNAME:443:IP_ADDRESS \ 'https://HOSTNAME/RESOURCE_URI'
Substitua:
HOSTNAME
: o nome do host configurado no mapa de URL, por exemplo,pubsub.example.com
.IP_ADDRESS
: o endereço IP da regra de encaminhamento do balanceador de carga.RESOURCE_URI
: o restante do URI do recurso que você quer usar para verificação. Por exemplo, se o balanceador de carga estiver encaminhando solicitações para um endpoint regional do Pub/Sub, userest?version=v1
.
Configurar registros DNS
Configure registros DNS para cada host adicionado ao mapa de URL, apontando para o endereço IP da regra de encaminhamento. Se você estiver usando o Cloud DNS para gerenciar DNS, consulte Adicionar, modificar e excluir registros. Caso contrário, configure os registros DNS no servidor DNS.
Por exemplo, digamos que você tenha criado as seguintes configurações:
Um NEG do Private Service Connect que usa o serviço de destino
pubsub.europe-west3.rep.googleapis.com
.Um balanceador de carga de aplicativo interno que usa esse NEG do Private Service Connect como back-end.
Um mapa de URL que define uma regra de host para
pubsub.example.com
.
Para que essa configuração funcione corretamente, crie um registro DNS que aponte pubsub.example.com
para o endereço IP da regra de encaminhamento.
Com essa configuração, todas as solicitações enviadas para pubsub.example.com
são enviadas ao balanceador de carga, que encaminha a solicitação para pubsub.europe-west3.rep.googleapis.com
.
Configurar clientes para enviar solicitações ao back-end
Para enviar solicitações pelo back-end no lugar dos endpoints de serviço público, configure os clientes para enviar solicitações ao nome do host definido no mapa de URL do balanceador de carga, por exemplo, pubsub.example.com
. Consulte a documentação do seu cliente ou da biblioteca de cliente para mais informações sobre como configurá-lo para usar endpoints personalizados. As páginas a seguir incluem etapas de configuração para alguns clientes comuns:
Python: é possível configurar
api_endpoint
em Opções de cliente.Go: é possível configurar
WithEndpoint
em ClientOptions..NET: é possível configurar
Endpoint
na classe de builder do cliente.gcloud: é possível configurar
api_endpoint_overrides
na gcloud CLI.
Acessar o back-end a partir de hosts locais
Se a rede local estiver conectada a uma rede VPC, será possível enviar tráfego para o back-end do Private Service Connect.
Sua rede local precisa estar conectada à rede VPC que contém o balanceador de carga de aplicativo interno usando túneis do Cloud VPN ou anexos da VLAN na mesma região que o balanceador de carga interno.
A rede local precisa ter rotas adequadas para o balanceador de carga interno. Verifique se cada Cloud Router que gerencia a sessão do BGP para o túnel do Cloud VPN ou o anexo da VLAN foi configurado para divulgar o intervalo de endereços IP principal da sub-rede usada pelo balanceador de carga de aplicativo interno. Os Cloud Routers anunciam rotas de sub-rede por padrão.
É preciso configurar sistemas locais para que os nomes de host no mapa de URL do balanceador de carga interno do aplicativo sejam resolvidos para o endereço IP da regra de encaminhamento do balanceador de carga interno. É possível criar os registros DNS em servidores de nomes locais ou usar o Cloud DNS.
Se você criou os registros DNS usando zonas particulares gerenciadas do Cloud DNS, siga estas etapas:
Crie uma política de servidor de entrada na rede VPC a que sua rede local se conecta.
Identifique os pontos de entrada do encaminhador de entrada nas regiões em que os túneis do Cloud VPN e anexos da VLAN estão localizados, na rede VPC a que sua rede no local se conecta.
Configure servidores de nomes DNS locais para encaminhar solicitações DNS dos nomes de host no mapa de URL para um ponto de entrada de encaminhador de entrada do Cloud DNS.