IIS-Webserver mit Load-Balancing bereitstellen


Diese Anleitung ist der dritte Teil einer Reihe, die Sie bei der Bereitstellung einer hochverfügbaren Windows-Architektur mit Microsoft Active Directory, SQL Server und Internet Information Services (IIS) unterstützt. In dieser Anleitung richten Sie zwei IIS-Webserver ein, die in verschiedenen Zonen innerhalb derselben Region ausgeführt werden. Anschließend verbinden Sie die Webserver mit Ihrer SQL Server-Verfügbarkeitsgruppe und den Domaincontrollern. Durch das Einrichten der Webserver hinter einem Load-Balancer reduzieren Sie die Last für die einzelnen Server. Sie können die Anwendung auch dann weiter ausführen, wenn einer der Server offline ist.

Die Reihe besteht aus folgenden Anleitungen:

Sie richten einen Domaincontroller und eine SQL Server-Instanz in einem Google Cloud-Projekt ein. Jede Komponente in dieser Bereitstellung ist außerdem so konzipiert, dass sie sicher in die von den Domaincontrollern bereitgestellte Windows-Authentifizierung integriert werden kann.

Die in dieser Anleitung beschriebene Architektur wurde für die Ausführung in Google Cloud entwickelt. Einige Komponenten wie Active Directory und SQL Server können jedoch lokal ausgeführt werden. In dieser Anleitung wird nur das Szenario behandelt, bei dem alle Komponenten in Google Cloud ausgeführt werden.

Ziele

  • Zwei Netzwerk-Subnetze erstellen, die sich über zwei Zonen erstrecken.
  • In jeder Zone eine virtuelle Maschine (VM) für Microsoft SQL Server bereitstellen.
  • Jede SQL Server-Instanz so konfigurieren, dass sie Ihrer Active Directory-Domain hinzugefügt wird.
  • Einen Windows Server-Failover-Cluster erstellen.
  • Eine Bookshelf-Beispieldatenbank für SQL Server erstellen und konfigurieren.
  • Die immer aktive SQL Server-Verfügbarkeitsgruppe einrichten.

Kosten

In dieser Anleitung verwenden Sie weiterhin Google Cloud-Ressourcen, die Sie in vorherigen Anleitungen konfiguriert haben. Sie verwenden die folgenden kostenpflichtigen Komponenten:

Gemäß dem Preisrechner liegen die geschätzten Kosten für diese Umgebung bei ca. 4 $ pro Tag.

Hinweise

Die in dieser Anleitung verwendete Konfiguration erfordert Zugriff auf einen Windows Domain Controller und eine funktionierende Active Directory-Domain. Wenn Sie diese Umgebung noch nicht haben, führen Sie die Schritte in den folgenden Anleitungen aus:

Für Teile dieser Anleitung führen Sie Aufgaben auf einer Windows-Workstation aus. Dies kann Ihr lokaler Computer sein. Er muss sich nicht innerhalb des VPC-Netzwerks befinden, das Sie für die IIS-Webserver verwenden. Prüfen Sie, ob auf der Workstation Folgendes installiert ist:

Gemeinsame Variablen initialisieren

Im ersten Teil dieser Reihe haben Sie Variablen definiert, die festlegen, wo Elemente der Infrastruktur in Google Cloud bereitgestellt werden. Prüfen Sie, ob die Variablen noch korrekt festgelegt sind und mit den zuvor festgelegten Werten übereinstimmen.

  1. Cloud Shell öffnen

    Zu Cloud Shell

  2. Erstellen Sie in Cloud Shell die folgenden Umgebungsvariablen, um die Werte festzulegen, die später in der Anleitung benötigt werden.

    Durch die Befehle wird als Region us-east1 festgelegt. Wenn Sie in den vorherigen Anleitungen eine andere Region verwendet haben, ändern Sie die Region in diesem Skript entsprechend in die zuvor verwendete.

    region=us-east1
    zone_1=${region}-b
    zone_2=${region}-c
    vpc_name=webappnet
    project_id=your-project-id
    

    Ersetzen Sie your-project-id durch die ID des von Ihnen verwendeten Google Cloud-Projekts.

Netzwerkinfrastruktur erstellen

In diesem Abschnitt fügen Sie dem vorhandenen VPC-Netzwerk (Virtual Private Cloud) Subnetzwerke hinzu. (Sie haben das VPC-Netzwerk in einer vorherigen Anleitung erstellt.) Diese Subnetze bieten eindeutige IP-Adressbereiche, die den Webserverinstanzen zugewiesen sind und später optionale Firewallrichtlinien anhand der Subnetze bieten können.

  1. Fügen Sie in Cloud Shell dem vorhandenen VPC-Netzwerk ein Subnetz hinzu:

    gcloud compute networks subnets create public-webapp-zone \
        --network $vpc_name \
        --region $region \
        --range 10.5.0.0/24 \
        --project $project_id
    
  2. Erstellen Sie eine interne Firewallregel, die Traffic zwischen internen IP-Adressen zulässt:

    gcloud compute firewall-rules create  allow-internal-ports-public-webapp \
        --network $vpc_name \
        --allow tcp:1-65535,udp:1-65535,icmp \
        --source-ranges 10.5.0.0/24 \
        --project $project_id
    

Webserver starten

Sie verwenden ein Image aus dem Google Cloud Marketplace, um Ihre Webserver bereitzustellen. Nachdem Sie die Webserver bereitgestellt haben, können Sie sie als Ziele für die Bereitstellung von Webanwendungen verwenden.

Ersten Server erstellen

  1. Rufen Sie den Google Cloud Marketplace auf.

    Zu Google Cloud Marketplace

  2. Wählen Sie in der Google Cloud Console das Google Cloud-Projekt aus, in dem der Webserver ausgeführt werden soll. Da diese Anleitung auf dem vorherigen Satz aufbaut, verwenden Sie für diese Anleitung dasselbe Projekt, das Sie in den vorherigen Anleitungen verwendet haben.

  3. Legen Sie die folgenden Werte auf der Seite fest:

    • Bereitstellungsname: webserver1
    • Zone: zone_1
    • Windows Server-Betriebssystemversion: 2016
    • Starttyp: nichtflüchtiger SSD-Speicher
    • Laufwerkgröße: 200 GB
    • Netzwerkname: vpc_name
    • Subnetzwerkname: public-webapp-zone
    • Firewall: WebDeploy-Traffic zulassen, HTTP-Traffic zulassen

    Ersetzen Sie zone_1 und vpc_name durch die Werte, die Sie zuvor beim Initialisieren von Variablen verwendet haben.

  4. Klicken Sie auf Bereitstellen und warten Sie, bis die Google Cloud Console anzeigt, dass die Bereitstellung abgeschlossen ist.

Verbindung zur Serverinstanz herstellen

  1. Erstellen Sie in Cloud Shell ein Passwort für die Instanz webserver1:

    gcloud compute reset-windows-password webserver1 \
        --zone $zone_1 \
        --project $project_id \
        --quiet
    
  2. Stellen Sie über Remote Desktop Protocol (RDP) eine Verbindung zur neuen Windows-Instanz her. Verwenden Sie die Anmeldedaten, die Sie im vorherigen Schritt erstellt haben.

Serverinstanz konfigurieren

  1. Öffnen Sie auf der webserver1-Instanz das PowerShell-Terminal als Administrator.

  2. Legen Sie Variablen für die DNS-IP-Adressen und den Domainnamen fest:

    $DNS1 = "10.1.0.100"
    $DNS2 = "10.2.0.100"
    $DomainName = "example-gcp.com"
    
  3. Erstellen Sie ein lokales Dienstkonto mit dem Namen webapp.service, das Sie später zum Veröffentlichen der Webanwendung verwenden:

    net user webapp.service * /add
    

    Geben Sie ein Passwort ein, wenn Sie dazu aufgefordert werden. Verwenden Sie ein starkes Passwort und speichern Sie es zur späteren Verwendung an einem sicheren Ort.

  4. Aktivieren Sie das Konto und fügen Sie es der lokalen Gruppe "Administratoren" hinzu:

    net user webapp.service /active:yes
    net localgroup administrators webapp.service /add
    
  5. Konfigurieren Sie die DNS-Server:

    netsh interface ip set dns Ethernet static $DNS1
    netsh interface ip add dns Ethernet $DNS2 index=2
    
  6. Fügen Sie dem Webserver die Domain example-gcp.com hinzu:

    Add-Computer -DomainName $DomainName -Credential (Get-Credential "example\Administrator")
    

    Geben Sie ein Passwort für das Administratorkonto ein, wenn Sie dazu aufgefordert werden. Dies ist das Domainkonto, das Sie beim Erstellen einer Active Directory-Gesamtstruktur in der ersten Anleitung dieser Reihe verwendet haben. Verwenden Sie ein starkes Passwort und speichern Sie es zur späteren Verwendung an einem sicheren Ort.

    Sie können die folgende Fehlermeldung ignorieren:

    WARNING: The changes will take effect after you restart the computer webserver1.
    
  7. Starten Sie die VM neu:

    Restart-Computer
    

    Dadurch wird die geöffnete RDP-Sitzung geschlossen.

Zweite Serverinstanz erstellen und konfigurieren

Sie wiederholen jetzt die vorherigen Schritte, um eine zweite Serverinstanz zu erstellen.

  1. Wiederholen Sie das Verfahren zum Erstellen des Servers mit den folgenden Werten:

    • Bereitstellungsname: webserver2
    • Zone: zone_2
    • Maschinentyp: 2 vCPUs
    • Windows Server-Betriebssystemversion: 2016
    • Starttyp: nichtflüchtiger SSD-Speicher
    • Laufwerkgröße: 200 GB
    • Netzwerkname: vpc_name
    • Subnetzwerkname: public-webapp-zone
    • Firewall: WebDeploy-Traffic zulassen, HTTP-Traffic zulassen

    Ersetzen Sie zone_2 und vpc_name durch die Werte, die Sie zuvor beim Initialisieren von Variablen verwendet haben.

  2. Erstellen Sie ein Passwort für die Windows-Instanz webserver2:

    gcloud compute reset-windows-password webserver2 \
        --zone $zone_2\
        --project $project_id \
        --quiet
    

    In diesem Schritt wird das Passwort für Ihr Nutzerkonto für die Verbindung mit RDP festgelegt. Der Nutzername ist der Name Ihres Google-Kontos, also der Nutzername, der vom Befehl gcloud config get-value core/account zurückgegeben wird. Notieren Sie sich den Nutzernamen und das Passwort zur späteren Verwendung in dieser Anleitung.

  3. Stellen Sie über RDP eine Verbindung zur Instanz her. Verwenden Sie die Anmeldedaten, die Sie im vorherigen Schritt erstellt haben.

  4. Stellen Sie eine Verbindung zur Instanz webserver2 her. Führen Sie die Schritte aus, die Sie für die erste Instanz verwendet haben. Verwenden Sie jedoch das Passwort, das Sie für die zweite Serverinstanz erstellt haben.

  5. Konfigurieren Sie die Instanz webserver2. Führen Sie die Schritte aus, die Sie zum Konfigurieren der ersten Instanz verwendet haben. Erstellen Sie dasselbe Dienstkonto mit demselben Passwort.

Webanwendung klonen

Die nächste Aufgabe besteht darin, jeden IIS-Server zu konfigurieren und eine ASP.NET-Beispielanwendung bereitzustellen. Die Webanwendung verfügt über Anmeldedaten, um automatisch eine Verbindung zur SQL Server-Instanz herzustellen, die Sie in der vorherigen Anleitung konfiguriert haben.

  1. Achten Sie darauf, dass Sie auf der Windows-Workstation angemeldet sind, auf der Visual Studio und Git installiert sind.

  2. Klonen Sie in einem Befehlsfenster auf der Windows-Workstation das Quellcode-Beispiel-Repository auf die Workstation:

    cd c:\
    git clone https://github.com/GoogleCloudPlatform/getting-started-dotnet.git
    cd getting-started-dotnet
    git checkout ad49d787eec88fb30a4b45b4146f5cb63c0519e
    
  3. Gehen Sie zum folgenden Ordner:

    C:\getting-started-dotnet\aspnet\2-structured-data
    
  4. Doppelklicken Sie auf die Datei 2-structured-data.sln, um die Beispielanwendungslösung in Visual Studio zu öffnen.

  5. Doppelklicken Sie im Projektmappen-Explorer auf die Datei Web.config, um sie zu öffnen.

  6. Legen Sie für den Schlüssel GoogleCloudSamples:ProjectId die Projekt-ID fest.

    Für die Projekt-ID webapp-sql-ad sieht die Zeile in etwa so aus:

    <add key="GoogleCloudSamples:ProjectId" value="webapp-sql-ad" />
    
  7. Legen Sie den Wert GoogleCloudSamples:BookStore auf sqlserver fest:

    <add key="GoogleCloudSamples:BookStore" value="sqlserver" />
    
  8. Suchen Sie am Ende der Datei unter <connectionStrings> das XML-Unterelement connectionStrings mit dem Attribut name="LocalSqlServer". Führen Sie anschließend folgende Schritte aus:

    • Aktualisieren Sie den Wert connectionString mit dem Namen des SQL Server-Verfügbarkeitsgruppenlisteners, also sql-listener. (Sie richten diesen Listener in dieser Anleitungsreihe unter SQL-Server für mehrere Subnetze bereitstellen ein.)
    • Ändern Sie Initial Catalog zu bookshelf.
    • Setzen Sie Integrated Security auf True.
    • Verwenden Sie beim Einrichten der Datenbank den Nutzernamen und das Anmeldepasswort, die Sie für das Datenbankdienstkonto erstellt haben.
  9. Speichern und schließen Sie die Web.config-Datei.

  10. Klicken Sie zum Erstellen der Lösung im Visual Studio-Menü auf Erstellen > Projektmappe erstellen.

ASP.NET-Anwendung bereitstellen

In diesem Abschnitt stellen Sie die Webanwendung auf beiden Webservern bereit.

  1. Wenn Sie die Datei 2-structured-data.sln auf der Workstation geschlossen haben, öffnen Sie sie wieder. Suchen Sie die Datei im folgenden Ordner und doppelklicken Sie darauf:

    C:\getting-started-dotnet\aspnet\2-structured-data
    
  2. Klicken Sie in Visual Studio auf Tools > Google Cloud Tools > Google Cloud Explorer.

  3. Wählen Sie das Projekt aus, an dem Sie arbeiten, und erweitern Sie dann Google Compute Engine.

  4. Klicken Sie mit der rechten Maustaste auf die Instanz webserver1.

  5. Wählen Sie Manage Windows credentials (Windows-Anmeldedaten verwalten).

  6. Klicken Sie auf Add Credentials (Anmeldedaten hinzufügen)

  7. Geben Sie den Nutzernamen webapp.service ein.

  8. Wählen Sie I have password for this user (Ich habe das Passwort für diesen Nutzer) aus und geben Sie dann das Passwort ein, das Sie beim Starten der Webserver erstellt haben.

  9. Stellen Sie sicher, dass Create a password for me (Passwort für mich erstellen) nicht ausgewählt ist, und klicken Sie dann auf Speichern.

  10. Klicken Sie auf Close (Schließen), um das Fenster mit den Windows-Anmeldedaten zu schließen.

  11. Schließen Sie Google Cloud Explorer.

  12. Klicken Sie in Visual Studio auf Tools > Google Cloud Tools > Publish 2-structured-data to Google Cloud (2-strukturierte Daten in Google Cloud veröffentlichen).

  13. Klicken Sie im Dialogfeld Publish (Veröffentlichen) auf Compute Engine.

  14. Wählen Sie die VM webserver1 aus und setzen Sie Anmeldeinformationen auf webapp.service.

  15. Klicken Sie auf Publish (Veröffentlichen), um die Beispiel-App zu erstellen und bereitzustellen.

    Nachdem die Beispielanwendung veröffentlicht wurde, öffnet Visual Studio die Anwendung in Ihrem Standardwebbrowser.

  16. Wiederholen Sie diesen Vorgang für webserver2.

Load-Balancing einrichten

Sie können jetzt Netzwerk-Load-Balancing für die Webserver einrichten. Im Rahmen dieses Vorgangs fügen Sie dem Load-Balancer eine Systemdiagnose hinzu. Der globale Load-Balancer verteilt Anfragen automatisch auf die IIS-Server. Wenn außerdem einer der IIS-Server bei den Systemdiagnosen ausfällt und offline ist, leitet der Load-Balancer den Traffic automatisch an den anderen Server weiter.

  1. Erstellen Sie in Cloud Shell eine statische externe IP-Adresse für den Load-Balancer:

    gcloud compute addresses create webapp-lb-ip \
        --region $region \
        --project $project_id
    

    Die VM-Instanzen empfangen Pakete, die für diese IP-Adresse bestimmt sind.

  2. Fügen Sie ein HTTP-Systemdiagnoseobjekt hinzu:

    gcloud compute http-health-checks create bookshelf-check \
        --project $project_id \
        --request-path /Books
    

    In diesem Beispiel werden die Standardeinstellungen für den Systemdiagnosemechanismus verwendet. Sie können diese Einstellungen anpassen. Sie geben den /Books-Anfragepfad an, da dieser Pfad von der Beispielwebanwendung verwendet wird.

  3. Fügen Sie einen Zielpool hinzu, der sich in derselben Region wie Ihre VM-Instanzen befindet. Für Zielpools ist ein Systemdiagnosedienst erforderlich. Verwenden Sie das Systemdiagnoseobjekt, das Sie in Schritt 2 für diesen Zielpool erstellt haben.

    gcloud compute target-pools create books-lb \
        --region $region \
        --http-health-check bookshelf-check \
        --project $project_id
    
  4. Fügen Sie die IIS-Serverinstanzen zum Zielpool hinzu:

    gcloud compute target-pools add-instances books-lb \
        --instances webserver1 \
        --instances-zone $zone_1 \
        --project $project_id
    
    gcloud compute target-pools add-instances books-lb \
        --instances webserver2 \
        --instances-zone $zone_2 \
        --project $project_id
    

    Instanzen innerhalb eines Zielpools müssen sich in derselben Region befinden. Die Instanzen können jedoch in verschiedenen Zonen derselben Region sein.

  5. Fügen Sie eine Weiterleitungsregel für eine externe IP-Adresse und einen Portbereich hinzu, der auf Ihren Zielpool verweist:

    gcloud compute forwarding-rules create www-rule \
        --region $region \
        --ports 80 \
        --address webapp-lb-ip \
        --target-pool books-lb \
        --project $project_id
    

Traffic an Instanzen senden

Nachdem der Load-Balancing-Dienst konfiguriert wurde, können Sie Traffic an den Load-Balancer senden.

  1. Warten Sie nach dem Einrichten des Load-Balancings mindestens eine Minute, damit die Konfiguration vollständig geladen werden kann.
  2. Prüfen Sie in Cloud Shell den Zustand der Instanzen im Load-Balancer:

    gcloud compute target-pools get-health books-lb \
        --region $region \
        --project $project_id
    

    Die Ausgabe sieht etwa so aus:

    ---
    healthStatus:
    - healthState: HEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/sales-enablement-support/zones/us-east1-c/instances/webserver1
    ipAddress: 35.190.170.76
    kind: compute#targetPoolInstanceHealth
    ---
    healthStatus:
    - healthState: HEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/sales-enablement-support/zones/us-east1-b/instances/webserver2
    ipAddress: 35.190.170.76
    
  3. Kopieren Sie den Wert ipAddress. Dies ist die IP-Adresse des Load-Balancers.

  4. Geben Sie in einem Browserfenster die IP-Adresse des Load-Balancers ein.

    Wenn alles funktioniert, wird die Standardseite für die bereitgestellte ASP.NET-Webanwendung angezeigt:

    Standardwebseite für die Bookshelf-Anwendung

Load-Balancing und Redundanz testen

Sie können jetzt prüfen, wie sich der Cluster verhält, wenn Komponenten offline geschaltet werden. Sie können das Load-Balancing und die Redundanz auf mehreren Ebenen testen, indem Sie eine Instanz von Active Directory, SQL Server und den IIS-Servern gezielt herunterfahren.

  1. Rufen Sie in der Google Cloud Console die Seite "VM-Instanzen" auf.

    Zur Seite "VM-Instanzen"

  2. Wählen Sie eine Instanz für Active Directory, SQL Server oder IIS aus. Sie können jede dieser Instanzen auswählen, um zu simulieren, dass eine Komponente offline geht.

    Liste der Images, die für diese Architektur erstellt wurden

  3. Klicken Sie auf Beenden.

  4. Geben Sie in einem Browserfenster die IP-Adresse des Load-Balancers noch einmal ein.

    Sie sehen die Standardseite der Bookshelf-Anwendung. Dies bedeutet, dass die Anwendung noch ausgeführt wird, obwohl die Komponenten der Infrastruktur nicht mehr verfügbar sind.

  5. Wiederholen Sie optional die Schritte 2 und 3 für andere Komponenten. Wenn Sie vorher z. B. die SQL Server-Instanz heruntergefahren haben, fahren Sie jetzt eine IIS-Instanz herunter.

    Solange eine Instanz jeder Komponente ausgeführt wird, funktioniert die Anwendung weiter.

Bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die von Ihnen erstellten Google Cloud-Ressourcen bereinigen, damit Ihnen diese nicht weiter in Rechnung gestellt werden. Sie können das gesamte Projekt oder die Ressourcen löschen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen.

Projekt löschen

  • In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  • In the project list, select the project that you want to delete, and then click Delete.
  • In the dialog, type the project ID, and then click Shut down to delete the project.
  • Ressourcen innerhalb des Projekts löschen

    Zu Beginn der Anleitung haben Sie Variablen definiert, die steuern, wo Elemente der Infrastruktur bereitgestellt werden. Sie verwenden diese Variablen in diesem Abschnitt zur Bereinigung. Achten Sie darauf, dass die folgenden Variablen festgelegt sind:

    region=us-east1
    zone_1=${region}-b
    zone_2=${region}-c
    vpc_name=webappnet
    project_id=your-project-id
    

    Ersetzen Sie your-project-id durch die ID des von Ihnen verwendeten Google Cloud-Projekts.

    1. Löschen Sie die VMs, die Sie in dieser Anleitung erstellt haben:

      gcloud compute instances delete ad-dc1 \
          --zone $zone_1 \
          --project $project_id \
          --quiet
      
      gcloud compute instances delete ad-dc2 \
          --zone $zone_2 \
          --project $project_id \
          --quiet
      
      gcloud compute instances delete cluster-sql1 \
          --zone $zone_1 \
          --project $project_id \
          --quiet
      
      gcloud compute instances delete cluster-sql2 \
          --zone $zone_2 \
          --project $project_id \
          --quiet
      
      gcloud compute instances delete webserver1 \
          --zone $zone_1 \
          --project $project_id \
          --quiet
      
      gcloud compute instances delete webserver2 \
          --zone $zone_2 \
          --project $project_id \
          --quiet
      
    2. Löschen Sie die Firewallregeln und Routen, die Sie in dieser Anleitung erstellt haben:

      gcloud compute firewall-rules delete \
          allow-internal-ports-private-ad \
          allow-internal-ports-private-sql \
          allow-internal-ports-public-webapp \
          allow-rdp \
        --project $project_id \
        --quiet
      
      gcloud compute firewall-rules delete \
          webserver1-tcp-80 \
          webserver1-tcp-8172 \
          webserver2-tcp-80 \
          webserver2-tcp-8172 \
        --project $project_id \
        --quiet
      
      gcloud compute routes delete \
          cluster-sql1-route \
          cluster-sql1-route-listener \
          cluster-sql2-route \
          cluster-sql2-route-listener \
        --project $project_id \
        --quiet
      
    3. Löschen Sie die Subnetze im VPC-Netzwerk:

      gcloud compute networks subnets delete \
          --region $region \
          private-ad-zone-a \
          private-ad-zone-b \
          private-sql-zone-a \
          private-sql-zone-b \
          public-webapp-zone \
        --project $project_id \
        --quiet
      
    4. Löschen Sie das VPC-Netzwerk:

      gcloud compute networks delete $vpc_name \
          --project $project_id \
          --quiet
      
    5. Löschen Sie die statische IP-Adresse des Load-Balancers, die Sie erstellt haben:

      gcloud compute addresses delete webapp-lb-ip \
          --region $region \
          --project $project_id \
          --quiet
      
    6. Löschen Sie die Load-Balancer-Infrastruktur:

      gcloud compute forwarding-rules delete www-rule \
          --region $region \
          --project $project_id \
          --quiet
      gcloud compute target-pools delete books-lb \
          --region $region \
          --project $project_id \
          --quiet
      gcloud compute http-health-checks delete bookshelf-check \
          --project $project_id \
          --quiet
      

    Nächste Schritte