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

1. Wprowadzenie

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.

2. Włączanie dostępu globalnego

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