Dieses Dokument richtet sich an Architekten und Personen, die im Betrieb und im Betrieb tätig sind Verwaltungsteams. Das Dokument beschreibt ein Beispielmuster, das Sie verwenden können für Ihre eigenen Bereitstellungen in Google Cloud. In diesem Muster leitet ein Load Balancer den Datenverkehr an Compute-Engine Instanzen in verwaltete Instanzgruppen die dem Inhalt dienen. Bei einem Ausfall aktualisieren Sie die externes HTTP(S)-Load-Balancing Konfiguration und Failover auf eine statische Site in Cloud-Speicher. Um dieses Tutorial abzuschließen, benötigen Sie einen registrierten Domänennamen, den Sie kontrollieren und mit diesem Dokument verwenden möchten. In Produktionsbereitstellungen enthält Ihre Website wahrscheinlich viel mehr Dateien und zusätzlicher Anwendungscode auf Ihren virtuellen Maschinen der verwalteten Instanzgruppe (VMs) als in diesem Dokument gezeigt. Cloud Storage hostet dann eine more eingeschränkte statische Version, die minimale Funktionalität bietet. In einem warmen Failover Szenario sehen Benutzer diese eingeschränkte Website bis zu den verwalteten Instanzgruppen sich erholen und den Datenverkehr für das vollständige Website-Erlebnis bereitstellen. In diesem Lernprogramm stellen Sie Ressourcen bereit, um eine Umgebung zu erstellen, wie in der gezeigt folgendes Bild: Wenn Sie ein Failover durchführen müssen, aktualisieren Sie die Load Balancer-Konfiguration auf direct Datenverkehr zu Cloud Storage, wie in der folgenden Abbildung gezeigt: Dieses Warm-Failover-Muster gleicht die Kosten für die Ausführung eines anderen verwalteten aus Instanzgruppe in einer anderen Region, die Sie nur als primäre Regionen verwenden scheitern. Die Kosten einer statischen Website mit Cloud Storage sind niedriger als die laufenden Kosten eine andere verwaltete Instanzgruppe, aber es gibt eine kurze Verzögerung, wenn Sie die Last aktualisieren Balancer-Konfiguration zwischen den Hosting-Optionen. Die eingeschränkte Website Erfahrung in Cloud Storage ist besser als eine nicht verfügbare Website und schlecht Kundenerfahrung. Für einen alternativen Ansatz, der Cloud DNS anstelle von extern verwendet HTTP(S) Load Balancing zur Steuerung des Failover, siehe Stellen Sie einen warmen, wiederherstellbaren Webserver mit Cloud DNS mit Compute Engine und Cloud Storage bereit. Dieses Muster ist nützlich, wenn Sie Cloud DNS haben oder verwenden möchten. Um zuverlässige Anwendungen in Google Cloud auszuführen, empfehlen wir, dass Sie entwerfen Ihre Anwendungsinfrastruktur zur Bewältigung von Ausfällen. Abhängig von Ihrer Anwendung und geschäftlichen Anforderungen benötigen Sie möglicherweise ein Cold-Failover, ein Warm-Failover oder ein Hot-Failover Failover-Muster. Weitere Informationen zur Bestimmung des besten Ansatzes für Ihre eigenen Anwendungen finden Sie unter Leitfaden zur Disaster-Recovery-Planung. Dieses Dokument verwendet eine grundlegende Apache-Webserver, aber der gleiche Ansatz für die Bereitstellung der Infrastruktur gilt für andere Anwendungsumgebungen, die Sie erstellen müssen. ## Ziele - – Erstellen Sie regional verwaltete Instanzgruppen mit einem benutzerdefinierten VM-Image. - Erstellen Sie einen Cloud Storage-Bucket. - Externes HTTP(S)-Load-Balancing erstellen und konfigurieren. – Testen Sie das warme Webserver-Failover mit einem aktualisierten Load Balancer Aufbau. – Testen Sie die Wiederherstellung und das Failback mit einer aktualisierten Load Balancer-Konfiguration. ## Kosten In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet: - - Compute-Engine - Netzwerken - Cloud-Speicher Um einen Kostenvoranschlag basierend auf Ihrer voraussichtlichen Nutzung zu erstellen, nutzen Sie den Preisrechner. ## Bevor Sie beginnen - - Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie neu sind Google Cloud, Erstellen Sie ein Konto, um die Leistung unserer Produkte zu bewerten Szenarien aus der realen Welt. Neukunden erhalten außerdem $300 in kostenlosen Credits Workloads ausführen, testen und bereitstellen. - In der Google Cloud-Konsole auf der Projektauswahlseite Wählen Sie ein Google Cloud-Projekt aus oder erstellen Sie eins. - Stellen Sie sicher, dass die Abrechnung für Ihr Cloud-Projekt aktiviert ist. Lernen wie man Überprüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist. - Aktivieren Sie die Compute Engine-API. - Installieren und initialisieren Sie die Google Cloud CLI. - In der Google Cloud-Konsole auf der Projektauswahlseite Wählen Sie ein Google Cloud-Projekt aus oder erstellen Sie eins. - Stellen Sie sicher, dass die Abrechnung für Ihr Cloud-Projekt aktiviert ist. Lernen wie man Überprüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist. - Aktivieren Sie die Compute Engine-API. - Installieren und initialisieren Sie die Google Cloud CLI. Sie können die Google Cloud CLI in der ausführen Konsole ohne Installation der Google Cloud-CLI. Zum Ausführen der gcloud-Befehlszeilenschnittstelle in der -Konsole verwenden Sie die Cloud Shell ## Bereiten Sie die Umgebung vor In diesem Abschnitt definieren Sie einige Variablen für Ihre Ressourcennamen und Standorte. Diese Variablen werden von den Google Cloud CLI-Befehlen wie Sie verwendet die Ressourcen bereitstellen. In diesem Dokument geben Sie, sofern nicht anders angegeben, alle Befehle ein Cloud-Shell oder Ihre lokale Entwicklungsumgebung. - Ersetzen mit Ihrer eigenen Projekt-ID. Wenn gewünscht, Geben Sie Ihren eigenen Namenszusatz für Ressourcen an, um die Suche und Identifizierung zu erleichtern sie, wie z PROJEKT_ID App Geben Sie zwei Regionen an, z Und us-west1 , und eine Zone innerhalb einer dieser Regionen, wie z us-west2 . Diese Zone definiert, wo sich die anfängliche Basis-VM befindet erstellt, das zum Erstellen eines Images für die verwaltete Instanzgruppe verwendet wird us-west1-a Legen Sie abschließend eine Domain fest, die für Ihre statische Website verwendet wird, z beispiel.com PROJEKT_ID= PROJEKT_ID NAME_SUFFIX= App REGION1= us-west1 REGION2= us-west2 ZONE= us-west1-a DOMÄNE= example.com ## Erstellen Sie eine VPC und ein Subnetz Um Netzwerkzugriff auf die VMs bereitzustellen, erstellen Sie Virtual Private Cloud (VPC) und Subnetze. Da Sie verwaltete Instanzgruppen in zwei Regionen benötigen, erstellen Sie eine Subnetz in jeder Region. Weitere Informationen zu den Vorteilen des Brauchtums Subnetzmodus zum Verwalten von IP-Adressbereichen, die in Ihrer Umgebung verwendet werden, siehe Verwenden Sie VPC-Netzwerke im benutzerdefinierten Modus. - Erstellen Sie die VPC mit einem benutzerdefinierten Subnetzmodus: gcloud compute networks create network-$NAME_SUFFIX --subnet-mode=custom Erstellen Sie nun zwei Subnetze in der neuen VPC, jeweils eines Region. Definieren Sie eigene Adressbereiche, wie z Und 10.1.0.0/20 , Das in Ihren Netzbereich passen: 10.2.0.0/20 gcloud compute networks subnets create n subnet-$NAME_SUFFIX-$REGION1 n --network=network-$NAME_SUFFIX n --range= 10.1.0.0/20n --region=$REGION1 gcloud compute networks subnets create n subnet-$NAME_SUFFIX-$REGION2 n --network=network-$NAME_SUFFIX n --range= 10.2.0.0/20n --region=$REGION2 ## Firewallregeln erstellen Damit der Netzwerkdatenverkehr in der VPC korrekt fließen kann, verwenden Sie Firewall-Regeln. - Erstellen Sie Firewallregeln, um Webdatenverkehr und Zustandsprüfungen für die Last zuzulassen Balancer und verwaltete Instanzgruppen: gcloud compute firewall-rules create 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-rules 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=Gesundheitsprüfung zulassen n --rules=tcp:80 Die HTTP-Regel lässt Datenverkehr zu jeder VM zu, auf der die http-Servertag wird angewendet, und aus jeder Quelle mit der 0.0.0.0/0Bereich. Für die Gesundheitsprüfungsregel, Standardbereiche für Google Cloud sind so eingestellt, dass die Plattform korrekt funktioniert Überprüfen Sie den Zustand der Ressourcen. Um SSH-Datenverkehr für die Erstkonfiguration eines Basis-VM-Images zuzulassen, ist der Bereich die Firewall-Regel für Ihre Umgebung mithilfe von --source-rangeparameter. Möglicherweise müssen Sie mit Ihrem Netzwerkteam zusammenarbeiten, um die Quellbereiche zu bestimmen Ihre Organisation verwendet Ersetzen mit eigenen IP-Adressbereichen: 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 -- Quellbereiche= IP_ADDRESS_SCOPE Nachdem Sie die Firewall-Regeln erstellt haben, überprüfen Sie, ob die drei Regeln erfolgreich sind hinzugefügt: gcloud compute firewall-rules list n --project=$PROJECT_ID n --filter="NETWORK=network-$NAME_SUFFIX"Die folgende Beispielausgabe zeigt, dass die drei Regeln korrekt waren erstellt: NAME NETZWERKRICHTUNG PRIORITÄT ERLAUBEN allow-health-check-app network-app INGRESS 1000 tcp:80 allow-http-app network-app INGRESS 1000 tcp:80 allow-ssh-app network-app INGRESS 1000 tcp:22 ## Erstellen und konfigurieren Sie ein Basis-VM-Image Um identische VMs zu erstellen, die Sie ohne zusätzliche Konfiguration bereitstellen, müssen Sie Verwenden Sie ein benutzerdefiniertes VM-Image. Dieses Image erfasst die Betriebssystem- und Apache-Konfiguration und wird verwendet, um in den nächsten Schritten jede VM in der verwalteten Instanzgruppe zu erstellen. Auf der VM erstellen Sie eine Basic index.html-Datei auf der persistenten Festplatte und montieren Sie es an /var/www/example.com. Eine Apache-Konfigurationsdatei unter /etc/apache2/sites-available/example.com.conf stellt Webinhalte von bereit Eingehängter persistenter Speicherort Das folgende Diagramm zeigt die grundlegende HTML-Seite, die von Apache bereitgestellt und gespeichert wird auf der persistenten Festplatte: Sie erstellen diese Umgebung in den folgenden Schritten. - Erstellen Sie eine Basis-VM mit einer angehängten persistenten Festplatte: gcloud compute-Instanzen erstellen 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- Gerätename=vm-base-$NAME_SUFFIX n --create-disk=type=pd-ssd,name=disk-base-$NAME_SUFFIX,size=10GB,device-name=disk-base-$NAME_SUFFIX Sie verwenden die am Anfang dieses Dokuments definierten Parameter, um die VM zu benennen und mit dem richtigen Subnetz verbinden. Namen werden auch aus den Parametern für vergeben die Bootdiskette und die Datendiskette. Um die einfache Website zu installieren und zu konfigurieren, stellen Sie über eine Verbindung mit der Basis-VM her SSH: gcloud compute ssh vm-base-$NAME_SUFFIX --zone=$ZONE Erstellen Sie in Ihrer SSH-Sitzung mit der VM ein Skript zum Konfigurieren der VM in einer Redakteur Ihrer Wahl. Das folgende Beispiel verwendet Nano als Herausgeber: nano configure-vm. Fügen Sie das folgende Konfigurationsskript in die Datei ein: bin/bash NAME_SUFFIX= App # Verzeichnis für die grundlegenden Website-Dateien erstellen sudo mkdir -p /var/www/example.com sudo chmod a+w /var/www/example.com sudo chown -R www-Daten: /var/www/example.com # Suchen Sie den Datenträgernamen, formatieren und mounten Sie ihn 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,$DISK_PATH verwerfen sudo mount -o discard, standardmäßig $DISK_PATH /var/www/example.com # Apache installieren sudo apt-get update&& sudo apt-get -y install apache2 # Schreiben Sie eine grundlegende HTML-Datei auf die gemountete persistente Festplatte sudo tee -a /var/www/example.com/index.html >/dev/null EOF' HA/DR-Beispiel

Willkommen auf einer Compute Engine-Website mit warmem Failover zu 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 # Aktivieren Sie die Apache-Konfigurationsdatei und laden Sie den Dienst neu sudo a2dissite 000-default sudo a2ensite example.com.conf sudo systemctl apache2 neu laden Aktualisieren Sie die Variable, die dem eingestellten Wert entspricht der Anfang dieses Dokuments, wie z NAME_SUFFIX-App. Schreiben Sie die Datei aus und beenden Sie Ihren Editor. Zum Beispiel verwenden Sie in Nano Strg-O, um die Datei zu schreiben, dann mit beenden Strg-X. Machen Sie das Konfigurationsskript ausführbar und führen Sie es dann aus: chmod +x configure-vm../configure-vm. Beenden Sie die SSH-Sitzung zur VM: Ausfahrt Rufen Sie die IP-Adresse der VM ab und verwenden Sie sie curlum die grundlegende Webseite anzuzeigen: curl $(gcloud compute-Instanzen beschreiben vm-base-$NAME_SUFFIX n --zone $ZONE n --format="value(networkInterfaces.accessConfigs.[0].natIPn Die grundlegende Website wird zurückgegeben, wie in der folgenden Beispielausgabe gezeigt: HA/DR-Beispiel

Willkommen auf einer Compute Engine-Website mit warmem Failover zu Cloud Storagep>

gcloud compute images create image-disk-$NAME_SUFFIX n --source-disk=disk-base-$NAME_SUFFIX n --source-disk-zone=$ZONE # Erstellen Sie Instanzvorlagen gcloud compute instance-templates create template-$NAME_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\ value\ /dev/sdb /var/www/example. com\ ext4\ discard,defaults,nofail\ 0\ 2 ee\ -a\ /etc/fstabn'mount\ -a n --image=image-$NAME_SUFFIX n --create-disk=image=image-disk-$NAME_SUFFIX ,automatisches Löschen=ja gcloud compute instance-templates create template-$NAME_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\ value\ /dev/sdb /var/www/example. com\ ext4\ discard,defaults,nofail\ 0\ 2 ee\ -a\ /etc/fstabn'mount\ -a n --image=image-$NAME_SUFFIX n --create-disk=image=image-disk-$NAME_SUFFIX ,automatisches Löschen=ja # Erstellen Sie eine Zustandsprüfung für VM-Instanzen gcloud compute health-checks create http http-basic-check-$NAME_SUFFIX n --port 80 # Erstellen Sie die verwalteten Instanzgruppen gcloud compute instance-groups managed create instance-group-$NAME_SUFFIX-$REGION1 n --template=template-$NAME_SUFFIX-$REGION1 n --size=2 n --region=$REGION1 n --health-check=http- basic-check-$NAME_SUFFIX gcloud compute instance-groups managed create instance-group-$NAME_SUFFIX-$REGION2 n --template=template-$NAME_SUFFIX-$REGION2 n --size=2 n --region=$REGION2 n --health-check=http- basic-check-$NAME_SUFFIX ## Erstellen und konfigurieren Sie einen Load Balancer Damit Benutzer auf Ihre Website zugreifen können, müssen Sie Datenverkehr zu den VMs zulassen die in den verwalteten Instanzgruppen ausgeführt werden. Sie möchten auch automatisch umleiten Datenverkehr zu neuen VMs, wenn in einer verwalteten Instanzgruppe ein Zonenfehler auftritt. Im folgenden Abschnitt erstellen Sie eine externer Loadbalancer mit einem Back-End-Dienst für HTTP-Datenverkehr auf Port 80, verwenden Sie die in den vorherigen Schritten erstellte Zustandsprüfung und ordnen Sie eine externe IP zu Adresse bis zum Back-End-Dienst. Weitere Informationen finden Sie unter So richten Sie einen einfachen externen HTTP-Load-Balancer ein. - Erstellen und konfigurieren Sie den Load Balancer für Ihre Anwendung: # Portregeln für HTTP-Port 80 konfigurieren gcloud compute instance-groups set-named-ports n instance-group-$NAME_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 # Erstellen Sie einen Back-End-Dienst und fügen Sie ihm die verwalteten Instanzgruppen hinzu 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 # Erstellen Sie eine URL-Zuordnung für den Backend-Dienst gcloud compute url-maps create web-map-http-$NAME_SUFFIX n --default-service web-backend-service-$NAME_SUFFIX # Konfigurieren Sie die Weiterleitung für den HTTP-Verkehr gcloud compute target-http-proxys create 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 Rufen Sie die IP-Adresse der Weiterleitungsregel für den Webdatenverkehr ab: IP_ADDRESSgcloud compute forwarding-rules beschreiben http-content-rule-$NAME_SUFFIX n --global n --format="value(IPAddressn Verwenden curl, oder öffnen Sie Ihren Webbrowser, um die Website mit der IP anzuzeigen Adresse des Load Balancers aus dem vorherigen Schritt: curl $IP_ADDRESS Es dauert einige Minuten, bis der Load Balancer die Bereitstellung abgeschlossen hat den Datenverkehr korrekt an Ihr Backend weiterleiten. Ein HTTP 404-Fehler wird zurückgegeben, wenn die Load Balancer wird noch bereitgestellt. Warten Sie bei Bedarf einige Minuten und versuchen Sie es erneut auf die Website zugreifen. Die grundlegende Website wird zurückgegeben, wie in der folgenden Beispielausgabe gezeigt: HA/DR-Beispiel

Willkommen auf einer Compute Engine-Website mit warmem Failover zu Cloud Storagep>

Verwaltete Instanzgruppen werden wiederhergestellt und können Datenverkehr für die gesamte Website bereitstellen Erfahrung. - Überprüfen Sie die Domäne die Sie mit Ihrem Cloud Storage-Bucket verwenden möchten. Erstellen Sie einen Cloud Storage-Bucket, der dem Namen Ihrer Domain entspricht und verwenden möchten: gsutil mb gsstatic-web.$DOMAIN Die Die zu Beginn dieses Dokuments definierte DOMAIN-Variable wird verwendet, z . In diesem Beispiel werden die statischen Dateien unter gespeichert beispiel.com static-web.example.com. Erstellen Sie eine lokale Datei, die Sie in den Cloud Storage-Bucket in kopieren nächster Schritt: 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.