Dostęp do wielu regionów MongoDB Atlas za pomocą usługi Private Service Connect

Informacje o tym ćwiczeniu (w Codelabs)
schedule92 minuty
subjectOstatnia aktualizacja: 17 kwietnia 2023
account_circleAutorzy: Deepak Michael

Private Service Connect (PSC) upraszcza bezpieczne i prywatne korzystanie z usług. Ten model znacznie upraszcza architekturę sieci, ponieważ pozwala użytkownikom usług na prywatne połączenia z producentami usług w różnych organizacjach i eliminuje potrzebę tworzenia połączeń równorzędnych w wirtualnym środowisku prywatnym w chmurze. Rysunek 1 przedstawia atrybuty peeringu VPC i PSC.

Rysunek 1. 4f9551fc32ed83f5.png

Jako użytkownik usług masz możliwość wyboru sposobu przydzielania prywatnych adresów IP do usług, a jednocześnie nie musisz zarządzać zakresami podsieci w przypadku sieci VPC producenta. Teraz możesz po prostu przypisać wybrany adres IP wirtualny z VPC do takiej usługi za pomocą połączenia usługi.

W tym laboratorium kodu utworzysz kompleksową architekturę Private Service Connect, która ilustruje wykorzystanie globalnego dostępu PSC w MongoDB Atlas.

Dostęp globalny umożliwia klientom nawiązywanie połączeń z Private Service Connect (PSC) bez względu na granice regionalne. Ta funkcja przydaje się do zapewnienia wysokiej dostępności usług zarządzanych hostowanych w wielu regionach lub do umożliwienia klientom dostępu do usługi, która nie znajduje się w tym samym regionie co klient.

Dostęp globalny to opcjonalna funkcja konfigurowana na podstawie reguły przekierowania po stronie klienta. Poniżej znajdziesz polecenie, które pokazuje, jak jest ona skonfigurowana:

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
  • Flaga --allow-psc-global-access włącza dostęp globalny w punkcie końcowym Private Service Connect
  • Dostęp globalny umożliwia klientowi znajdowanie się w innym regionie niż reguła przekierowania Private Service Connect, ale reguła przekierowania musi znajdować się w tym samym regionie co przyłącze usługi, z którym jest połączona.
  • Aby włączyć dostęp globalny, nie trzeba konfigurować załącznika usługi producenta. Jest to opcja dostępna tylko dla konsumentów.

Dostęp globalny można też w dowolnym momencie włączyć lub wyłączyć w przypadku istniejących punktów końcowych. Przy włączaniu dostępu globalnego na istniejącym punkcie końcowym nie dochodzi do przerw w ruchu aktywnych połączeń. Dostęp globalny jest włączony w istniejącej regule przekierowania za pomocą tego polecenia:

gcloud beta compute forwarding-rules update psc-west --allow-psc-global-access

Wyłączanie globalnego dostępu

Dostęp globalny można też wyłączyć w dotychczasowych regułach przekierowania za pomocą flagi --no-allow-psc-global-access. Pamiętaj, że po wykonaniu tego polecenia cały aktywny ruch międzyregionalny zostanie zakończony.

gcloud beta compute forwarding-rules update psc-west --no-allow-psc-global-access

3. Co utworzysz

  1. Utworzony zostanie wieloregionalny klaster MongoDB Atlas (topologia opisana na rysunku 2) z 1 węzłem w regionie us-west1 i 2 węzłami w regionie us-west2.
  2. Sieć VPC konsumenta i powiązana z nią maszyna wirtualna, aby uzyskać dostęp do klastrów MongoDB w regionach us-west1 i us-west2.
  3. Sieć VPC i 2 podsieci w regionach us-west1 i us-west2 z co najmniej 64 wolnymi adresami IP w każdej z nich (utwórz podsieci z zakresem /26 lub niższym).

Klient MongoDB zostanie zainstalowany na maszynie vm1 w VPC konsumenta. Gdy wystąpi błąd w węźle głównym w us-west1, klient będzie mógł odczytywać i zapisywać dane za pomocą nowego węzła głównego w us-west2.

Rysunek 2. ab6c2791514c4481.png

Czego się nauczysz

  • Jak utworzyć sieć VPC i podsieci wdrożone w 2 regionach
  • Jak wdrożyć klaster MongoDB Atlas w wielu regionach
  • Jak utworzyć prywatny punkt końcowy
  • Jak połączyć się z MongoDB
  • Jak przeprowadzić i zweryfikować przełączenie awaryjne MongoDB w wielu regionach

Czego potrzebujesz

  • Projekt Google Cloud
  • Podaj podsieć /26 na region.
  • właściciel projektu lub właściciel organizacji musi mieć dostęp do MongoDB Atlas, aby utworzyć klaster MongoDB z poziomem klastra M10 lub wyższym; (Aby uzyskać bezpłatne środki na korzystanie z usługi PoV, użyj GETATLAS)

4. Zanim zaczniesz

Aktualizowanie projektu w celu obsługi ćwiczeń z programowania

Ten samouczek Codelab wykorzystuje zmienne $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.

W Cloud Shell wykonaj te czynności:

gcloud config list project
gcloud config
set project [YOUR-PROJECT-NAME]
projectname
=YOUR-PROJECT-NAME
echo $projectname

5. Konfiguracja przez konsumenta

Tworzenie środowiska VPC konsumenta

W Cloud Shell wykonaj te czynności:

gcloud compute networks create consumer-vpc --project=$projectname --subnet-mode=custom

Tworzenie podsieci dla użytkowników

W Cloud Shell wykonaj te czynności:

gcloud compute networks subnets create vm-subnet --project=$projectname --range=10.10.10.0/29 --network=consumer-vpc --region=us-west1

W Cloud Shell utwórz punkt końcowy dla konsumenta w regionie 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

W Cloud Shell utwórz punkt końcowy dla konsumenta w regionie 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

Konfiguracja Cloud Router i NAT

Cloud NAT jest używany w tym laboratorium do instalowania pakietów oprogramowania, ponieważ maszyny wirtualne nie mają zewnętrznego adresu IP.

W Cloud Shell utwórz router chmury.

gcloud compute routers create consumer-cr --network consumer-vpc --region us-west1

W Cloud Shell utwórz bramę NAT.

gcloud compute routers nats create consumer-nat --router=consumer-cr --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1

Konfiguracja instancji vm1

W następnej sekcji utworzysz instancję Compute Engine o nazwie vm1.

W Cloud Shell utwórz instancję 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"

Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:

  • dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP;
  • Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.

W Cloud Shell utwórz regułę zapory sieciowej IAP.

gcloud compute firewall-rules create ssh-iap-consumer-vpc \
   
--network consumer-vpc \
   
--allow tcp:22 \
   
--source-ranges=35.235.240.0/20

6. Tworzenie klastra MongoDB Atlas obejmującego wiele regionów

  • Zanim zaczniemy konfigurować PSC, musimy skonfigurować klaster Atlas. Subskrypcję MongoDB Atlas możesz wykupić na 2 sposoby:
  • za pomocą Google Cloud Marketplace, jeśli masz konto Google Cloud; Aby skonfigurować subskrypcję, zapoznaj się z dokumentacją.
  • Na stronie rejestracji Atlasa.
  • Po subskrybowaniu Atlasu kliknij przycisk Utwórz bazę danych, jak pokazano poniżej.

796f5bda844bf400.png

  • Utwórz nowy klaster → Specjalny

56c340661d86962c.png

  • Dostawca i region chmury → Google Cloud
  • Izolacja wielu chmur, wielu regionów i zadań → wybrane (niebieski znacznik wyboru)

6c10293ffd9814ae.png

  • Wybierane węzły → us-west1 (1 węzeł), us-west2 (2 węzły)

e652bd944d785871.png

  • Poziom klastra → M10, pozostaw wszystkie pozostałe ustawienia domyślne

ffa0195b96c2c5ff.png

  • Nazwa klastra → psc-mongodb-uswest1-uswest2

3720fb8c15ba5cc2.png

  • Wybierz → Utwórz klaster.

ec5e3e6983c02e27.png

  • Tworzenie bazy danych trwa 7–10 minut.

d75778d5abf484aa.png

Widok klastra po wdrożeniu

1f0ec6a401578650.png

7. Tworzenie prywatnego punktu końcowego w us-west1

  • Zaloguj się na konto Atlas i otwórz swój projekt.

Tworzenie nowego użytkownika, aby zezwolić na dostęp do odczytu/zapisu do dowolnej bazy danych

Bezpieczeństwo → Dostęp do bazy danych – wybierz Dodaj nowego użytkownika bazy danych. Poniżej znajdziesz przykładową nazwę użytkownika i hasło skonfigurowane jako codelab. Pamiętaj, aby wybrać wbudowaną rolę odczytu i zapisu w dowolnej bazie danych.

f622ab14ddc96fc7.png

  • W sekcji Zabezpieczenia → Dostęp do sieci lista dostępu IP nie wymaga wpisu.

Przygotowanie prywatnych punktów końcowych w MongoDB Atlas

  • Wybierz Dostęp do sieci → Punkty końcowe prywatne → Klaster dedykowany → Dodaj punkt końcowy prywatny 88f5c1d9ae7e46d9.png

Dostawca chmury

  • Wybierz Google Cloud, a następnie Dalej.

5503248bf4019a35.png

Przyłącze usługi

  • Wybierz region us-west1, a następnie kliknij Dalej.

cb31aea7cad182f9.png

Punkty końcowe

  • Aby utworzyć punkt końcowy usługi Private Service Connect, podaj te informacje:
  • Identyfikator projektu Google Cloud: wybierz „Pokaż instrukcje”, aby wyświetlić szczegóły.
  • Nazwa VPC: consumer-vpc
  • Nazwa podsieci: psc-endpoint-us-west1
  • Prefiks punktu końcowego Private Service Connect: psc-endpoint-us-west1

21d76af5367832f4.png

Konfigurowanie punktów końcowych

W następnej sekcji wygenerowany zostanie skrypt powłoki, który należy zapisać lokalnie pod nazwą setup_psc.sh. Po zapisaniu edytuj skrypt powłoki, aby zezwolić psc na dostęp globalny. Możesz to zrobić w Cloud Shell w projekcie Google Cloud.

  • Przykładowy skrypt powłoki. Twoje dane wyjściowe będą miały inne wartości

5c80cf7315a05c25.png

  • Skopiuj skrypt powłoki z konsoli MongoBD i zapisz zawartość w terminalu Cloud Shell w Google Cloud. Pamiętaj, aby zapisać skrypt jako setup_psc.sh.

Przykład przed aktualizacją:

#!/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

Zaktualizuj skrypt powłoki, aby umożliwić dostęp globalny

Za pomocą edytora nano lub vi zidentyfikuj i zaktualizuj skrypt powłoki za pomocą tej składni:

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

Przykład po aktualizacji:

#!/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

Uruchom skrypt powłoki

Przejdź do skryptu setup_psc.sh i go uruchom. Po jego zakończeniu zostanie utworzony plik o nazwie atlasEndpoints-psc-endpoint-us-west1.json. Plik json zawiera listę adresów IP i nazwy punktów końcowych usługi Private Service Connect, które są wymagane do następnego kroku wdrażania.

W Cloud Shell wykonaj te czynności:

sh setup_psc.sh

Po zakończeniu działania skryptu użyj edytora Cloud Shell, aby pobrać plik atlasEndpoints-psc-endpoint-us-west1.json na dysk lokalny.

2856802dd6497f51.png b0059dc8e1558891.png

Prześlij plik JSON

Prześlij wcześniej zapisany plik JSON atlasEndpoints-psc-endpoint-us-west1.json.

3a74e8d9952d793a.png

4938fd8256eb81b4.png

Kliknij Utwórz.

Sprawdzanie punktów końcowych Private Service Connect

W interfejsie MongoDB przejdź do projektu, a następnie do Bezpieczeństwo → Dostęp do sieci → Punkt końcowy prywatny. Po wybraniu karty dedykowany klaster przejście punktu końcowego do stanu dostępne zajmie 10 minut.

Stan dostępny

972aff09d180d9de.png

W konsoli Google Cloud przejdź do Usługi sieciowe → Private Service Connect i wybierz kartę Połączony punkt końcowy, na której wyświetlane są punkty końcowe konsumenta przechodzące z stanu Oczekujące na zatwierdzenie → Zatwierdzone, jak w przykładzie poniżej:

5472dd938604b3.png

8. Tworzenie prywatnego punktu końcowego w us-west2

  • Zaloguj się na konto Atlas i otwórz swój projekt.

Przygotowanie prywatnych punktów końcowych w MongoDB Atlas

  • Wybierz Dostęp do sieci → Punkty końcowe prywatne → Klaster dedykowany → Dodaj punkt końcowy prywatny 88f5c1d9ae7e46d9.png

Dostawca chmury

  • Wybierz Google Cloud, a następnie Dalej.

5503248bf4019a35.png

Przyłącze usługi

  • Wybierz region us-west2 i kliknij Dalej.

fc0b7a8e4274be3b.png

Punkty końcowe

  • Aby utworzyć punkt końcowy usługi Private Service Connect, podaj te informacje:
  • Identyfikator projektu Google Cloud: wybierz „Pokaż instrukcje”, aby wyświetlić szczegóły.
  • Nazwa VPC: consumer-vpc
  • Nazwa podsieci: psc-endpoint-us-west2
  • Prefiks punktu końcowego Private Service Connect: psc-endpoint-us-west2

17b5a056587ede8a.png

Konfigurowanie punktów końcowych

W następnej sekcji wygenerowany zostanie skrypt powłoki, który należy zapisać lokalnie pod nazwą setup_psc.sh. Po zapisaniu edytuj skrypt powłoki, aby zezwolić psc na dostęp globalny. Możesz to zrobić w Cloud Shell w projekcie Google Cloud.

  • Przykładowy skrypt powłoki. Twoje dane wyjściowe będą miały inne wartości

b021821e7d59f450.png

  • Skopiuj skrypt powłoki z konsoli MongoBD i zapisz zawartość w terminalu Cloud Shell w Google Cloud. Pamiętaj, aby zapisać skrypt jako setup_psc.sh.

Przykład przed aktualizacją:

#!/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

Zaktualizuj skrypt powłoki, aby umożliwić dostęp globalny

Za pomocą edytora nano lub vi zidentyfikuj i zaktualizuj skrypt powłoki za pomocą tej składni:

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

Przykład po aktualizacji:

#!/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

Uruchom skrypt powłoki

Przejdź do skryptu setup_psc.sh i go uruchom. Po jego zakończeniu zostanie utworzony plik o nazwie atlasEndpoints-psc-endpoint-us-west2.json. Plik json zawiera listę adresów IP i nazwy punktów końcowych usługi Private Service Connect, które są wymagane do następnego kroku wdrażania.

W Cloud Shell wykonaj te czynności:

sh setup_psc.sh

Po zakończeniu działania skryptu użyj edytora Cloud Shell, aby pobrać plik atlasEndpoints-psc-endpoint-us-west2.json lokalnie.

2856802dd6497f51.png 6e3d944944718f13.png

Prześlij plik JSON

Prześlij wcześniej zapisany plik JSON atlasEndpoints-psc-endpoint-us-west2.json.

3a74e8d9952d793a.png

4938fd8256eb81b4.png

Kliknij Utwórz.

Weryfikowanie punktów końcowych Private Service Connect

W interfejsie MongoDB przejdź do projektu, a następnie do Bezpieczeństwo → Dostęp do sieci → Punkt końcowy prywatny. Po wybraniu karty dedykowanego klastra przejście na nowy punkt końcowy będzie dostępne po 10 minutach.

Stan dostępny:

8801df4f6b39d20a.png

W konsoli Google Cloud przejdź do Usługi sieciowe → Private Service Connect i wybierz kartę Połączony punkt końcowy, na której wyświetlane są punkty końcowe konsumenta przechodzące z stanu Oczekujące na zaakceptowanie → Zaakceptowane, jak pokazano na przykładzie poniżej. W przypadku punktu końcowego dla konsumenta wdrożone jest łącznie 100 punktów końcowych, które przed przejściem do następnego kroku muszą zostać przeniesione do stanu akceptacji.

6131abcdef5c1f49.png

9. Łączenie z MongoDB Atlas z prywatnych punktów końcowych

Po zaakceptowaniu połączeń z usługami prywatnymi potrzebny jest dodatkowy czas (10–15 minut) na zaktualizowanie klastra MongoDB. W interfejsie MongoDB szary kontur oznacza aktualizację klastra, więc połączenie z prywatnym punktem końcowym jest niedostępne.

c1524d2c0c5765d1.png

Znajdź wdrożenie i kliknij Połącz (szare pole nie jest już widoczne).

3eea96af20bfad20.png

Wybierz typ połączenia → Punkt końcowy prywatny, wybierz Wybierz metodę połączenia

16a9090e495640c7.png

Wybierz Połącz z powłoką MongoDB.

35e422af16cb5ce0.png

Wybierz „Nie mam zainstalowanego MongoDB Shell”, Ubuntu 20.4 i upewnij się, że skopiowałeś/skopiowałaś zawartość z kroku 1 i 3 do notatnika.

51be47403c00bab4.png

10. Instalowanie aplikacji mongosh

Przed instalacją musisz utworzyć ciąg poleceń na podstawie wcześniej skopiowanych wartości uzyskanych w kroku 1 i 3. Następnie połączysz się przez SSH z maszyną vm1 za pomocą Cloud Shell, a następnie zainstalujesz aplikację mongosh i zweryfikujesz ją w podstawowej bazie danych (us-west1). Podczas tworzenia vm1 w consumer-vpc został zainstalowany obraz Ubuntu 20.4.

Wybierz metodę połączenia: krok 1. Skopiuj adres URL do pobrania

5da980ff86265dd8.png

Przykładowy ciąg poleceń, który należy zastąpić niestandardowymi wartościami:

https://downloads.mongodb.com/compass/mongodb-mongosh_1.7.1_amd64.deb

Wybierz metodę połączenia, krok 3.

698286bdf3dee3c7.png

Przykładowy ciąg poleceń, który należy zastąpić niestandardowymi wartościami:

mongosh "mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

Logowanie się w vm1

W Cloud Shell wykonaj te czynności:

gcloud config list project
gcloud config
set project [YOUR-PROJECT-NAME]
projectname
=YOUR-PROJECT-NAME
echo $projectname

Zaloguj się do vm1 za pomocą IAP w Cloud Shell i spróbuj ponownie, jeśli wystąpi przekroczenie limitu czasu.

gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap

Wykonywanie instalacji z poziomu systemu operacyjnego

Przeprowadź instalację z zalogowaniem do systemu operacyjnego Cloud Shell. Dodatkowe szczegóły. Zaktualizuj poniższą składnię za pomocą własnego ciągu.

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

Operacja powinna odpowiedzieć

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

Łączenie z wdrożeniem MongoDB

Po zalogowaniu się w Cloud Shell wykonaj te czynności. Nazwa użytkownika i hasło to „codelab”.

mongosh

mongosh
"mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

Przykład poniżej:

d5d0324a273b4d5e.png

Wykonywanie poleceń dotyczących bazy danych

Po zalogowaniu się w Cloud Shell wykonaj te czynności.

show dbs
use Company
db
.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db
.Employee.findOne({"Name":"cosmo"})

11. Aktywny region MongoDB, us-west1

Zanim przejdziemy do przełączenia, sprawdźmy, czy us-west1 jest węzłem głównym, a us-west2 ma 2 węzły dodatkowe.

Otwórz kolejno Baza danych → psc-mongodb-uswest1-uswest2 → Omówienie.

64ca0395807bb3ac.png

W następnej sekcji zaloguj się na vm1 w regionie us-west1, przełącz na podstawowy region klastra MongoDB us-west1 i sprawdź, czy bazę danych można nadal osiągnąć z klastra MongoDB w regionie us-west2.

Możesz przetestować zarówno przełączanie awaryjne na region główny, jak i regionalne w interfejsie Atlasa.

  • Zaloguj się w interfejsie Atlas.
  • Kliknij […] obok nazwy klastra psc-mongodb-uswest1-uswest2 → Test niedostępności.

3a50da4381817975.png

  • Wybierz Wyłączenie regionalne → Wybierz regiony.

b8dfff376477bcbb.png

  • Wybierz główny region us-west1 → Symuluj przerwę w działaniu na poziomie regionu.

76494a750a040bc5.png

Po wybraniu klaster wyświetli symulację przerwy w działaniu po 3–4 minutach

Zamknij okno

3a9f0359bd4e288f.png

bac1b2db0d754bbf.png

Sprawdź, czy us-west1 jest niedostępny, a us-west2 przejął rolę podstawowego.

Otwórz kolejno Baza danych → psc-mongodb-uswest1-uswest2 → Omówienie.

86fd7d5230715645.png

Sprawdzanie połączenia z klasterem za pomocą nowego podstawowego regionu us-west2

Zaloguj się na maszynie wirtualnej 1 znajdującej się w regionie us-west1 i uzyskaj dostęp do bazy danych MongoDB w regionie us-west2, aby sprawdzić globalny dostęp usługi Private Service Connect.

Jeśli Twoja sesja Cloud Shell została zakończona, wykonaj te czynności:

W Cloud Shell wykonaj te czynności:

gcloud config list project
gcloud config
set project [YOUR-PROJECT-NAME]
projectname
=YOUR-PROJECT-NAME
echo $projectname

Zaloguj się do vm1 za pomocą IAP w Cloud Shell i spróbuj ponownie, jeśli wystąpi przekroczenie limitu czasu.

gcloud compute ssh vm1 --project=$projectname --zone=us-west1-a --tunnel-through-iap

Łączenie z wdrożeniem MongoDB

Po zalogowaniu się w Cloud Shell wykonaj te czynności.

mongosh

mongosh
"mongodb+srv://psc-mongodb-uswest1-uswest2-pl-0.2wqno.mongodb.net/psc-mongodb-uswest1-uswest2" --apiVersion 1 --username codelab

Przykład poniżej:

d262800a557b41a3.png

Wykonywanie poleceń dotyczących bazy danych

Po zalogowaniu się w Cloud Shell wykonaj te czynności.

show dbs
use Company
db
.Employee.insertOne({"Name":"cosmo","dept":"devops"})
db
.Employee.findOne()

exit

20c2571d84c0661d.png

Sukces: sprawdzono, że dostęp globalny PSC umożliwia płynną łączność punktów końcowych konsumentów w różnych regionach, co zapewnia wysoką dostępność lub umożliwia działanie w przypadku awarii regionalnych. W tym przypadku w ramach kodu testowego nastąpiło przełączenie regionalne MongoDB w węźle głównym w regionie us-west1, więc region pomocniczy us-west2 przejął kontrolę nad regionem głównym. Mimo że klaster spowodował przerwę w działaniu na poziomie regionalnym, maszyna wirtualna klienta vm1 znajdująca się w regionie us-west1 mogła połączyć się z nowym klastrem głównym w regionie us-west2.

12. Czyszczenie

W Cloud Console usuń punkty końcowe konsumenta

Przejdź do Usługi sieciowe → Private Service Connect → PUNKTY KOŃCOWE POŁĄCZONE

Użyj filtra psc-endpoint, aby wyeliminować potencjalne usunięcie punktów końcowych konsumentów spoza laboratorium. Wybierz wszystkie punkty końcowe → USUŃ.

192548e374b444a1.png

Usuń statyczne wewnętrzne adresy IP powiązane z punktami końcowymi konsumentów

Przejdź do sieci VPC → consumer-vpc → STATYCZNE WEWNĘTRZNE ADRESY IP

Użyj filtra psc-endpoint, aby wyeliminować potencjalne usunięcie punktów końcowych konsumentów spoza laboratorium i zwiększyć liczbę wierszy na stronę do 100. Wybierz wszystkie punkty końcowe → PUBLIKUJ

4cebf164c4fecd83.png

W Cloud Shell usuń komponenty 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

W interfejsie Atlasa znajdź klaster psc-mongodb-uswest1-uswest2 → zakończ symulację.

f82e28ac984d9e20.png

Wybierz Zakończ symulację przerwy w działaniu —> Zamknij.

38feaf055abdceea.png

Klaster przywraca teraz us-west1 jako klaster podstawowy. Ten proces zajmie 3–4 minuty. Po zakończeniu pracy zamknij klaster. Zwróć uwagę na szary kontur wskazujący zmianę stanu.

f249a61bcc966d41.png

9427a9349daa1fea.png

Wstaw nazwę klastra → Zakończ

9ef6d3a6387c5b4b.png

Usuń prywatny punkt końcowy powiązany z regionami us-west1 i us-west2

W interfejsie Atlasa przejdź do opcji Zabezpieczenia → Dostęp do sieci → Punkt końcowy prywatny → Wybierz Zakończ.

56415ea954b2fec9.png

13. Gratulacje

Gratulacje! Punkt końcowy Private Service Connect został skonfigurowany i zweryfikowany z globalnym dostępem do MongoDB w różnych regionach. Udało Ci się utworzyć VPC konsumenta, wieloregionową usługę MongoDB i punkty końcowe konsumenta. Po wystąpieniu awarii regionalnej maszyna wirtualna znajdująca się w regionie us-west1 nawiązała połączenie z usługą MongoDB zarówno w regionie us-west1, jak i us-west2.

Cosmopup uważa, że ćwiczenia z programowania są niesamowite.

8c2a10eb841f7b01.jpeg

Co dalej?

Zapoznaj się z tymi ćwiczeniami z programowania

Więcej informacji i filmy

Dokumenty referencyjne