Ten dokument jest przeznaczony dla architektów i osób pracujących w operacjach i zespoły administracyjne. W dokumencie opisano przykładowy wzorzec, którego można użyć dla własnych wdrożeń w Google Cloud. W tym wzorcu system równoważenia obciążenia kieruje ruch do Silnik obliczeniowy instancje w zarządzane grupy instancji które służą treści. W przypadku awarii aktualizujesz plik zewnętrzne równoważenie obciążenia HTTP(S). konfigurację i przełączenie awaryjne do lokacji statycznej w Magazyn w chmurze. Aby ukończyć ten samouczek, potrzebujesz zarejestrowanej nazwy domeny, którą kontrolujesz i chcesz używać z tym dokumentem. We wdrożeniach produkcyjnych Twoja witryna internetowa prawdopodobnie zawiera znacznie więcej plików i dodatkowy kod aplikacji na maszynach wirtualnych zarządzanej grupy instancji (maszyn wirtualnych) niż pokazano w tym dokumencie. Cloud Storage obsługuje następnie plik more ograniczona wersja statyczna, która zapewnia minimalną funkcjonalność. W ciepłym trybie awaryjnym scenariusz, użytkownicy widzą tę ograniczoną witrynę do zarządzanych grup instancji odzyskać i może obsłużyć ruch w celu pełnego korzystania z witryny. W tym samouczku wdrażasz zasoby w celu utworzenia środowiska, jak pokazano w następujący obraz: Gdy musisz przełączyć się w tryb failover, zaktualizuj konfigurację modułu równoważenia obciążenia do bezpośredniego ruch do Cloud Storage, jak pokazano na poniższym obrazku: Ten gorący wzorzec przełączania awaryjnego równoważy koszt uruchamiania innego zarządzanego grupę instancji w innym regionie, którego używasz tylko wtedy, gdy regiony podstawowe ponieść porażkę. Koszt statycznej witryny korzystającej z Cloud Storage jest niższy niż koszt uruchomienia innej zarządzanej grupy instancji, ale podczas aktualizacji wczytywania występuje krótkie opóźnienie konfiguracja balansera między opcjami hostingu. Ograniczona strona internetowa doświadczenie w Cloud Storage jest lepsze niż niedostępna strona internetowa i słabe doświadczenie klienta. Dla alternatywnego podejścia wykorzystującego Cloud DNS zamiast zewnętrznego Równoważenie obciążenia HTTP(S) w celu kontrolowania przełączania awaryjnego, patrz Wdróż serwer sieciowy z możliwością przywracania na gorąco, korzystając z Cloud DNS z Compute Engine i Cloud Storage. Ten wzorzec jest przydatny, jeśli masz Cloud DNS lub chcesz go używać. Aby uruchamiać niezawodne aplikacje w Google Cloud, zalecamy projektowanie infrastrukturę aplikacji do obsługi przestojów. W zależności od zastosowania i potrzeb biznesowych, możesz potrzebować zimnego, ciepłego lub gorącego przełączania awaryjnego wzorzec przełączania awaryjnego. Aby uzyskać więcej informacji na temat określania najlepszego podejścia do własne aplikacje, patrz Przewodnik planowania odzyskiwania po awarii. W tym dokumencie użyto podstawowego serwer WWW Apache, ale to samo podejście do wdrażania infrastruktury dotyczy innych środowiska aplikacji, które musisz utworzyć. ## Cele - - Twórz zarządzane regionalnie grupy instancji z niestandardowym obrazem maszyny wirtualnej. - Utwórz zasobnik Cloud Storage. - Utwórz i skonfiguruj zewnętrzne równoważenie obciążenia HTTP(S). - Przetestuj przełączanie awaryjne ciepłego serwera WWW za pomocą zaktualizowanego modułu równoważenia obciążenia konfiguracja. — Przetestuj odzyskiwanie i powrót po awarii przy użyciu zaktualizowanej konfiguracji modułu równoważenia obciążenia. ## Koszty W tym samouczku są używane następujące płatne komponenty usługi Google Cloud: - - Silnik obliczeniowy - Praca w sieci - Magazyn w chmurze Aby wygenerować kosztorys na podstawie przewidywanego użycia, skorzystaj z kalkulatora cen. ## Zanim zaczniesz - - Zaloguj się na swoje konto Google Cloud. Jeśli jesteś nowy Chmura Google, utwórz konto, aby ocenić skuteczność naszych produktów w realistyczne scenariusze. Nowi klienci otrzymują również darmowe kredyty w wysokości 300 USD uruchamiać, testować i wdrażać obciążenia. - W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud. - Upewnij się, że rozliczenia są włączone dla Twojego projektu Cloud. Nauczyć się jak sprawdź, czy rozliczanie jest włączone w projekcie. - Włącz interfejs API Compute Engine. - Zainstaluj i zainicjuj Google Cloud CLI. - W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud. - Upewnij się, że rozliczenia są włączone dla Twojego projektu Cloud. Nauczyć się jak sprawdź, czy rozliczanie jest włączone w projekcie. - Włącz interfejs API Compute Engine. - Zainstaluj i zainicjuj Google Cloud CLI. Możesz uruchomić Google Cloud CLI w konsoli bez instalowania Interfejs wiersza polecenia Google Cloud. Aby uruchomić gcloud CLI w konsoli, użyj Cloud Shell ## Przygotuj środowisko W tej sekcji zdefiniujesz niektóre zmienne dla nazw zasobów i lokalizacje. Te zmienne są używane przez polecenia Google Cloud CLI tak jak Ty rozmieścić zasoby. W całym tym dokumencie, o ile nie zaznaczono inaczej, wszystkie polecenia wprowadza się w Chmurna skorupa lub lokalnym środowisku programistycznym. - Zastąpić z własnym identyfikatorem projektu. W razie potrzeby, podaj własny sufiks nazwy dla zasobów, aby pomóc w wyszukiwaniu i identyfikacji nich, jak np ID_PROJEKTU aplikacja Określ dwa regiony, np oraz us-zachód1 oraz strefę w obrębie jednego z tych regionów, np us-zachód2 . Ta strefa określa, gdzie początkowa podstawowa maszyna wirtualna jest tworzony, który jest używany do tworzenia obrazu dla zarządzanej grupy instancji us-west1-a Na koniec ustaw domenę używaną dla Twojej statycznej witryny, np przyklad.com PROJECT_ID= ID_PROJEKTU NAME_SUFFIX= aplikacja REGION1= us-zachód1 REGION2=nas-zachód2 STREFA=nas-zachód1-a DOMENA= przykład.com ## Utwórz VPC i podsieć Aby zapewnić dostęp sieciowy do maszyn wirtualnych, tworzysz Virtual Private Cloud (VPC) i podsieci. Ponieważ potrzebujesz zarządzanych grup instancji w dwóch regionach, tworzysz jeden podsieci w każdym regionie. Aby uzyskać więcej informacji na temat zalet zwyczaju tryb podsieci do zarządzania zakresami adresów IP używanymi w danym środowisku, zobacz Użyj sieci VPC w trybie niestandardowym. - Utwórz VPC z niestandardowym trybem podsieci: sieci obliczeniowe gcloud tworzą network-$NAME_SUFFIX --subnet-mode=custom Teraz utwórz dwie podsieci w nowym VPC, po jednej dla każdej region. Zdefiniuj własne zakresy adresów, np oraz 10.1.0.0/20 , że mieszczą się w zasięgu Twojej sieci: 10.2.0.0/20 gcloud Compute Networks tworzy podsieci n subnet-$NAME_SUFFIX-$REGION1 n --network=network-$NAME_SUFFIX n --range= 10.1.0.0/20n --region=$REGION1 gcloud Compute Network tworzy podsieci n subnet-$NAME_SUFFIX-$REGION2 n --network=network-$NAME_SUFFIX n --range= 10.2.0.0/20n --region=$REGION2 ## Utwórz reguły zapory sieciowej Aby umożliwić prawidłowy przepływ ruchu sieciowego w VPC, użyj reguły firewalla. - Utwórz reguły zapory, aby zezwolić na ruch sieciowy i kontrole kondycji obciążenia Balancer i zarządzane grupy instancji: reguły zapory sieciowej gcloud compute tworzą allow-http-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --direction=INGRESS n --priority=1000 n --action=ALLOW n --rules=tcp:80 n -- source-ranges=0.0.0.0/0 n --target-tags=http-server gcloud compute firewall-regules create allow-health-check-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --action=allow n --direction=ingress n --source-ranges=130.211.0.0/22,35.191. 0.0/16 n --target-tags=zezwól na sprawdzenie-kondycji n --rules=tcp:80 Reguła HTTP zezwala na ruch do dowolnej maszyny wirtualnej, w której tag serwera http jest zastosowany, i z dowolnego źródła za pomocą 0.0.0.0/0zakres. Dla reguła kontroli stanu, domyślne zakresy dla Google Cloud są ustawione tak, aby platforma działała poprawnie sprawdzić kondycję zasobów. Aby zezwolić na ruch SSH dla początkowej konfiguracji podstawowego obrazu maszyny wirtualnej, scope regułę zapory sieciowej do swojego środowiska za pomocą --source-rangeparametr. Może być konieczna współpraca z zespołem ds. sieci w celu określenia zakresów źródeł korzysta Twoja organizacja Zastąpić z własnymi zakresami adresów IP: IP_ADDRESS_SCOPE gcloud compute firewall-rules create allow-ssh-$NAME_SUFFIX n --network=network-$NAME_SUFFIX n --direction=INGRESS n --priority=1000 n --action=ALLOW n --rules=tcp:22 n -- zakresy-źródeł= IP_ADDRESS_SCOPE Po utworzeniu reguł zapory sprawdź, czy zostały utworzone trzy reguły dodany: lista reguł zapory gcloud compute n --project=$PROJECT_ID n --filter="NETWORK=network-$NAME_SUFFIX"Poniższe przykładowe dane wyjściowe pokazują, że trzy reguły zostały poprawnie wykonane Utworzony: NAZWA KIERUNEK SIECI PRIORYTET ZEZWÓL zezwalaj na sprawdzanie kondycji aplikacji sieciowej INGRESS 1000 tcp: 80 Zezwól-http-aplikacja-aplikacja-sieciowa INGRESS 1000 tcp:80 zezwalaj na aplikację sieciową ssh INGRESS 1000 tcp:22 ## Utwórz i skonfiguruj podstawowy obraz maszyny wirtualnej Aby utworzyć identyczne maszyny wirtualne, które wdrażasz bez dodatkowej konfiguracji, ty użyj niestandardowego obrazu maszyny wirtualnej. Ten obraz przechwytuje konfigurację systemu operacyjnego i Apache oraz służy do tworzenia każdej maszyny wirtualnej w zarządzanej grupie instancji w kolejnych krokach. Na maszynie wirtualnej tworzysz plik basic plik index.html na dysku trwałym i zamontować go do /var/www/example.com. Plik konfiguracyjny Apache pod adresem /etc/apache2/sites-available/example.com.conf obsługuje treści internetowe z zamontowana lokalizacja dysku trwałego Poniższy diagram przedstawia podstawową stronę HTML obsługiwaną przez Apache, która jest przechowywana na dysku trwałym: Tworzysz to środowisko w następujących krokach. - Utwórz podstawową maszynę wirtualną z dołączonym dyskiem trwałym: gcloud compute instancje tworzą vm-base-$NAME_SUFFIX n --zone=$ZONE n --machine-type=n1-standard-1 n --subnet=subnet-$NAME_SUFFIX-$REGION1 n --tags=http-server n --image=debian-10-buster-v20210420 n --image-project=debian-cloud n --boot-disk-size=10GB n --boot-disk-type=pd-balanced n --boot-disk- device-name=vm-base-$NAME_SUFFIX n --create-disk=type=pd-ssd,name=disk-base-$NAME_SUFFIX,size=10GB,device-name=disk-base-$NAME_SUFFIX Używasz parametrów zdefiniowanych na początku tego dokumentu, aby nazwać maszynę wirtualną i połączyć się z właściwą podsiecią. Nazwy są również przypisywane z parametrów for dysk rozruchowy i dysk danych. Aby zainstalować i skonfigurować prostą witrynę internetową, połącz się z podstawową maszyną wirtualną za pomocą SSH: gcloud compute ssh vm-base-$NAME_SUFFIX --zone=$STREFA W sesji SSH z maszyną wirtualną utwórz skrypt, aby skonfigurować maszynę wirtualną w pliku wybrany przez siebie redaktor. Poniższy przykład używa Nano jako redaktor: nano konfiguracja maszyny wirtualnej. Wklej następujący skrypt konfiguracyjny do pliku: kosz/bash NAME_SUFFIX= aplikacja # Utwórz katalog dla podstawowych plików witryny sudo mkdir -p /var/www/example.com sudo chmod a+w /var/www/example.com sudo chown -R dane www: /var/www/example.com # Znajdź nazwę dysku, a następnie sformatuj go i zamontuj DISK_NAME="google-disk-base-$NAME_SUFFIX"DISK_PATHfind /dev/disk/by-id -name DISK_NAME}"| xargs -Ireadlink -f n sudo mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard $DISK_PATH sudo mount -o odrzuć, domyślnie $DISK_PATH /var/www/example.com # Zainstaluj Apache'a sudo apt-get update&& sudo apt-get -y install apache2 # Zapisz podstawowy plik HTML na zamontowanym dysku trwałym sudo tee -a /var/www/example.com/index.html >/dev/null EOF' Przykład HA / DR

Witamy w witrynie Compute Engine z ciepłym przełączaniem awaryjnym do Cloud Storagep>

*:80> ServerName www.example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined EOF # Włącz plik konfiguracyjny Apache i przeładuj usługę sudo a2dissite 000-default sudo a2ensite example.com.conf sudo systemctl przeładuj Apache2 Zaktualizuj zmienna, aby dopasować wartość ustawioną w początek tego dokumentu, np Aplikacja NAME_SUFFIX. Zapisz plik i zamknij edytor. Na przykład w Nano używasz Ctrl-Oto wypisz plik, a następnie wyjdź za pomocą Ctrl-X. Ustaw skrypt konfiguracyjny jako wykonywalny, a następnie uruchom go: chmod +x configure-vm../configure-vm. Wyjdź z sesji SSH do maszyny wirtualnej: Wyjście Uzyskaj adres IP maszyny wirtualnej i użyj curl, aby zobaczyć podstawową stronę internetową: curl $(gcloud Compute instancje opisują vm-base-$NAME_SUFFIX n --zone $ZONE n --format="value(networkInterfaces.accessConfigs.[0].natIPn Zostanie zwrócona podstawowa witryna sieci Web, jak pokazano w poniższym przykładowym wyniku: Przykład HA / DR

Witamy w witrynie Compute Engine z ciepłym przełączaniem awaryjnym do Cloud Storagep>

gcloud compute obrazy tworzą image-disk-$NAME_SUFFIX n --source-disk=disk-base-$NAME_SUFFIX n --source-disk-zone=$ZONE # Twórz szablony instancji szablony instancji gcloud compute utwórz szablon-$NAZWA_SUFFIX-$REGION1 n --machine-type=n1-standard-1 n --subnet=projects/$PROJECT_ID/regions/$REGION1/subnetworks/subnet-$NAME_SUFFIX-$REGION1 n --region=$REGION1 n --tags=http-server n --metadatastartup-script /bin/bashn'echo\ UUIDblkid\ -s\ UUID\ -o\ wartość\ /dev/sdb /var/www/example. com\ ext4\ odrzuć,defaults,nofail\ 0\ 2 ee\ -a\ /etc/fstabn'mount\ -a n --image=image-$NAZWA_SUFFIX n --create-disk=image=image-dysk-$NAZWA_SUFFIX ,automatyczne usuwanie=tak szablony instancji gcloud compute utwórz szablon-$NAZWA_SUFFIX-$REGION2 n --machine-type=n1-standard-1 n --subnet=projects/$PROJECT_ID/regions/$REGION2/subnetworks/subnet-$NAME_SUFFIX-$REGION2 n --region=$REGION2 n --tags=http-server n --metadatastartup-script /bin/bashn'echo\ UUIDblkid\ -s\ UUID\ -o\ wartość\ /dev/sdb /var/www/example. com\ ext4\ odrzuć,defaults,nofail\ 0\ 2 ee\ -a\ /etc/fstabn'mount\ -a n --image=image-$NAZWA_SUFFIX n --create-disk=image=image-dysk-$NAZWA_SUFFIX ,automatyczne usuwanie=tak # Utwórz kontrolę stanu dla instancji maszyn wirtualnych Gcloud Compute kontrole kondycji tworzą http http-basic-check-$NAME_SUFFIX n --port 80 # Utwórz zarządzane grupy instancji zarządzane grupy instancji gcloud compute tworzenie grupy instancji-$NAME_SUFFIX-$REGION1 n --template=template-$NAME_SUFFIX-$REGION1 n --size=2 n --region=$REGION1 n --health-check=http- podstawowy-check-$NAME_SUFFIX zarządzane grupy instancji gcloud compute tworzenie grupy instancji-$NAME_SUFFIX-$REGION2 n --template=template-$NAME_SUFFIX-$REGION2 n --size=2 n --region=$REGION2 n --health-check=http- podstawowy-check-$NAME_SUFFIX ## Utwórz i skonfiguruj system równoważenia obciążenia Aby użytkownicy mogli uzyskać dostęp do Twojej witryny, musisz zezwolić na ruch do maszyn wirtualnych które działają w zarządzanych grupach instancji. Chcesz także automatycznie przekierować ruch do nowych maszyn wirtualnych w przypadku awarii strefy w zarządzanej grupie instancji. W poniższej sekcji utworzysz plik zewnętrzny system równoważenia obciążenia z usługą zaplecza dla ruchu HTTP na porcie 80, użyj kontroli kondycji utworzonej w poprzednich krokach i zmapuj zewnętrzny adres IP adres do usługi zaplecza. Aby uzyskać więcej informacji, zobacz Jak skonfigurować prosty zewnętrzny system równoważenia obciążenia HTTP. - Utwórz i skonfiguruj moduł równoważenia obciążenia dla swojej aplikacji: # Skonfiguruj reguły portu dla portu HTTP 80 gcloud compute grupy instancji zestaw nazwanych portów n grupa instancji-$NAZWA_SUFFIX-$REGION1 n --named-ports http:80 n --region $REGION1 gcloud compute instance-groups set-named-ports n instance-group-$NAME_SUFFIX-$REGION2 n --named-ports http:80 n --region $REGION2 # Utwórz usługę zaplecza i dodaj do niej zarządzane grupy instancji gcloud compute backend-services create n web-backend-service-$NAME_SUFFIX n --protocol=HTTP n --port-name=http n --health-checks=http-basic-check-$NAME_SUFFIX n --global gcloud compute backend-services add-backend n web-backend-service-$NAME_SUFFIX n --instance-group=instance-group-$NAME_SUFFIX-$REGION1 n --instance-group-region=$REGION1 n --global gcloud compute backend-services add-backend n web-backend-service-$NAME_SUFFIX n --instance-group=instance-group-$NAME_SUFFIX-$REGION2 n --instance-group-region=$REGION2 n --global # Utwórz mapę adresu URL dla usługi zaplecza gcloud compute url-maps utwórz web-map-http-$NAME_SUFFIX n --default-service web-backend-service-$NAME_SUFFIX # Skonfiguruj przekazywanie dla ruchu HTTP gcloud compute target-http-proxy utwórz n http-lb-proxy-$NAME_SUFFIX n --url-map web-map-http-$NAME_SUFFIX gcloud compute forwarding-rules create n http-content-rule-$NAME_SUFFIX n --global n --target-http-proxy=http-lb-proxy-$NAME_SUFFIX n --ports=80 Uzyskaj adres IP reguły przekierowania dla ruchu sieciowego: IP_ADDRESSgcloud compute forwarding-rules opisują http-content-rule-$NAME_SUFFIX n --global n --format="value(IPAddressn Posługiwać się curl lub otwórz przeglądarkę internetową, aby wyświetlić witrynę za pomocą adresu IP adres load balancera z poprzedniego kroku: zwiń $IP_ADDRESS Zakończenie wdrażania modułu równoważenia obciążenia zajmuje kilka minut prawidłowo kierować ruch do Twojego backendu. Zwracany jest błąd HTTP 404, jeśli plik system równoważenia obciążenia jest nadal wdrażany. W razie potrzeby odczekaj kilka minut i spróbuj ponownie wejść na stronę. Zostanie zwrócona podstawowa witryna sieci Web, jak pokazano w poniższym przykładowym wyniku: Przykład HA / DR

Witamy w witrynie Compute Engine z ciepłym przełączaniem awaryjnym do Cloud Storagep>

zarządzane grupy instancji odzyskują i mogą obsługiwać ruch w całej witrynie doświadczenie. - Zweryfikuj domenę którego chcesz używać z zasobnikiem Cloud Storage. Utwórz zasobnik Cloud Storage pasujący do nazwy domeny, której jesteś właścicielem i chcesz użyć: gsutil mb gsstatic-web.$DOMAIN The Używana jest zmienna DOMAIN zdefiniowana na początku tego dokumentu, na przykład . Ten przykład przechowuje pliki statyczne w przyklad.com static-web.example.com. Utwórz lokalny plik, który skopiujesz do zasobnika Cloud Storage w pliku Następny krok: cat< index.html HA / DR example

Welcome to a test static web server with warm failover from Cloud Storagep>

HA / DR example

Welcome to a test static web server with warm failover from Cloud Storagep>

curlagain, or open your web browser, to access the IP address of the load balancer: curl $IP_ADDRESS It might take a few minutes for the load balancer to update the configuration and to correctly direct traffic back to your managed instance groups. If needed, wait a few minutes and try to access the website again. The main website from the managed instance groups is returned, as shown in the following example output: HA / DR example p>Welcome to a Compute Engine website with warm failover to Cloud Storagep> ## Clean up To avoid incurring charges to your Google Cloud account for the resources used in this tutorial, either delete the project that contains the resources, or keep the project and delete the individual resources. To delete the individual resources created in this document, complete the following steps: - Delete the Cloud Storage bucket: gsutil rm -r gsstatic-web.$DOMAIN Delete the load balancer configuration: gcloud compute forwarding-rules delete n http-content-rule-$NAME_SUFFIX --global --quiet gcloud compute target-http-proxies delete n http-lb-proxy-$NAME_SUFFIX --quiet gcloud compute url-maps delete web-map-http-$NAME_SUFFIX --quiet gcloud compute url-maps delete web-map-http-bucket-$NAME_SUFFIX --quiet gcloud compute backend-services delete n web-backend-service-$NAME_SUFFIX --global --quiet gcloud compute backend-buckets delete web-bucket-$NAME_SUFFIX --quiet Delete the managed instance groups and health check: gcloud compute instance-groups managed delete n instance-group-$NAME_SUFFIX-$REGION1 n --region=$REGION1 --quiet gcloud compute instance-groups managed delete n instance-group-$NAME_SUFFIX-$REGION2 n --region=$REGION2 --quiet gcloud compute health-checks delete http-basic-check-$NAME_SUFFIX --quiet Delete the instance templates, images, base VM, and persistent disks: gcloud compute instance-templates delete n template-$NAME_SUFFIX-$REGION1 --quiet gcloud compute instance-templates delete n template-$NAME_SUFFIX-$REGION2 --quiet gcloud compute images delete image-$NAME_SUFFIX --quiet gcloud compute images delete image-disk-$NAME_SUFFIX --quiet gcloud compute instances delete vm-base-$NAME_SUFFIX n --zone=$ZONE --quiet Delete the firewall rules. gcloud compute firewall-rules delete n allow-health-check-$NAME_SUFFIX --quiet gcloud compute firewall-rules delete n allow-ssh-$NAME_SUFFIX --quiet gcloud compute firewall-rules delete n allow-http-$NAME_SUFFIX --quiet Delete the subnet and VPC. gcloud compute networks subnets delete n subnet-$NAME_SUFFIX-$REGION1 --region=$REGION1 --quiet gcloud compute networks subnets delete n subnet-$NAME_SUFFIX-$REGION2 --region=$REGION2 --quiet gcloud compute networks delete network-$NAME_SUFFIX --quiet ## What's next - - For an alternative approach that uses Cloud DNS instead of external HTTP(S) Load Balancing to control the failover, see Deploy a warm recoverable web server using Cloud DNS with Compute Engine and Cloud Storage. This pattern is useful if you have, or want to use, Cloud DNS. - To learn how how to determine the best approach for your own applications and which recovery method to use, see the Disaster recovery planning guide. - To see other patterns for applications, such as cold and hot failover, see Disaster recovery scenarios for applications. - For more ways to handle scale and availability, see the Patterns for scalable and resilient apps. - Explore reference architectures, diagrams, tutorials, and best practices about Google Cloud. Take a look at our Cloud Architecture Center.