1. Introdução
O Private Service Connect (PSC) simplifica a forma como os serviços são consumidos de maneira segura e particular. Esse modelo facilita muito a arquitetura de rede, permitindo que os consumidores de serviços se conectem de maneira particular aos produtores de serviços em várias organizações e eliminando a necessidade de peering de nuvem privada virtual. A Figura 1 ilustra o peering de VPC e os atributos do PSC.
Figura 1. 
Como consumidor de serviço, ele oferece a flexibilidade de escolher como alocar seus IPs particulares aos serviços, removendo o trabalho de gerenciar intervalos de sub-redes para VPCs de produtores. Agora você pode simplesmente atribuir um IP virtual escolhido da sua VPC a esse serviço usando uma conexão de serviço.
Neste codelab, você vai criar uma arquitetura abrangente do Private Service Connect que ilustra o uso do acesso global do PSC com o MongoDB Atlas.
O acesso global permite que os clientes se conectem ao Private Service Connect (PSC) em todas as fronteiras regionais. Isso é útil para criar alta disponibilidade em serviços gerenciados hospedados em várias regiões ou para permitir que os clientes acessem um serviço que não esteja na mesma região do cliente.
2. Como ativar o acesso global
O acesso global é um recurso opcional configurado na regra de encaminhamento do lado do consumidor. O comando a seguir mostra como ele é configurado:
gcloud beta compute forwarding-rules create psc-west \
--region=us-west1 \
--network=consumer-vpc \
--address=psc-west-address \
--target-service-attachment=projects/.../serviceAttachments/sa-west \
--allow-psc-global-access
- A flag
--allow-psc-global-accessativa o acesso global em um endpoint do Private Service Connect. - Com o acesso global, o cliente pode estar em uma região diferente da regra de encaminhamento do Private Service Connect, mas a regra de encaminhamento ainda precisa estar na mesma região do anexo de serviço a que está conectada.
- Não é necessário fazer nenhuma configuração no anexo de serviço do produtor para ativar o acesso global. É uma opção exclusiva do lado do consumidor.
O acesso global também pode ser ativado ou desativado a qualquer momento para endpoints atuais. Não há interrupção do tráfego para conexões ativas ao ativar o acesso global em um endpoint atual. O acesso global é ativado em uma regra de encaminhamento com o seguinte comando:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Como desativar o acesso global
O acesso global também pode ser desativado em regras de encaminhamento atuais com a flag --no-allow-psc-global-access. Todo o tráfego inter-regional ativo será encerrado após a execução desse comando.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. O que você vai criar
- Um cluster multirregional do MongoDB Atlas (topologia descrita na Figura 2) será criado com um nó em us-west1 e dois nós em us-west2, respectivamente.
- Uma VPC de consumidor e uma VM associada para acessar clusters do MongoDB em us-west1 e us-west2.
- Uma VPC e duas sub-redes nas regiões us-west1 e us-west2, respectivamente, com pelo menos 64 endereços IP livres em cada sub-rede. Crie sub-redes com /26 e abaixo.
O cliente do MongoDB será instalado na vm1 na VPC do consumidor. Quando o nó principal falha em us-west1, o cliente pode ler/gravar pelo novo nó principal em us-west2.
Figura 2. 
O que você vai aprender
- Como criar uma VPC e sub-redes implantadas em duas regiões
- Como implantar um cluster do MongoDB Atlas multirregional
- Como criar um endpoint particular
- Como se conectar ao MongoDB
- Como realizar e validar o failover multirregional do MongoDB
O que é necessário
- Projeto do Google Cloud
- Forneça uma sub-rede /26 por região
- Acesso de proprietário do projeto ou da organização ao MongoDB Atlas para criar um cluster do MongoDB com o nível M10 ou superior. (Use GETATLAS para receber créditos sem custo financeiro e executar o PoV)
4. Antes de começar
Atualizar o projeto para oferecer suporte ao codelab
Este codelab usa $variáveis para ajudar na implementação da configuração da gcloud no Cloud Shell.
No Cloud Shell, faça o seguinte:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Configuração do consumidor
Criar a VPC do consumidor
No Cloud Shell, faça o seguinte:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Criar as sub-redes do consumidor
No Cloud Shell, faça o seguinte:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
No Cloud Shell, crie o endpoint do consumidor para us-west1:
gcloud compute networks subnets create psc-endpoint-us-west1 --project=$projectname --range=192.168.10.0/26 --network=consumer-vpc --region=us-west1
No Cloud Shell, crie o endpoint do consumidor para us-west2:
gcloud compute networks subnets create psc-endpoint-us-west2 --project=$projectname --range=172.16.10.0/26 --network=consumer-vpc --region=us-west2
Configuração do Cloud Router e do NAT
O Cloud NAT é usado no codelab para instalação de pacotes de software porque as instâncias de VM não têm um endereço IP externo.
No Cloud Shell, crie o Cloud Router.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
No Cloud Shell, crie o gateway NAT.
gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Configuração da instância vm1
Na seção a seguir, você vai criar a instância do Compute Engine, vm1.
No Cloud Shell, crie a instância vm1.
gcloud compute instances create vm1 \
--project=$projectname \
--zone=us-west1-a \
--machine-type=e2-micro \
--network-interface=subnet=vm-subnet,no-address \
--maintenance-policy=MIGRATE \
--provisioning-model=STANDARD \
--create-disk=auto-delete=yes,boot=yes,device-name=vm1,image=projects/ubuntu-os-cloud/global/images/ubuntu-2004-focal-v20230213,mode=rw,size=10,type=projects/$projectname/zones/us-west1-a/diskTypes/pd-balanced
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump -y
sudo apt-get install dnsutils -y"
Para permitir que o IAP se conecte às suas instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias de VM que você quer acessar usando o IAP.
- Permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para o encaminhamento de TCP.
No Cloud Shell, crie a regra de firewall do IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Criar o cluster multirregional do MongoDB Atlas
- Precisamos configurar um cluster do Atlas antes de começar a configuração do PSC. Você pode assinar o MongoDB Atlas de uma das duas maneiras abaixo:
- No Google Cloud Marketplace, se você tiver uma conta do Google Cloud. Consulte a documentação para configurar sua assinatura.
- Na página de registro do Atlas.
- Depois de se inscrever no Atlas, clique no botão "Criar um banco de dados", como mostrado abaixo.

- Criar novo cluster → Dedicado

- Provedor de nuvem e região → Google Cloud
- Multicloud, multirregião e isolamento de carga de trabalho → Selecionado (marca de seleção azul)

- Nós eleitos → us-west1 (1 nó), us-west2 (2 nós)

- Nível do cluster → M10. Deixe todas as outras configurações como padrão.

- Nome do cluster → psc-mongodb-uswest1-uswest2

- Selecione → Criar cluster

- A criação do banco de dados leva de 7 a 10 minutos.

Visualização do cluster após a implantação

7. Criação de endpoint particular para us-west1
- Faça login na sua conta do Atlas e navegue até o projeto.
Crie um novo usuário para permitir o acesso de leitura/gravação a qualquer banco de dados
Segurança → Acesso ao banco de dados e selecione "Adicionar novo usuário do banco de dados". Este é um exemplo de nome de usuário e senha configurados como codelab. Selecione a leitura e gravação de função integradas em qualquer banco de dados.

- Em Segurança → Acesso à rede, a lista de acesso por IP não exige uma entrada.
Preparar endpoints particulares no MongoDB Atlas
- Selecione Acesso à rede → Endpoints particulares → Cluster dedicado → Adicionar endpoint particular

Provedor de nuvem
- Selecione Google Cloud e clique em "Próxima".

Anexo de serviço
- Selecione a região "us-west1" e clique em "Próxima".

Endpoints
- Para criar um endpoint do Private Service Connect, forneça o seguinte:
- ID do projeto na nuvem do Google: selecione "Mostrar instruções" para mais detalhes
- Nome da VPC: consumer-vpc
- Nome da sub-rede: psc-endpoint-us-west1
- Prefixo do endpoint do Private Service Connect: psc-endpoint-us-west1

Configurar endpoints
Na seção a seguir, um script de shell é gerado e precisa ser salvo localmente com o nome setup_psc.sh. Depois de salvar, edite o script de shell para permitir o acesso global do PSC. É possível realizar essa ação no Cloud Shell do projeto na nuvem do Google Cloud.
- Exemplo de script de shell. Sua saída terá valores diferentes.

- Copie o script de shell do console do MongoDB e salve o conteúdo no terminal do Cloud Shell do Google Cloud. Salve o script como setup_psc.sh.
Exemplo de atualização before:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Atualizar o script de shell para oferecer suporte ao acesso global
Use o editor nano ou vi para identificar e atualizar o script de shell com a sintaxe abaixo:
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
Exemplo após a atualização:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west1-ip-$i --region=us-west1 --subnet=psc-endpoint-us-west1
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west1-ip-$i --region=us-west1 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west1-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west1-$i --region=us-west1 --network=consumer-vpc --address=psc-endpoint-us-west1-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west1/serviceAttachments/sa-us-west1-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west1 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west1*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west1. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west1 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west1*)" > atlasEndpoints-psc-endpoint-us-west1.json
Execute o script de shell
Navegue e execute o script setup_psc.sh. Depois de concluído, um arquivo chamado atlasEndpoints-psc-endpoint-us-west1.json será criado. O arquivo JSON contém uma lista de endereços IP e nomes de endpoints do Private Service Connect necessários para a próxima etapa da implantação.
No Cloud Shell, faça o seguinte:
sh setup_psc.sh
Quando o script for concluído, use o editor do Cloud Shell para fazer o download local de atlasEndpoints-psc-endpoint-us-west1.json.

Fazer upload do arquivo JSON
Faça upload do arquivo JSON salvo anteriormente atlasEndpoints-psc-endpoint-us-west1.json


Selecione "Criar".
Validar endpoints do Private Service Connect
Na interface do MongoDB, navegue até seu projeto e clique em "Segurança" → "Acesso à rede" → "Endpoint privado". Ao selecionar a guia, o cluster dedicado e a transição do endpoint para disponível levará 10 minutos.
Status disponível

No console do Google Cloud, navegue até Serviços de rede → Private Service Connect, selecione a guia "Endpoint conectado" que mostra os endpoints do consumidor em transição de "Pendente" para "Aceito", como no exemplo abaixo:

8. Criação de endpoint particular para us-west2
- Faça login na sua conta do Atlas e navegue até o projeto.
Preparar endpoints particulares no MongoDB Atlas
- Selecione Acesso à rede → Endpoints particulares → Cluster dedicado → Adicionar endpoint particular

Provedor de nuvem
- Selecione Google Cloud e clique em "Próxima".

Anexo de serviço
- Selecione a região us-west2 e clique em "Próxima".

Endpoints
- Para criar um endpoint do Private Service Connect, forneça o seguinte:
- ID do projeto na nuvem do Google: selecione "Mostrar instruções" para mais detalhes
- Nome da VPC: consumer-vpc
- Nome da sub-rede: psc-endpoint-us-west2
- Prefixo do endpoint do Private Service Connect: psc-endpoint-us-west2

Configurar endpoints
Na seção a seguir, um script de shell é gerado e precisa ser salvo localmente com o nome setup_psc.sh. Depois de salvar, edite o script de shell para permitir o acesso global do PSC. É possível realizar essa ação no Cloud Shell do projeto na nuvem do Google Cloud.
- Exemplo de script de shell. Sua saída terá valores diferentes.

- Copie o script de shell do console do MongoDB e salve o conteúdo no terminal do Cloud Shell do Google Cloud. Salve o script como setup_psc.sh.
Exemplo antes da atualização:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2vn1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Atualizar o script de shell para oferecer suporte ao acesso global
Use o editor nano ou vi para identificar e atualizar o script de shell com a sintaxe abaixo:
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
Exemplo após a atualização:
#!/bin/bash
gcloud config set project yourprojectname
for i in {0..49}
do
gcloud compute addresses create psc-endpoint-us-west2-ip-$i --region=us-west2 --subnet=psc-endpoint-us-west2
done
for i in {0..49}
do
if [ $(gcloud compute addresses describe psc-endpoint-us-west2-ip-$i --region=us-west2 --format="value(status)") != "RESERVED" ]; then
echo "psc-endpoint-us-west2-ip-$i is not RESERVED";
exit 1;
fi
done
for i in {0..49}
do
gcloud beta compute forwarding-rules create psc-endpoint-us-west2-$i --region=us-west2 --network=consumer-vpc --address=psc-endpoint-us-west2-ip-$i --target-service-attachment=projects/p-npwsmzelxznmaejhj2v
n1q0q/regions/us-west2/serviceAttachments/sa-us-west2-61485ec2ae9d2e48568bf84f-$i --allow-psc-global-access
done
if [ $(gcloud compute forwarding-rules list --regions=us-west2 --format="csv[no-heading](name)" --filter="(name:psc-endpoint-us-west2*)" | wc -l) -gt 50 ]; then
echo "Project has too many forwarding rules that match prefix psc-endpoint-us-west2. Either delete the competing resources or choose another endpoint prefix."
exit 2;
fi
gcloud compute forwarding-rules list --regions=us-west2 --format="json(IPAddress,name)" --filter="name:(psc-endpoint-us-west2*)" > atlasEndpoints-psc-endpoint-us-west2.json
Execute o script de shell
Navegue e execute o script setup_psc.sh. Depois de concluído, um arquivo chamado atlasEndpoints-psc-endpoint-us-west2.json será criado. O arquivo JSON contém uma lista de endereços IP e nomes de endpoints do Private Service Connect necessários para a próxima etapa da implantação.
No Cloud Shell, faça o seguinte:
sh setup_psc.sh
Quando o script for concluído, use o editor do Cloud Shell para fazer o download local de atlasEndpoints-psc-endpoint-us-west2.json.

Fazer upload do arquivo JSON
Faça upload do arquivo JSON salvo anteriormente atlasEndpoints-psc-endpoint-us-west2.json


Selecione "Criar".
Validar endpoints do Private Service Connect
Na interface do MongoDB, navegue até seu projeto e clique em "Segurança" → "Acesso à rede" → "Endpoint privado". Ao selecionar a guia, o cluster dedicado e a transição do endpoint para disponível após 10 minutos.
Status disponível:

No console do Google Cloud, navegue até "Serviços de rede" → "Private Service Connect", selecione a guia "Endpoint conectado" que mostra os endpoints do consumidor em transição de "Pendente" para "Aceito", como no exemplo abaixo. Um total de 100 endpoints são implantados no endpoint do consumidor e precisam ser aceitos antes de passar para a próxima etapa.

9. Conectar-se ao MongoDB Atlas de endpoints particulares
Depois que as conexões de serviço particulares são aceitas, é necessário mais tempo (10 a 15 minutos) para atualizar o cluster do MongoDB. Na interface do MongoDB, o contorno cinza representa a atualização do cluster. Portanto, não é possível se conectar ao endpoint particular.

Identifique a implantação e selecione "Conectar". A caixa cinza não vai mais aparecer.

Escolha o tipo de conexão → Endpoint particular e selecione "Escolher um método de conexão".

Selecione "Conectar com o MongoDB Shell".

Selecione "Não tenho o MongoDB Shell instalado, Ubuntu 20.4" e copie o conteúdo das etapas 1 e 3 para um bloco de notas.

10. Instalar o aplicativo mongosh
Antes da instalação, crie uma string de comando com base nos valores copiados nas etapas 1 e 3. Depois disso, você vai fazer SSH na vm1 usando o Cloud Shell, seguido da instalação e validação do aplicativo mongosh no banco de dados principal (us-west1). A imagem do Ubuntu 20.4 foi instalada ao criar a vm1 na consumer-vpc.
Escolha um método de conexão: etapa 1, copie o URL de download

Exemplo de string de comando. Substitua pelos seus valores personalizados:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Escolha um método de conexão, etapa 3.

Exemplo de string de comando. Substitua pelos seus valores personalizados:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Faça login em vm1
No Cloud Shell, faça o seguinte:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Faça login em vm1 usando o IAP no Cloud Shell. Tente de novo se houver um tempo limite.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Fazer a instalação pelo SO
Faça a instalação no login do SO do Cloud Shell. Mais detalhes disponíveis. Atualize a sintaxe abaixo com sua string personalizada.
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
A operação precisa responder com um
OK
.
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update -y
wget https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
sudo dpkg -i mongodb-mongosh_1.7.1_amd64.deb
Conectar-se à implantação do MongoDB
No login do Cloud Shell, faça o seguinte: O nome de usuário e a senha configurados são codelab.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Veja um exemplo a seguir:

Executar comandos no banco de dados
No login do Cloud Shell, faça o seguinte:
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Failover da região ativa do MongoDB, us-west1
Antes de fazer o failover, vamos validar se us-west1 é primário e se us-west2 tem dois nós secundários.
Navegue até "Banco de dados" → "psc-mongodb-uswest1-uswest2" → "Visão geral".

Na seção a seguir, faça login na vm1 localizada em us-west1, faça failover da região principal do cluster do MongoDB us-west1 e verifique se o banco de dados ainda está acessível pelo cluster do MongoDB em us-west2.
É possível testar o failover primário e regional na interface do Atlas.
- Faça login na interface do Atlas.
- Clique em [...] ao lado do nome do cluster, psc-mongodb-uswest1-uswest2 → Test Outage.

- Selecione regiões.

- Selecione a região principal, us-west1→ Simular interrupção regional.

Depois de selecionado, o cluster vai mostrar a simulação de interrupção após 3 a 4 minutos.
Fechar janela


Verifique se us-west1 está inativo e se us-west2 agora é o principal.
Navegue até "Banco de dados" → "psc-mongodb-uswest1-uswest2" → "Visão geral".

Validar a conectividade com o cluster pelo novo primário, us-west2
Faça login em vm1 localizada em us-west1 e acesse mongodb em us-west2, validando o acesso global do Private Service Connect.
Se a sessão do Cloud Shell foi encerrada, faça o seguinte:
No Cloud Shell, faça o seguinte:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Faça login em vm1 usando o IAP no Cloud Shell. Tente de novo se houver um tempo limite.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Conectar-se à implantação do MongoDB
No login do Cloud Shell, faça o seguinte:
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Veja um exemplo a seguir:

Executar comandos no banco de dados
No login do Cloud Shell, faça o seguinte:
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit

Sucesso: você validou que o acesso global do PSC permite uma conectividade perfeita do endpoint do consumidor em todas as regiões para ajudar na alta disponibilidade ou devido a interrupções regionais. No codelab, o failover regional do MongoDB ocorreu no nó principal localizado em us-west1. Portanto, a região secundária us-west2 assumiu um nó principal. Embora o cluster tenha resultado em uma interrupção regional, a VM1 do consumidor localizada em us-west1 alcançou com êxito o novo cluster principal em us-west2.
12. Limpeza
No console do Cloud, exclua os endpoints do consumidor.
Acesse Serviços de rede → Private Service Connect → ENDPOINTS CONECTADOS
Use o filtro psc-endpoint para evitar a exclusão de endpoints de consumidores que não sejam de laboratório. Selecione todos os endpoints → EXCLUIR

Exclua os endereços IP internos estáticos associados aos endpoints do consumidor.
Acesse Rede VPC → consumer-vpc → ENDEREÇOS IP INTERNOS ESTÁTICOS
Use o filtro psc-endpoint para evitar a exclusão de endpoints de consumidores que não sejam de laboratório e aumente as linhas por página para 100. Selecione todos os endpoints → RELEASE

No Cloud Shell, exclua os componentes do codelab.
gcloud compute instances delete vm1 --zone=us-west1-a --quiet
gcloud compute networks subnets delete psc-endpoint-us-west1 vm-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete psc-endpoint-us-west2 --region=us-west2 --quiet
gcloud compute firewall-rules delete ssh-iap-consumer --quiet
gcloud compute routers delete consumer-cr --region=us-west1 --quiet
gcloud compute networks delete consumer-vpc --quiet
Na interface do Atlas, identifique o cluster psc-mongodb-uswest1-uswest2 → encerre a simulação.

Selecione Encerrar simulação de interrupção > Sair.

O cluster agora está revertendo us-west1 como principal. Esse processo vai levar de 3 a 4 minutos. Quando terminar, encerre o cluster e observe o contorno cinza indicando uma mudança de status.


Insira o nome do cluster → Encerrar

Excluir o endpoint particular associado a us-west1 e us-west2
Na interface do Atlas, navegue até "Segurança" → "Acesso à rede" → "Endpoint privado" → "Selecionar encerrar".

13. Parabéns
Parabéns! Você configurou e validou um endpoint do Private Service Connect com acesso global ao MongoDB em várias regiões. Você criou uma VPC do consumidor, um MongoDB multirregional e endpoints do consumidor. Uma VM localizada em us-west1 se conectou ao MongoDB em us-west1 e us-west2 após o failover regional.
O Cosmopup acha que os codelabs são incríveis!

Qual é a próxima etapa?
Confira alguns destes codelabs:
- Como usar o Private Service Connect para publicar e consumir serviços com o GKE
- Como usar o Private Service Connect para publicar e consumir serviços
- Conectar-se a serviços no local pela rede híbrida de computadores usando o Private Service Connect e um balanceador de carga do proxy TCP interno
- Como usar o Private Service Connect com configuração automática de DNS
Leituras e vídeos complementares
- Visão geral do Private Service Connect
- O que é o Private Service Connect?
- Tipos de balanceadores de carga compatíveis