Neste tutorial, explicamos como você, como um consumidor de serviços, pode acessar seu serviço publicado criando um endpoint do Private Service Connect. Quando você envia solicitações ao endpoint, o Private Service Connect encaminha essas solicitações ao serviço publicado.
Este tutorial é destinado a arquitetos de nuvem e de rede, administradores de rede e de TI.
Objetivos
- Configurar a rede para os recursos do consumidor de serviços
- Crie um endpoint
- Testar o acesso ao endpoint
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços.
Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.
Antes de começar
- Conclua os dois tutoriais anteriores desta série:
- Crie um serviço com balanceamento de carga.
- Torne o serviço acessível de outras redes VPC. Você precisa do ID do anexo de serviço para concluir este tutorial.
- Crie ou selecione um projeto para usar nos recursos do consumidor de serviços.
Esse projeto é chamado de
CONSUMER_PROJECT. -
No console do Google Cloud , acesse a página Seletor de Projetos.
-
Selecione ou crie um projeto do Google Cloud .
Funções necessárias para selecionar ou criar um projeto
- Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
-
Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
Ative a API Compute Engine.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis.-
Verifique se você tem os seguintes papéis no projeto: Compute Engine > Administrador de rede do Compute, Compute Engine > Administrador da instância do Compute
Verificar os papéis
-
No console do Google Cloud , acesse a página IAM.
Acessar IAM - Selecione o projeto.
-
Na coluna Principal, encontre todas as linhas que identificam você ou um grupo no qual você está incluído. Para saber em quais grupos você está incluído, entre em contato com o administrador.
- Em todas as linhas que especificam ou incluem você, verifique a coluna Papel para ver se a lista de papéis inclui os papéis necessários.
Conceder os papéis
-
No console do Google Cloud , acesse a página IAM.
Acessar IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Clique em Selecionar um papel e pesquise o papel.
- Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
- Clique em Salvar.
-
Configurar rede
As seções a seguir explicam como criar uma rede e uma sub-rede para hospedar o endpoint e como criar uma regra de firewall para permitir o acesso SSH à VM do cliente usada para testar o endpoint.
Criar uma rede e uma sub-rede
Para criar a rede e a sub-rede do consumidor de serviços, siga estas etapas.
Console
No console do Google Cloud , acesse a página Redes VPC.
Clique em Criar rede VPC.
Em Nome, insira
consumer-network.Em Modo de criação da sub-rede, selecione Personalizado.
Na seção Nova sub-rede, insira as seguintes informações:
- Em Nome, insira
consumer-subnet. - Em Região, selecione a mesma região do serviço publicado que você criou.
- Em Tipo de pilha de IP, selecione IPv4 (pilha única).
- Em Intervalo IPv4, insira
192.168.10.0/24. - Clique em Concluído.
- Em Nome, insira
Clique em Criar.
gcloud
Crie uma rede VPC personalizada:
gcloud compute networks create consumer-network --subnet-mode=custom
Na rede
consumer-network, crie uma sub-rede.gcloud compute networks subnets create consumer-subnet \ --network=consumer-network \ --range=192.168.10.0/24 \ --region=REGIONSubstitua
REGIONpela mesma região do serviço publicado que você criou.
Configurar regras de firewall
Crie uma regra de firewall chamada fw-allow-ssh para permitir que o tráfego SSH de
0.0.0.0/0 alcance VMs com a tag de rede allow-ssh.
Console
No console do Google Cloud , acesse a página Políticas de firewall.
Para permitir conexões SSH de entrada, clique em Criar regra de firewall e use as seguintes configurações:
- Em Nome, insira
fw-allow-ssh. - Em Rede, selecione
consumer-network. - Em Prioridade, digite
1000. - Em Direção de tráfego, selecione Entrada.
- Em Ação se houver correspondência, selecione Permitir.
- Em Destinos, selecione Specified target tags.
- Em Tags de destino, insira
allow-ssh. - Em Filtro de origem, selecione Intervalos IPv4.
- Em Intervalos IPv4 de origem, insira
0.0.0.0/0. - Em Protocolos e portas, selecione Protocolos e portas especificados e marque a caixa de seleção TCP. Em Portas, insira
22.
- Em Nome, insira
Clique em Criar.
gcloud
Crie a regra de firewall
fw-allow-sshque permita a conectividade SSH para VMs com a tag de redeallow-ssh.gcloud compute firewall-rules create fw-allow-ssh \ --network=consumer-network \ --action=allow \ --direction=ingress \ --source-ranges=0.0.0.0/0 \ --target-tags=allow-ssh \ --rules=tcp:22
Crie um endpoint
Crie um endpoint que aponte para o serviço publicado que você criou.
Console
No console do Google Cloud , acesse a página Private Service Connect.
Clique na guia Endpoints conectados.
Clique em Conectar endpoint.
Em Destino, selecione Serviço publicado.
Em Serviço de destino, insira
projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-service.Substitua
PRODUCER_PROJECTpelo ID do projeto do serviço publicado. SubstituaREGIONpela região do serviço publicado.Em Nome do endpoint, insira
ep-1.Em Rede, selecione
consumer-network.Em Sub-rede, selecione
consumer-subnet.Clique no menu suspenso Endereço IP e selecione Criar endereço IP.
- Em Nome, insira
ep-ip-1. - Em Endereço IP estático, selecione Let me choose.
- Em Endereço IP personalizado, insira
192.168.10.5. - Clique em Reservar.
- Em Nome, insira
Clique em Adicionar endpoint.
gcloud
Reserve um endereço IP interno para atribuir ao endpoint.
gcloud compute addresses create ep-ip-1 \ --region=REGION \ --subnet=consumer-subnet \ --addresses=192.168.10.5Substitua
REGIONpela mesma região do serviço publicado que você criou.Crie uma regra de encaminhamento para conectar o endpoint ao anexo de serviço do produtor de serviço.
gcloud compute forwarding-rules create ep-1 \ --region=REGION \ --network=consumer-network \ --address=ep-ip-1 \ --target-service-attachment=projects/PRODUCER_PROJECT/regions/REGION/serviceAttachments/published-serviceSubstitua:
PRODUCER_PROJECT: o ID do projeto de produtor de serviços.REGION: a região do anexo de serviço.
Testar o acesso ao endpoint
Para testar se o endpoint e o serviço publicado estão funcionando, crie uma VM de teste e envie uma solicitação dela para o endpoint.
Criar uma VM cliente para teste
Crie uma VM cliente na mesma região do endpoint.
Console
No console do Google Cloud , acesse a página Instâncias de VM.
Clique em Criar instância.
Em Nome, insira
consumer-test.Em Região, selecione a mesma região das VMs de back-end.
Em Zona, selecione uma zona nessa região.
Clique em Rede e configure os seguintes campos:
- Em Tags de rede, insira
allow-ssh. - Em Interfaces de rede, selecione o seguinte:
- Em Rede, selecione
consumer-network. - Em Sub-rede, selecione
consumer-subnet.
- Em Rede, selecione
- Em Tags de rede, insira
Clique em Criar.
gcloud
gcloud compute instances create consumer-test \
--zone=ZONE \
--image-family=debian-12 \
--image-project=debian-cloud \
--tags=allow-ssh \
--subnet=consumer-subnet
Substitua ZONE por uma zona na mesma
região das VMs de back-end.
Testar a conectividade
Neste teste, o endpoint é contatado por uma VM cliente. O comportamento esperado é que o tráfego seja distribuído entre as VMs de back-end do balanceador de carga.
- Conecte-se à instância da VM cliente.
Substituagcloud compute ssh consumer-test --zone=ZONE
ZONEpela zona da VM do cliente. - Faça uma solicitação da Web para o endpoint usando
curlpara contatar o endereço IP dele. Repita a solicitação para ver que as respostas provêm de diferentes VMs de back-end. O nome da VM que gera a resposta é exibido no texto na resposta HTML, devido ao conteúdo de/var/www/html/index.htmlem cada VM de back-end. Por exemplo, as respostas esperadas são assim:Page served from: vm-1ePage served from: vm-2.curl -s http://192.168.10.5
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
Excluir os projetos
Exclua o projeto produtor (PRODUCER_PROJECT) e o projeto consumidor (CONSUMER_PROJECT).
Excluir um projeto do Google Cloud :
gcloud projects delete PROJECT_ID
A seguir
- Saiba mais sobre os serviços publicados do Private Service Connect
- Saiba mais sobre como acessar os serviços publicados por endpoints
- Confira arquiteturas de referência, diagramas, tutoriais e práticas recomendadas do Google Cloud. Confira o Centro de arquitetura do Cloud.