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 sua projeção de uso, utilize 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:
- Criar 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. -
In the Google Cloud console, go to the project selector page.
-
Select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Make sure that you have the following role or roles on the project: Compute Engine > Compute Network Admin, Compute Engine > Compute Instance Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Acessar o 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).
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
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.