1. Introduzione
Private Service Connect (PSC) semplifica il modo in cui i servizi vengono utilizzati in modo sicuro e privato. Questo modello semplifica notevolmente l'architettura di rete consentendo ai consumatori di servizi di connettersi in privato ai produttori di servizi in più organizzazioni ed elimina la necessità di peering virtual private cloud. La Figura 1 illustra gli attributi VPC peering e PSC.
Figura 1.
In qualità di consumer di servizi, ti consente la flessibilità di scegliere come allocare i tuoi IP privati ai servizi, rimuovendo al contempo il carico di gestione degli intervalli di subnet per le VPC del producer. Ora puoi semplicemente assegnare un IP virtuale scelto dalla tua VPC a questo servizio utilizzando un collegamento al servizio.
In questo codelab, creerai un'architettura Private Service Connect completa che illustra l'utilizzo dell'accesso globale PSC con MongoDB Atlas.
L'accesso globale consente ai client di connettersi a Private Service Connect (PSC) oltre i confini regionali. Questa operazione è utile per creare un'alta disponibilità nei servizi gestiti ospitati in più regioni o per consentire ai client di accedere a un servizio che non si trova nella stessa regione del client.
2. Attivazione dell'accesso globale
L'accesso globale è una funzionalità facoltativa configurata nella regola di inoltro lato consumatore. Il seguente comando mostra come è configurato:
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
- Il flag
--allow-psc-global-access
attiva l'accesso globale su un endpoint Private Service Connect - L'accesso globale consente al client di trovarsi in una regione diversa da quella della regola di inoltro Private Service Connect, ma la regola di inoltro deve trovarsi comunque nella stessa regione del collegamento del servizio a cui è connesso.
- Non è richiesta alcuna configurazione sull'associazione del servizio del produttore per attivare l'accesso globale. Si tratta di un'opzione puramente per i consumatori.
L'accesso globale può essere attivato o disattivato in qualsiasi momento anche per gli endpoint esistenti. Non si verificano interruzioni del traffico per le connessioni attive quando viene attivato l'accesso globale su un endpoint esistente. L'accesso globale è abilitato in una regola di inoltro esistente con il seguente comando:
gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access
Disattivare l'accesso globale
L'accesso globale può essere disattivato anche nelle regole di inoltro esistenti con il flag --no-allow-psc-global-access
. Tieni presente che qualsiasi traffico interregionale attivo verrà interrotto dopo l'esecuzione di questo comando.
gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access
3. Cosa creerai
- Verrà creato un cluster MongoDB Atlas multi-regione (la topologia è descritta nella Figura 2) con un nodo nella regione us-west1 e due nodi nelle regioni us-west2.
- Un VPC consumer e una VM associata per accedere ai cluster MongoDB in us-west1 e us-west2.
- Una VPC e due subnet rispettivamente nelle regioni us-west1 e us-west2 con almeno 64 indirizzi IP disponibili in ogni subnet (crea subnet con /26 e versioni precedenti).
Il client MongoDB verrà installato sulla VM1 nella VPC del consumatore. Quando il nodo principale non funziona in us-west1, il client potrà eseguire operazioni di lettura/scrittura tramite il nuovo nodo principale in us-west2.
Figura 2.
Obiettivi didattici
- Come creare un VPC e subnet di cui è stato eseguito il deployment in due regioni
- Come eseguire il deployment di un cluster MongoDB Atlas multi-regione
- Come creare un endpoint privato
- Come connettersi a MongoDB
- Come eseguire e convalidare il failover MongoDB multiregione
Che cosa ti serve
- Progetto Google Cloud
- Fornisci una subnet /26 per regione
- Accesso del proprietario del progetto o dell'organizzazione a MongoDB Atlas per creare un cluster MongoDB con il livello del cluster M10 o superiore. (utilizza GETATLAS per ottenere crediti senza costi per l'esecuzione del PoV)
4. Prima di iniziare
Aggiornare il progetto per supportare il codelab
Questo Codelab utilizza le variabili $per facilitare l'implementazione della configurazione di gcloud in Cloud Shell.
In Cloud Shell, svolgi i seguenti passaggi:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
5. Configurazione del consumatore
Crea il VPC del consumatore
In Cloud Shell, svolgi i seguenti passaggi:
gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom
Crea le subnet dei consumatori
In Cloud Shell, svolgi i seguenti passaggi:
gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1
In Cloud Shell, crea l'endpoint consumer per 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
In Cloud Shell, crea l'endpoint consumer per 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
Configurazione di router Cloud e NAT
Cloud NAT viene utilizzato nel codelab per l'installazione del pacchetto software poiché le istanze VM non dispongono di un indirizzo IP esterno.
In Cloud Shell, crea il router Cloud.
gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1
In Cloud Shell, crea il 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
Configurazione dell'istanza vm1
Nella sezione seguente, creerai l'istanza Compute Engine vm1.
In Cloud Shell, crea l'istanza 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"
Per consentire a IAP di connettersi alle tue istanze VM, crea una regola firewall che:
- Si applica a tutte le istanze VM a cui vuoi accedere tramite IAP.
- Consente il traffico in entrata dall'intervallo IP 35.235.240.0/20. Questo intervallo contiene tutti gli indirizzi IP che utilizzati da IAP per l'inoltro TCP.
In Cloud Shell, crea la regola firewall IAP.
gcloud compute firewall-rules create ssh-iap-consumer-vpc \
--network consumer-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
6. Crea il cluster MongoDB Atlas multiregione
- Prima di iniziare la configurazione del PSC, dobbiamo configurare un cluster Atlas. Puoi abbonarti a MongoDB Atlas in uno dei due modi seguenti:
- Tramite Google Cloud Marketplace se hai un account Google Cloud. Per configurare l'abbonamento, consulta la documentazione.
- Nella pagina di registrazione di Atlas.
- Dopo aver effettuato l'abbonamento ad Atlas, fai clic sul pulsante Crea un database come mostrato di seguito.
- Crea nuovo cluster → Dedicato
- Regione e provider cloud → Google Cloud
- Isolamento multi-cloud, multi-regione e dei carichi di lavoro → Selezionato (spunta blu)
- Nodi eleggibili → us-west1 (1 nodo), us-west2 (2 nodi)
- Livello cluster → M10, lascia invariate tutte le altre impostazioni predefinite
- Nome del cluster → psc-mongodb-uswest1-uswest2
- Seleziona → Crea cluster
- La creazione del database richiede 7-10 minuti
Visualizzazione del cluster dopo il deployment
7. Creazione di un endpoint privato per us-west1
- Accedi al tuo account Atlas e vai al progetto.
Creare un nuovo utente per consentire l'accesso in lettura/scrittura a qualsiasi database
Sicurezza → Accesso al database seleziona Aggiungi nuovo utente del database. Di seguito è riportato un esempio di nome utente e password configurati come codelab. Assicurati di selezionare il ruolo integrato Lettura e scrittura in qualsiasi database.
- In Sicurezza → Accesso alla rete, l'elenco di accesso IP non richiede una voce
Preparare gli endpoint privati in MongoDB Atlas
- Seleziona Accesso alla rete → Endpoint privati → Cluster dedicato → Aggiungi endpoint privato
Fornitore di servizi cloud
- Seleziona Google Cloud e poi Avanti.
Collegamento servizio
- Seleziona la regione us-west1 e poi Avanti.
Endpoint
- Per creare un endpoint Private Service Connect, fornisci quanto segue:
- ID progetto Google Cloud: seleziona "Mostra istruzioni" per maggiori dettagli
- Nome VPC: consumer-vpc
- Nome subnet: psc-endpoint-us-west1
- Prefisso dell'endpoint Private Service Connect: psc-endpoint-us-west1
Configura gli endpoint
Nella sezione seguente viene generato uno script shell che deve essere salvato localmente con il nome setup_psc.sh. Una volta salvato, modifica lo script shell per consentire l'accesso globale a psc. Puoi eseguire questa operazione in Cloud Shell del progetto Google Cloud.
- Script shell di esempio, l'output avrà valori diversi
- Copia lo script shell dalla console MongoBD e salva i contenuti nel terminale Cloud Shell di Google Cloud. Assicurati di salvare lo script come setup_psc.sh
Esempio prima dell'aggiornamento:
#!/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
Aggiornare lo script shell per supportare l'accesso globale
Utilizza l'editor nano o vi per identificare e aggiornare lo script shell con la sintassi riportata di seguito:
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
Esempio dopo l'aggiornamento:
#!/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
Esegui lo script shell
Vai a eseguire lo script setup_psc.sh. Al termine, viene creato un file denominato atlasEndpoints-psc-endpoint-us-west1.json. Il file JSON contiene un elenco di indirizzi IP e nomi di endpoint Private Service Connect necessari per il passaggio successivo del deployment.
In Cloud Shell, svolgi i seguenti passaggi:
sh setup_psc.sh
Al termine dello script, utilizza l'editor di Cloud Shell per scaricare atlasEndpoints-psc-endpoint-us-west1.json localmente.
Carica il file JSON
Carica il file JSON salvato in precedenza atlasEndpoints-psc-endpoint-us-west1.json
Seleziona Crea
Convalidare gli endpoint Private Service Connect
Nell'interfaccia utente di MongoDB, vai al progetto, poi a Sicurezza → Accesso alla rete → Endpoint privato. Se selezioni la scheda Cluster dedicato, la transizione dell'endpoint a disponibile richiederà 10 minuti.
Stato disponibile
Nella console Google Cloud, vai a Servizi di rete → Private Service Connect, seleziona la scheda Endpoint connesso che mostra gli endpoint consumer in transizione da In attesa a Accettato, come nell'esempio seguente:
8. Creazione di endpoint privati per us-west2
- Accedi al tuo account Atlas e vai al progetto.
Preparare gli endpoint privati in MongoDB Atlas
- Seleziona Accesso alla rete → Endpoint privati → Cluster dedicato → Aggiungi endpoint privato
Fornitore di servizi cloud
- Seleziona Google Cloud e poi Avanti.
Collegamento servizio
- Seleziona la regione us-west2 e poi Avanti.
Endpoint
- Per creare un endpoint Private Service Connect, fornisci quanto segue:
- ID progetto Google Cloud: seleziona "Mostra istruzioni" per maggiori dettagli
- Nome VPC: consumer-vpc
- Nome subnet: psc-endpoint-us-west2
- Prefisso dell'endpoint Private Service Connect: psc-endpoint-us-west2
Configura gli endpoint
Nella sezione seguente viene generato uno script shell che deve essere salvato localmente con il nome setup_psc.sh. Una volta salvato, modifica lo script shell per consentire l'accesso globale a psc. Puoi eseguire questa operazione in Cloud Shell del progetto Google Cloud.
- Script shell di esempio, l'output avrà valori diversi
- Copia lo script shell dalla console MongoBD e salva i contenuti nel terminale Cloud Shell di Google Cloud. Assicurati di salvare lo script come setup_psc.sh
Esempio prima dell'aggiornamento:
#!/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
Aggiornare lo script shell per supportare l'accesso globale
Utilizza l'editor nano o vi per identificare e aggiornare lo script shell con la sintassi riportata di seguito:
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
Esempio dopo l'aggiornamento:
#!/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
Esegui lo script shell
Vai a eseguire lo script setup_psc.sh. Al termine, viene creato un file denominato atlasEndpoints-psc-endpoint-us-west2.json. Il file JSON contiene un elenco di indirizzi IP e nomi di endpoint di Private Service Connect necessari per il passaggio successivo del deployment.
In Cloud Shell, svolgi i seguenti passaggi:
sh setup_psc.sh
Al termine dello script, utilizza l'editor di Cloud Shell per scaricare localmente il file atlasEndpoints-psc-endpoint-us-west2.json.
Carica il file JSON
Carica il file JSON salvato in precedenza atlasEndpoints-psc-endpoint-us-west2.json
Seleziona Crea
Convalida gli endpoint Private Service Connect
Nell'interfaccia utente di MongoDB, vai al progetto, poi a Sicurezza → Accesso alla rete → Endpoint privato. Se selezioni la scheda Cluster dedicato, l'endpoint diventa disponibile dopo 10 minuti.
Stato disponibile:
Nella console Google Cloud, vai a Servizi di rete → Private Service Connect, seleziona la scheda Endpoint connesso che mostra gli endpoint consumer in transizione da In attesa a Accettato, come nell'esempio di seguito. Nell'endpoint consumer vengono implementati un totale di 100 endpoint che devono passare allo stato Accettato prima di passare al passaggio successivo.
9. Connettiti a MongoDB Atlas da endpoint privati
Una volta accettate le connessioni ai servizi privati, è necessario del tempo aggiuntivo (10-15 minuti) per aggiornare il cluster MongoDB. Nell'interfaccia utente di MongoDB, il contorno grigio rappresenta l'aggiornamento del cluster, pertanto la connessione all'endpoint privato non è disponibile.
Identifica il deployment e seleziona Connetti (tieni presente che la casella grigia non è più presente)
Scegli il tipo di connessione → Endpoint privato, seleziona Scegli un metodo di connessione
Seleziona Connettiti con MongoDB Shell
Seleziona Non ho installato MongoDB Shell, Ubuntu 20.4 e assicurati di copiare i contenuti del passaggio 1 e del passaggio 3 in un blocco note.
10. Installa l'applicazione mongosh
Prima dell'installazione, devi creare una stringa di comando in base ai valori copiati in precedenza ottenuti nei passaggi 1 e 3. Successivamente, esegui SSH su vm1 utilizzando Cloud Shell, poi installa e convalida l'applicazione mongosh nel database principale (us-west1). L'immagine Ubuntu 20.4 è stata installata durante la creazione di vm1 nella consumer-vpc.
Scegliere un metodo di connessione: passaggio 1, copiare l'URL di download
Stringa di comando di esempio, da sostituire con i valori personalizzati:
https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb
Scegli un metodo di connessione, passaggio 3.
Stringa di comando di esempio, da sostituire con i valori personalizzati:
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Accedi a vm1
In Cloud Shell, svolgi i seguenti passaggi:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Accedi a vm1 utilizzando IAP in Cloud Shell e riprova se si verifica un timeout.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Eseguire l'installazione dal sistema operativo
Esegui l'installazione dall'accesso all'OS Cloud Shell, sono disponibili ulteriori dettagli, aggiorna la sintassi di seguito con la stringa personalizzata
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
L'operazione dovrebbe rispondere con un
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
Connettersi al deployment di MongoDB
Dopo aver eseguito l'accesso al sistema operativo Cloud Shell, svolgi i seguenti passaggi. Il nome utente e la password configurati sono codelab.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Ad esempio:
Eseguire comandi sul database
Dopo aver eseguito l'accesso al sistema operativo Cloud Shell, svolgi i seguenti passaggi.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne({"Name":"cosmo"})
11. Regione MongoDB attiva per il failover, us-west1
Prima di eseguire il failover, convalidiamo che us-west1 sia principale e che us-west2 abbia due nodi secondari.
Vai a Database → psc-mongodb-uswest1-uswest2 → Panoramica
Nella sezione seguente, accedi alla VM1 in us-west1, esegui il failover della regione del cluster MongoDB principale us-west1 e verifica che il database sia ancora raggiungibile dal cluster MongoDB in us-west2.
Puoi testare il failover principale e regionale dall'interfaccia utente di Atlas.
- Accedi all'interfaccia utente di Atlas.
- Fai clic su [...] accanto al nome del cluster, psc-mongodb-uswest1-uswest2 → Test interruzione.
- Seleziona Interruzione a livello di regione → Seleziona regioni.
- Seleziona la regione principale, us-west1 → Simula interruzione a livello di regione.
Una volta selezionato, il cluster mostrerà la simulazione dell'interruzione dopo 3-4 minuti
Chiudi la finestra
Verifica che us-west1 sia inattivo e che us-west2 sia ora considerato principale
Vai a Database → psc-mongodb-uswest1-uswest2 → Panoramica
Convalida la connettività al cluster con il nuovo dominio principale us-west2
Accedi alla VM1 in us-west1 e accedi a MongoDB in us-west2 per convalidare l'accesso globale a Private Service Connect.
Se la sessione Cloud Shell è stata interrotta, svolgi i seguenti passaggi:
In Cloud Shell, svolgi i seguenti passaggi:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectname=YOUR-PROJECT-NAME
echo $projectname
Accedi a vm1 utilizzando IAP in Cloud Shell e riprova se si verifica un timeout.
gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap
Connettersi al deployment di MongoDB
Dopo aver eseguito l'accesso al sistema operativo Cloud Shell, svolgi i seguenti passaggi.
mongosh
mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab
Ad esempio:
Eseguire comandi sul database
Dopo aver eseguito l'accesso al sistema operativo Cloud Shell, svolgi i seguenti passaggi.
show dbs
use Company
db.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db.Employee.findOne()
exit
Risultato: hai verificato che l'accesso globale al PSC consente una connettività senza interruzioni degli endpoint dei consumatori tra le regioni per favorire l'alta disponibilità o a causa di interruzioni regionali. Nel codelab, il failover regionale di MongoDB si è verificato nel nodo principale in us-west1, pertanto la regione secondaria us-west2 ha assunto il controllo di una principale. Sebbene il cluster abbia causato un'interruzione del servizio a livello regionale, la VM1 del consumatore in us-west1 ha raggiunto correttamente il nuovo cluster principale in us-west2.
12. Esegui la pulizia
Elimina gli endpoint consumer dalla console Cloud
Vai a Servizi di rete → Private Service Connect → Endpoint collegati
Utilizza il filtro psc-endpoint per eliminare la potenziale eliminazione degli endpoint consumer non di laboratorio. Seleziona tutti gli endpoint → ELIMINA
Elimina gli indirizzi IP interni statici associati agli endpoint consumer
Vai a Rete VPC → consumer-vpc → INDIRIZZI IP INTERNI STATICI
Utilizza il filtro psc-endpoint per eliminare la potenziale eliminazione degli endpoint consumer non di laboratorio e aumentare le righe per pagina a 100. Seleziona tutti gli endpoint → RILASCIARE
Da Cloud Shell, elimina i componenti del 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
Nell'interfaccia utente di Atlas, identifica il cluster psc-mongodb-uswest1-uswest2 → termina la simulazione
Seleziona Termina simulazione interruzione > Esci
Il cluster ora ripristina us-west1 come principale. Questo processo richiederà 3-4 minuti. Al termine, termina il cluster e prendi nota del contorno grigio che indica una modifica dello stato.
Inserisci il nome del cluster → Termina
Elimina l'endpoint privato associato a us-west1 e us-west2
Nell'interfaccia utente di Atlas, vai a Sicurezza → Accesso alla rete → Endpoint privato → seleziona Termina
13. Complimenti
Congratulazioni, hai configurato e convalidato correttamente un endpoint Private Service Connect con accesso globale a MongoDB in tutte le regioni. Hai creato una VPC consumer, MongoDB multiregione ed endpoint consumer. Una VM in us-west1 si è connessa correttamente a MongoDB sia in us-west1 che in us-west2 in caso di failover regionale.
Cosmopup pensa che i codelab siano fantastici.
Passaggi successivi
Dai un'occhiata ad alcuni di questi codelab…
- Utilizzare Private Service Connect per pubblicare e utilizzare servizi con GKE
- Utilizzare Private Service Connect per pubblicare e utilizzare i servizi
- Connettersi ai servizi on-premise tramite Hybrid Networking utilizzando Private Service Connect e un bilanciatore del carico proxy TCP interno
- Utilizzare Private Service Connect con la configurazione DNS automatica
Letture e video di approfondimento
- Panoramica di Private Service Connect
- Che cos'è Private Service Connect?
- Tipi di bilanciatori del carico supportati