1. Introdução
O Private Service Connect (PSC) simplifica o modo como os serviços são consumidos com segurança e privacidade. Esse modelo torna a arquitetura de rede muito mais fácil, permitindo que os consumidores de serviços se conectem de forma privada aos produtores de serviços entre organizações e elimina a necessidade de peering de nuvem privada virtual. A Figura 1 ilustra o peering de VPC e os atributos PSC.
Figura 1.
Como consumidor de serviço, você tem a flexibilidade de escolher como alocar seus IPs privados aos serviços e, ao mesmo tempo, remove 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 atlas do MongoDB.
O acesso global permite que os clientes se conectem ao Private Service Connect (PSC) fora dos limites 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 está na mesma região que o 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
permite 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 ainda precisa estar na mesma região do anexo de serviço a que ela está conectada.
- Nenhuma configuração é necessária no 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 nos endpoints atuais. Não há interrupção de tráfego para conexões ativas ao ativar o acesso global em um endpoint atual. O acesso global é ativado em uma regra de encaminhamento atual 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 sinalização --no-allow-psc-global-access
. Qualquer tráfego inter-regional ativo será encerrado depois que esse comando for executado.
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ó na us-west1 e dois nós nas regiões us-west2, respectivamente.
- Uma VPC de consumidor e uma VM associada para acessar os 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 MongoDB será instalado em vm1 na VPC do consumidor. Quando o nó primário falha em us-west1, o cliente pode fazer a leitura/gravação do novo nó primário 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 de atlas multirregional do MongoDB
- Como criar um endpoint particular
- Como se conectar ao MongoDB
- Como executar e validar o failover do MongoDB multirregional
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 de cluster M10 ou superior. Use 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 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
Crie a VPC do consumidor
No Cloud Shell, faça o seguinte:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Crie 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 neste codelab para 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 de 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 seção a seguir, você vai criar a instância vm1 do Compute Engine.
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 instâncias de VM, crie uma regra de firewall que:
- Aplica-se a todas as instâncias de VM que você quer disponibilizar usando o IAP.
- Permite tráfego de entrada no intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para 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 Atlas antes de iniciar a configuração do PSC. É possível assinar o MongoDB Atlas de uma das duas maneiras abaixo:
- Pelo Google Cloud Marketplace, se você tiver uma conta do Google Cloud. Consulte a documentação para configurar sua assinatura.
- Com a 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
- Várias nuvens, multirregiões e Isolamento da carga de trabalho → Selecionado (marca de seleção azul)
- Nós escolhíveis → 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
- Selecionar → 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é seu 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 abaixo um exemplo de nome de usuário e senha configurados como codelab. Selecione a leitura e a gravação de papéis incorporadas em qualquer banco de dados.
- Em Segurança → Acesso à rede, a Lista de acesso IP não requer 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, em seguida,
Anexo de serviço
- Selecione a região "us-west1" e, em seguida, "Next".
Endpoints
- Para criar um endpoint do Private Service Connect, forneça o seguinte:
- ID do projeto do Google Cloud: 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, é gerado um script de shell que precisa ser salvo localmente chamado 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 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 Google Cloud Shell. 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 é 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
Depois que o script for concluído, use o editor do Cloud Shell para fazer o download do 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é o projeto seguido de Segurança → Acesso à rede → Endpoint particular. Selecionando a guia, cluster dedicado, a transição do endpoint para disponível vai levar 10 minutos.
Status disponível
No console do Google Cloud, acesse Serviços de rede → Private Services Connect e selecione a guia "Endpoint conectado" que mostra os endpoints do consumidor em transição "Pendente → Aceito". Exemplo abaixo:
8. Criação de endpoint particular para us-west2
- Faça login na sua conta do Atlas e navegue até seu projeto.
Preparar endpoints particulares no MongoDB Atlas
- Selecione, Acesso à rede → Endpoints particulares → Cluster dedicado → Adicionar endpoint particular
Provedor de nuvem
- Selecione "Google Cloud" e, em seguida,
Anexo de serviço
- Selecione a região "us-west2" e, em seguida, "Next".
Endpoints
- Para criar um endpoint do Private Service Connect, forneça o seguinte:
- ID do projeto do Google Cloud: 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, é gerado um script de shell que precisa ser salvo localmente chamado 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 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 Google Cloud Shell. 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
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 é 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
Depois que 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é o projeto seguido de Segurança → Acesso à rede → Endpoint particular. 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, acesse Serviços de rede → Private Services Connect e selecione a guia "Endpoint conectado" que mostra os endpoints do consumidor em transição de "Pendente" → "Aceito", como no exemplo abaixo. Um total de 100 endpoints são implantados no endpoint do consumidor e precisam fazer a transição para "aceitos" antes de passar para a próxima etapa.
9. Conecte-se ao atlas do MongoDB por endpoints particulares
Depois que o Private Service Connections são aceitos, é necessário um tempo adicional (de 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 (a caixa cinza não está mais presente)
Escolha o tipo de conexão → Endpoint particular e selecione um método de conexão
Selecione "Conectar com o MongoDB Shell"
Selecione "Não tenho o MongoDB Shell, Ubuntu 20.4" instalado. Copie o conteúdo das etapas 1 e 3 para um bloco de notas.
10. Instalar o aplicativo mongosh
Antes da instalação, você precisará criar uma string de comando com base nos valores copiados anteriormente, obtidos nas etapas 1 e 3. Depois disso, você vai se conectar via SSH à vm1 usando o Cloud Shell, bem como instalar e validar o aplicativo mongosh para o banco de dados primário (us-west1). A imagem do Ubuntu 20.4 foi instalada ao criar a vm1 na nuvem do consumidor.
Escolha um método de conexão: etapa 1, copiar o URL de download
Exemplo de string de comando, substituindo 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, substituindo 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 na VM1 com o IAP no Cloud Shell e tente de novo se o tempo limite for atingido.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Executar a instalação pelo SO
Faça a instalação usando o login do SO do Cloud Shell, confira mais detalhes disponíveis e 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 deve responder
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
Conecte-se à implantação do MongoDB
No login do SO 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 SO do Cloud Shell, faça o seguinte.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Fazer failover da região MongoDB ativa, us-west1
Antes de realizar 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 o failover da região primária de cluster us-west1 do MongoDB 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 o regional na interface do Atlas.
- Faça login na interface do Atlas.
- Clique em [...] ao lado do nome do cluster, psc-mongodb-uswest1-uswest2 → Interrupção do teste.
- Selecione Interrupção regional → Selecionar regiões.
- Selecione a região principal, us-west1 → Simular interrupção regional.
Depois de selecionado, o cluster exibirá uma simulação de interrupção após 3 a 4 minutos
Fechar janela
Verifique se a us-west1 está inativa e se a us-west2 foi transferida como principal
Navegue até Banco de dados → psc-mongodb-uswest1-uswest2 → Visão geral
Validar a conectividade com o cluster pela nova instância principal, us-west2
Faça login na VM1 da região us-west1 e acesse o mongodb em us-west2, validando o acesso global ao 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 com o IAP no Cloud Shell e tente de novo se o tempo limite for atingido.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Conecte-se à implantação do MongoDB
No login do SO 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 SO do Cloud Shell, faça o seguinte.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Sucesso: você confirmou que o acesso global ao PSC permite uma conectividade ininterrupta de endpoints do consumidor entre 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 um nó primário. Embora o cluster tenha resultado em uma interrupção regional, a vm1 do consumidor localizada em us-west1 alcançou com sucesso o novo cluster primário em us-west2.
12. Limpeza
Exclua os endpoints do consumidor no Console do Cloud
Acesse Serviços de rede → Private Service Connect → ENDPOINTS CONECTADAS
Use o filtro psc-endpoint para eliminar a possível exclusão de endpoints não relacionados ao laboratório. Selecionar 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 eliminar a possível exclusão de endpoints não relacionados ao laboratório e aumentar as linhas por página para 100. Selecionar todos os endpoints → LIBERAR
Exclua os componentes do codelab no Cloud Shell.
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 → finalizar a simulação
Selecione Finalizar simulação de interrupção —> Sair
O cluster agora está revertendo us-west1 como principal. Esse processo vai levar de três a quatro minutos. Quando terminar, encerre o cluster. Observe o contorno cinza indicando uma alteração de status.
Insira o nome do cluster → Encerrar
Exclua o endpoint particular associado a us-west1 e us-west2
Na interface do Atlas, navegue até Segurança → Acesso à rede → Endpoint particular → Selecione Encerrar
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 de consumidor, um MongoDB multirregional e endpoints do consumidor. Uma VM localizada em us-west1 conectou-se com sucesso ao MongoDB em us-west1 e us-west2 após um failover regional.
A 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 por uma rede híbrida usando o Private Service Connect e um balanceador de carga de proxy TCP interno
- Como usar o Private Service Connect com a configuração de DNS automática
Leia mais e Vídeos
- Visão geral do Private Service Connect
- O que é o Private Service Connect?
- Tipos de balanceador de carga compatíveis