1. Introdução
O Private Service Connect (PSC) simplifica a forma como os serviços são consumidos de forma segura e particular. Esse modelo simplifica drasticamente 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, além de eliminar a necessidade de peering de nuvem privada virtual. A Figura 1 ilustra os atributos de peering de VPC e PSC.
Figura 1.
Como consumidor de serviços, você tem a flexibilidade de escolher como alocar seus IPs particulares para serviços, além de não precisar mais gerenciar os intervalos de sub-redes para VPCs de produtores. Agora você pode simplesmente atribuir um IP virtual escolhido da VPC a esse serviço usando um serviço de conexã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 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-access
ativa o acesso global em um endpoint do Private Service Connect - O acesso global permite que o cliente esteja em uma região diferente da regra de encaminhamento do Private Service Connect, mas a regra de encaminhamento precisa estar na mesma região do anexo de serviço a que está conectada.
- Não é necessário configurar o anexo de serviço do produtor para ativar o acesso global. É uma opção puramente do lado do consumidor.
O acesso global também pode ser ativado ou desativado a qualquer momento para endpoints existentes. Não há interrupção do tráfego para conexões ativas ao ativar o acesso global em um endpoint existente. O acesso global é ativado em uma regra de encaminhamento existente 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 nas regras de encaminhamento atuais com a flag --no-allow-psc-global-access
. Todo 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 nas regiões 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 sem custo financeiro 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 falhar em us-west1, o cliente poderá 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 em várias regiões
- Como criar um endpoint particular
- Como se conectar ao MongoDB
- Como executar e validar o failover do MongoDB em várias regiões
O que é necessário
- Projeto do Google Cloud
- Fornecer 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 nível de cluster M10 ou superior. Use o GETATLAS para receber créditos sem custo financeiro para executar o PoV.
4. Antes de começar
Atualizar o projeto para oferecer suporte ao codelab
Este codelab usa $variables para ajudar na implementação da configuração do 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 NAT
O Cloud NAT é usado no codelab para a instalação de pacotes de software, já que as instâncias de VM não têm um endereço IP externo.
No Cloud Shell, crie o roteador da nuvem.
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 próxima seção, 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 da VM que você quer que sejam acessíveis 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 multi-região do MongoDB Atlas
- Precisamos configurar um cluster do Atlas antes de começar a configuração do PSC. É possível assinar o MongoDB Atlas de duas maneiras:
- 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", conforme mostrado abaixo.
- Criar novo cluster → Dedicado
- Provedor e região da nuvem → Google Cloud
- Isolamento de cargas de trabalho, multirregião e várias nuvens → Selecionado (marcação azul)
- Nós eletivos: us-west1 (1 nó) e 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.
Criar um novo usuário para permitir acesso de leitura/gravação a qualquer banco de dados
Segurança → Acesso ao banco de dados selecione adicionar novo usuário do banco de dados. Confira a seguir um exemplo de nome de usuário e senha configurados como codelab. Selecione a leitura e a gravação de função integrada em qualquer banco de dados.
- Em "Segurança" → "Acesso à rede", a lista de acesso a IPs 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 do Google Cloud: selecione "Mostrar instruções" para ver 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 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 ao PSC. É possível realizar essa ação no Cloud Shell do projeto do Google Cloud.
- Exemplo de script de shell. A saída terá valores diferentes
- Copie o script de shell do console do MongoBD 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-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
Executar 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 de atlasEndpoints-psc-endpoint-us-west1.json localmente.
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 selecione "Security" → "Network access" → "Private endpoint". Ao selecionar a guia "Cluster dedicado", a transição do endpoint para "Disponível" vai 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 "Pendente" → "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 do Google Cloud: selecione "Mostrar instruções" para ver 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 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 ao PSC. É possível realizar essa ação no Cloud Shell do projeto do Google Cloud.
- Exemplo de script de shell. A saída terá valores diferentes
- Copie o script de shell do console do MongoBD 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
Atualize 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
Executar 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 de atlasEndpoints-psc-endpoint-us-west2.json localmente.
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 selecione "Security" → "Network access" → "Private endpoint". Selecionando a guia, cluster dedicado, 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 "Pendente" → "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 forem aceitas, será 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, a conexão com o endpoint particular não está disponível.
Identifique a implantação e selecione "Conectar". Observe que a caixa cinza não está mais presente.
Escolha o tipo de conexão → Endpoint privado e selecione Escolher um método de conexão.
Selecione Conectar com o MongoDB Shell
Selecione "I do not have the MongoDB Shell installed, 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, você precisa criar uma string de comando com base nos valores copiados anteriormente nas etapas 1 e 3. Em seguida, você vai fazer login na VM1 usando o Cloud Shell, seguido pela 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, copiar 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
Fazer login na 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 na vm1 usando o IAP no Cloud Shell e tente novamente se houver um tempo limite.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Realizar a instalação no SO
Execute a instalação no login do Cloud Shell. Detalhes adicionais. 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. Região do MongoDB ativa de failover, us-west1
Antes de executar o failover, vamos validar se us-west1 é o primário e us-west2 tem dois nós secundários.
Navegue até "Database" → "psc-mongodb-uswest1-uswest2" → "Overview".
Na seção a seguir, faça login na vm1 localizada em us-west1, faça failover da região do cluster principal do MongoDB us-west1 e verifique se o banco de dados ainda pode ser acessado 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 "Interrupção regional" → "Selecionar 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 três a quatro minutos.
Fechar janela
Verifique se us-west1 está inativo e se us-west2 agora é a região principal
Navegue até "Database" → "psc-mongodb-uswest1-uswest2" → "Overview".
Validar a conectividade ao cluster pelo novo primário, us-west2
Faça login na vm1 localizada em us-west1 e acesse o MongoDB em us-west2, validando o acesso global do Private Service Connect.
Se a sessão do Cloud Shell for 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 na vm1 usando o IAP no Cloud Shell e tente novamente 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 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 a 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ó primário localizado em us-west1. Portanto, a região secundária us-west2 assumiu o primário. Embora o cluster tenha resultado em uma interrupção regional, a vm1 do consumidor localizada em us-west1 alcançou o novo cluster principal em us-west2.
12. Limpeza
No console do Cloud, exclua os endpoints do consumidor
Navegue até 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 são de laboratório. Selecione todos os endpoints → EXCLUIR
Exclua os endereços IP internos estáticos associados aos endpoints do consumidor.
Navegue até Rede VPC → consumer-vpc → DESTINOS DE IP INTERNO ESTÁTICOS.
Use o filtro psc-endpoint para eliminar a possível exclusão de endpoints de consumidores que não são de laboratório e aumentar o número de linhas por página para 100. Selecione todos os endpoints → LIBERAR
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 → encerrar a simulação
Selecione "Finalizar simulação de interrupção" —> "Sair"
O cluster está revertendo us-west1 como principal. Esse processo levará de 3 a 4 minutos. Depois de concluído, encerre o cluster. Observe o contorno cinza que indica uma mudança de status.
Inserir 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 particular" → "Selecionar".
13. Parabéns
Parabéns! Você configurou e validou um endpoint do Private Service Connect com acesso global ao MongoDB em todas as regiões. Você criou uma VPC do consumidor, um MongoDB multirregião 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.
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 on-prem por rede híbrida usando o Private Service Connect e um balanceador de carga do proxy TCP interno
- Como usar o Private Service Connect com a 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