Load-Balancing für hochverfügbare Anwendungen verwenden


In dieser Anleitung wird beschrieben, wie Sie Load-Balancing mit einer regionalen verwalteten Instanzgruppe einsetzen, um Traffic von ausgelasteten oder nicht verfügbaren VM-Instanzen umzuleiten und damit auch bei einem Zonenausfall Hochverfügbarkeit bereitzustellen.

Eine regionale verwaltete Instanzgruppe verteilt eine Anwendung auf mehrere Instanzen über mehrere Zonen hinweg. Ein globaler Load-Balancer leitet Traffic über mehrere Regionen hinweg über eine einzige IP-Adresse weiter. Wenn Sie diese beiden Dienste zum Verteilen der Anwendung auf mehrere Zonen verwenden, können Sie dafür sorgen, dass die Anwendung auch in extremen Fällen verfügbar ist, z. B. bei einer zonenweiten Störung.

Mithilfe von Load-Balancern können die verschiedensten Arten von Traffic weitergeleitet werden. In dieser Anleitung erfahren Sie, wie Sie einen globalen Load-Balancer erstellen, der externen HTTP-Traffic weiterleitet. Der größte Teil dieser Anleitung ist jedoch auch für andere Arten von Load-Balancern relevant. Weitere Informationen zu anderen Arten von Traffic, die mit einem Load-Balancer weitergeleitet werden können, finden Sie unter Arten von Cloud Load Balancing.

Diese Anleitung enthält ausführliche Schritte zu folgenden Vorgängen: Starten einer Webanwendung in einer regionalen verwalteten Instanzgruppe, Konfigurieren des Netzwerkzugriffs, Erstellen eines Load-Balancers zum Weiterleiten von Traffic an die Webanwendung und Beobachten des Load Balancers durch Simulation eines Zonenausfalls. Je nachdem, wie vertraut Sie mit diesen Features sind, benötigen Sie für diese Anleitung ungefähr 45 Minuten.

Ziele

  • Demo-Webanwendung in einer regionalen verwalteten Instanzgruppe starten
  • Globalen Load-Balancer konfigurieren, der HTTP-Traffic zonenübergreifend weiterleitet
  • Auswirkungen des Load-Balancers durch Simulation eines Zonenausfalls beobachten

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

  • Compute Engine

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Anwendungsarchitektur

Die Anwendung enthält die folgenden Compute Engine-Komponenten:

  • VPC-Netzwerk: ein virtuelles Netzwerk in der Google Cloud, das globale Verbindungen über seine eigenen Routen und Firewallregeln bereitstellen kann.
  • Firewallregel: eine Google Cloud-Firewall ermöglicht Ihnen, Traffic an Ihre Instanzen zuzulassen oder abzulehnen.
  • Instanzvorlage: eine Vorlage zum Erstellen der einzelnen VM-Instanzen in der verwalteten Instanzgruppe.
  • Regionale verwaltete Instanzgruppe: eine Gruppe von VM-Instanzen, auf denen dieselbe Anwendung in mehreren Zonen ausgeführt wird.
  • Globale statische externe IP-Adresse: eine statische IP-Adresse, die von externen Netzwerken aus zugänglich ist und an eine globale Ressource angehängt werden kann.
  • Globaler Load-Balancer: ein Load-Balancer, der Back-End-Instanzen über mehrere Regionen hinweg verteilen kann. Verwenden Sie einen globalen Load-Balancer, wenn Ihre Nutzer Zugriff auf dieselben Anwendungen und Inhalte benötigen und der Zugriff über eine einzige Anycast-IP-Adresse gewährt werden soll.
  • Systemdiagnose: eine vom Load-Balancer verwendete Richtlinie, um die Reaktionsfähigkeit der Anwendung auf jeder VM-Instanz zu bewerten.

Webanwendung starten

In dieser Anleitung wird eine auf GitHub gespeicherte Webanwendung verwendet. Weitere Informationen zur Implementierung der Anwendung finden Sie im Repository GoogleCloudPlatform/python-docs-samples auf GitHub.

Starten Sie die Webanwendung auf jeder VM in einer Instanzgruppe. Fügen Sie dazu ein Startskript in eine Instanzvorlage ein. Führen Sie die Instanzgruppe außerdem in einem dedizierten VPC-Netzwerk aus. Damit soll verhindert werden, dass die Firewallregeln aus dieser Anleitung vorhandene Ressourcen in Ihrem Projekt beeinträchtigen.

VPC-Netzwerk erstellen

Durch Verwendung eines VPC-Netzwerks werden vorhandene Ressourcen in Ihrem Projekt vor den Auswirkungen der Ressourcen geschützt, die Sie für diese Anleitung erstellen. Ein VPC-Netzwerk ist außerdem erforderlich, um eingehenden Traffic so einzuschränken, dass dieser den Load-Balancer durchläuft.

Erstellen Sie ein VPC-Netzwerk, um die Firewallregeln für die Demo-Webanwendung zu kapseln:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie für Name web-app-vpc ein.

  4. Wählen Sie bei Modus für Subnetzerstellung die Option Automatisch aus.

  5. Klicken Sie unten auf der Seite auf Erstellen.

Warten Sie, bis das VPC-Netzwerk erstellt ist, bevor Sie fortfahren.

Firewallregel erstellen

Richten Sie nach dem Erstellen des VPC-Netzwerks eine Firewallregel ein, um HTTP-Traffic zum VPC-Netzwerk zuzulassen:

  1. Rufen Sie in der Google Cloud Console die Seite Firewalls auf.

    Zu Firewalls

  2. Klicken Sie auf Firewallregel erstellen.

  3. Geben Sie im Feld Name allow-web-app-http ein.

  4. Legen Sie für Netzwerk web-app-vpc fest.

  5. Wählen Sie unter Ziele die Option Alle Instanzen im Netzwerk aus.

  6. Legen Sie Quellfilter auf IPv4 ranges fest.

  7. Geben Sie unter Quell-IP-Bereiche den Wert 0.0.0.0/0 ein, um Zugriff für alle IP-Adressen zuzulassen.

  8. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
    Klicken Sie auf das Kästchen TCP und geben Sie 80 ein, um Zugriff für HTTP-Traffic zuzulassen.

  9. Klicken Sie auf Erstellen.

Instanzvorlage erstellen

Erstellen Sie eine Vorlage, um damit eine Gruppe von VM-Instanzen zu erstellen. Jede aus der Vorlage erstellte Instanz startet eine Demo-Webanwendung über ein Startskript.

  1. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

  2. Klicken Sie auf Instanzvorlage erstellen.

  3. Geben Sie für Name load-balancing-web-app-template ein.

  4. Legen Sie unter Maschinenkonfiguration den Maschinentyp auf e2-micro fest.

  5. Wählen Sie unter Firewall die Option HTTP-Traffic zulassen aus.

  6. Maximieren Sie den Bereich Erweiterte Optionen.

  7. Maximieren Sie den Bereich Verwaltung.

  8. Geben Sie im Feld Automatisierung folgendes Startskript ein:

    sudo apt update && sudo apt -y install git gunicorn3 python3-pip
    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    cd python-docs-samples/compute/managed-instances/demo
    sudo pip3 install -r requirements.txt
    sudo gunicorn3 --bind 0.0.0.0:80 app:app --daemon
    

    Das Skript ruft die Webanwendung beim Start der VM-Instanz ab, installiert sie und startet sie.

  9. Maximieren Sie den Bereich Netzwerk.

  10. Klicken Sie im Bereich Netzwerkschnittstellen auf Netzwerkschnittstelle hinzufügen und wählen Sie dann das Netzwerk web-app-vpc aus. Damit wird erzwungen, dass jede mit dieser Vorlage erstellte Instanz im zuvor erstellten Netzwerk ausgeführt wird.

  11. Klicken Sie auf Erstellen.

Warten Sie, bis die Vorlage erstellt ist, bevor Sie fortfahren.

Regionale verwaltete Instanzgruppe erstellen

Verwenden Sie zum Ausführen der Webanwendung die Instanzvorlage, um eine regionale verwaltete Instanzgruppe zu erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf Instanzgruppe erstellen.

  3. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus.

  4. Geben Sie für Name load-balancing-web-app-group ein.

  5. Wählen Sie bei Instanzvorlage die Option load-balancing-web-app-template aus.

  6. Legen Sie Anzahl der Instanzen auf 6 fest. Wenn dieses Feld deaktiviert ist, deaktivieren Sie zuerst das Autoscaling.

  7. Wählen Sie für Standort die Option Mehrere Zonen aus.

  8. Wählen Sie als Region die Option us-central1 aus.

  9. Wählen Sie unter Zonen die folgenden Zonen aus der Drop-down-Liste aus:

    • us-central1-b
    • us-central1-c
    • us-central1-f
  10. Wählen Sie Umverteilung von Instanzen zulassen aus.

  11. Wählen Sie unter Autoscaling-Modus die Option Aus: Nicht automatisch skalieren aus.

  12. Klicken Sie auf Erstellen. Damit kehren Sie wieder zur Seite Instanzgruppen zurück.

  13. Prüfen Sie, ob Ihre Instanzen die Demo-Webanwendung korrekt ausführen:

    1. Klicken Sie auf der Seite Instanzgruppen auf load-balancing-web-app-group, um die Instanzen in dieser Gruppe aufzurufen.
    2. Klicken Sie unter Externe IP-Adresse auf eine IP-Adresse, um eine Verbindung zur jeweiligen Instanz herzustellen. Ein neuer Browsertab mit der Demo-Webanwendung wird geöffnet:

      Demo-Webanwendung, die Informationen über die Instanz auflistet und über Aktionsschaltflächen verfügt

      Wenn Sie fertig sind, schließen Sie den Browsertab der Demo-Webanwendung.

Load-Balancer konfigurieren

Damit ein Load-Balancer Traffic an die Webanwendung weiterleitet, müssen Sie eine externe IP-Adresse für den Empfang des gesamten eingehenden Traffics reservieren. Erstellen Sie dann einen Load-Balancer, der Traffic von dieser IP-Adresse annimmt und an die Instanzgruppe weiterleitet.

Statische IP-Adresse reservieren

Verwenden Sie eine globale statische externe IP-Adresse, um dem Load-Balancer einen zentralen Eintrittspunkt für den gesamten Nutzertraffic bereitzustellen. Compute Engine behält statische IP-Adressen bei, auch wenn Sie zugehörige Google Cloud-Ressourcen ändern oder löschen. Auf diese Weise hat die Webanwendung immer denselben Eintrittspunkt, selbst wenn sich andere Teile der Webanwendung ändern.

  1. Rufen Sie in der Google Cloud Console die Seite Externe IP-Adressen auf.

    Zu externen IP-Adressen

  2. Klicken Sie auf Statische Adresse reservieren.

  3. Geben Sie für Name web-app-ipv4 ein.

  4. Setzen Sie die IP-Version auf IPv4.

  5. Setzen Sie Typ auf Global.

  6. Klicken Sie auf Reservieren.

Load-Balancer erstellen

Dieser Abschnitt behandelt die Schritte zum Erstellen eines globalen Load-Balancers, der HTTP-Traffic weiterleitet.

Dieser Load-Balancer verwendet ein Frontend, um eingehenden Traffic zu empfangen, und ein Backend, um diesen Traffic auf fehlerfreie Instanzen zu verteilen. Da der Load-Balancer aus mehreren Komponenten besteht, gliedert sich diese Aufgabe in mehrere Teile:

  • Backend-Konfiguration
  • Frontend-Konfiguration
  • Prüfen und abschließen

Führen Sie zum Erstellen des Load-Balancers alle Schritte aus.

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  5. Wählen Sie unter Globale oder Einzelregion-Bereitstellung die Option Am besten für globale Arbeitslasten aus und klicken Sie auf Weiter.
  6. Wählen Sie unter Generation des Load Balancers die Option Globaler externer Application Load Balancer aus und klicken Sie auf Weiter.
  7. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie unter Name des Load Balancers web-app-load-balancer ein.

Backend-Konfiguration

  1. Klicken Sie im linken Bereich der Seite Globalen externen Anwendungs-Load-Balancer erstellen auf Backend-Konfiguration.
  2. Klicken Sie auf Backend-Dienste und Backend-Buckets erstellen oder auswählen, um ein Drop-down-Menü zu öffnen. Klicken Sie auf Back-End-Dienste und dann auf Back-End-Dienst erstellen.
  3. Geben Sie im neuen Fenster als Name der Back-End-Anwendung den String web-app-backend ein.
  4. Legen Sie Instanzgruppe auf load-balancing-web-app-group fest.
  5. Legen Sie für Portnummern den Wert 80 fest. Damit wird HTTP-Traffic zwischen dem Load-Balancer und der Instanzgruppe zugelassen.
  6. Wählen Sie unter Balancing-Modus die Option Auslastung aus.
  7. Klicken Sie auf Fertig, um das Back-End zu erstellen.
  8. Erstellen Sie die Systemdiagnose für das Back-End des Load Balancers:

    1. Wählen Sie unter Systemdiagnose die Option Systemdiagnose erstellen (oder Weitere Systemdiagnose erstellen) aus dem Drop-down-Menü aus. Ein neues Fenster wird geöffnet.
    2. Geben Sie im neuen Fenster unter Name den String web-app-load-balancer-check ein.
    3. Legen Sie als Protokoll HTTP fest.
    4. Geben Sie für Port den Wert 80 ein.
    5. Legen Sie den Anfragepfad für diese Anleitung auf /health fest. Dies ist ein Pfad, auf den die Demo-Webanwendung reagiert.
    6. Legen Sie die folgenden Diagnosekriterien fest:

      1. Legen Sie Überprüfungsintervall auf 3 Sekunden fest. Dies definiert die Zeitspanne vom Start einer Prüfung bis zum Start der nächsten.
      2. Legen Sie Zeitlimit auf 3 Sekunden fest. Damit wird definiert, wie lange die Google Cloud bei einer Prüfung auf eine Antwort wartet. Der Wert muss kleiner oder gleich dem Überprüfungsintervall sein.
      3. Legen Sie den Schwellenwert für Intaktheit auf 2 aufeinanderfolgende Erfolge fest. Dies definiert die Anzahl der sequenziellen Prüfungen, die erfolgreich verlaufen müssen, damit eine Instanz als intakt erachtet wird.
      4. Setzen Sie Fehlerschwellenwert auf 2 aufeinanderfolgende Fehler fest. Dies definiert die Anzahl der sequenziellen Prüfungen, die fehlschlagen müssen, damit eine Instanz als nicht intakt erachtet wird.
    7. Klicken Sie auf Speichern und fortfahren, um die Systemdiagnose zu erstellen.

  9. Klicken Sie auf Create (Erstellen), um den Back-End-Dienst zu erstellen.

Frontend-Konfiguration

  1. Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Frontend-Konfiguration.
  2. Geben Sie auf der Seite Frontend-Konfiguration unter Name den String web-app-ipv4-frontend ein.
  3. Legen Sie als Protokoll HTTP fest.
  4. Setzen Sie die IP-Version auf IPv4.
  5. Setzen Sie die IP-Adresse auf web-app-ipv4.
  6. Legen Sie als Port 80 fest.
  7. Klicken Sie auf Fertig, um das Frontend zu erstellen.

Prüfen und abschließen

  1. Prüfen Sie die Load-Balancing-Einstellungen, bevor Sie den Load-Balancer erstellen:

    1. Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Prüfen und abschließen.
    2. Prüfen Sie auf der Seite Prüfen und abschließen, ob die folgenden Einstellungen für das Backend vorliegen:

      • Der Back-End-Dienst ist web-app-backend.
      • Das Endpunktprotokoll ist HTTP.
      • Die Systemdiagnose ist web-app-load-balancer-check.
      • Die Instanzgruppe ist load-balancing-web-app-group.
    3. Prüfen Sie auf derselben Seite, ob das Frontend eine IP-Adresse mit dem Protokoll HTTP verwendet.

  2. Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Erstellen, um den Load Balancer fertigzustellen.

Möglicherweise müssen Sie einige Minuten warten, bis der Load-Balancer komplett erstellt ist.

Zonenausfall simulieren

Sie können die Funktionalität des Load-Balancers beobachten, wenn Sie die vollständige Nichtverfügbarkeit bei einem Zonenausfall simulieren. Für diese Simulation werden alle Instanzen in einer angegebenen Zone gezwungen, einen fehlerhaften Zustand im Anfragepfad /health zu melden. Wenn diese Instanzen einen fehlerhaften Zustand melden, schlägt die Load-Balancing-Systemdiagnose dafür fehl. Der Load-Balancer weiß damit, dass an diese Instanzen kein Traffic mehr weiterzuleiten ist.

  1. Beobachten Sie, an welche Zonen der Load-Balancer Traffic weiterleitet.

    1. Rufen Sie in der Google Cloud Console Cloud Shell auf.

      Cloud Shell öffnen

      Cloud Shell wird in einem Bereich der Google Cloud Console geöffnet. Das Initialisieren der Sitzung kann einige Sekunden dauern.

    2. Speichern Sie die statische externe IP-Adresse des Load-Balancers:

      1. Rufen Sie die externe IP-Adresse aus der Frontend-Weiterleitungsregel des Load-Balancers ab. Geben Sie dazu den folgenden Befehl in Ihr Terminal ein:

        gcloud compute forwarding-rules describe web-app-ipv4-frontend --global
        

        Kopieren Sie die EXTERNAl_IP_ADDRESS aus der Ausgabe:

        IPAddress: EXTERNAl_IP_ADDRESS
        ...
        
      2. Erstellen Sie eine lokale Bash-Variable:

        export LOAD_BALANCER_IP=EXTERNAl_IP_ADDRESS
        

        Dabei ist EXTERNAl_IP_ADDRESS die externe IP-Adresse, die Sie kopiert haben.

    3. Führen Sie das folgende Bash-Skript aus, um zu überwachen, an welche Zonen der Load-Balancer Traffic weiterleitet:

      while true
      do
              BODY=$(curl -s "$LOAD_BALANCER_IP")
              NAME=$(echo -n "$BODY" | grep "load-balancing-web-app-group" | perl -pe 's/.+?load-balancing-web-app-group-(.+?)<.+/\1/')
              ZONE=$(echo -n "$BODY" | grep "us-" | perl -pe 's/.+?(us-.+?)<.+/\1/')
      
              echo $ZONE
      done
      

      Dieses Skript versucht kontinuierlich, über die IP-Adresse für das Frontend des Load-Balancers eine Verbindung zur Webanwendung herzustellen, und gibt für jede Verbindung aus, in welcher Zone die Webanwendung ausgeführt wird.

      Die resultierende Ausgabe sollte die Zonen us-central1-b, us-central1-c und us-central1-f enthalten:

      us-central1-f
      us-central1-b
      us-central1-c
      us-central1-f
      us-central1-f
      us-central1-c
      us-central1-f
      us-central1-c
      us-central1-c
      

      Lassen Sie dieses Terminal geöffnet.

  2. Simulieren Sie jetzt bei laufendem Monitoring den Zonenausfall.

    1. Öffnen Sie in Cloud Shell eine zweite Terminalsitzung. Klicken Sie dazu auf die Schaltfläche  Hinzufügen.
    2. Erstellen Sie eine lokale Bash-Variable für die Projekt-ID:

      export PROJECT_ID=PROJECT_ID
      

      Dabei ist PROJECT_ID die Projekt-ID Ihres aktuellen Projekts, die in jeder neuen Cloud Shell-Zeile angezeigt wird:

      user@cloudshell:~ (PROJECT_ID)$
      
    3. Erstellen Sie eine lokale Bash-Variable für die Zone, die Sie deaktivieren möchten. Verwenden Sie den folgenden Befehl, um einen Ausfall der Zone us-central1-f zu simulieren:

      export DISABLE_ZONE=us-central1-f
      

      Führen Sie dann das unten gezeigte Bash-Skript aus. Dieses Skript bewirkt, dass die Demo-Webanwendungsinstanzen in der deaktivierten Zone mit Fehlern auf die Systemdiagnose des Load-Balancers reagieren. Dies führt dazu, dass der Load-Balancer Traffic von diesen Instanzen umleitet:

      export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --filter="zone:($DISABLE_ZONE)" --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "load-balancing-web-app-group")
      for i in $MACHINES;
      do
        NAME=$(echo "$i" | cut -f1 -d,)
        IP=$(echo "$i" | cut -f2 -d,)
        echo "Simulating zonal failure for zone $DISABLE_ZONE, instance $NAME"
        curl -q -s "http://$IP/makeUnhealthy" >/dev/null --retry 2
      done
      

      Nach einer kurzen Verzögerung leitet der Load-Balancer keinen Traffic mehr an die fehlerhafte Zone weiter. Daher wird im ersten Terminalfenster die Zone us-central1-f nicht mehr in der Ausgabe aufgeführt:

      us-central1-c
      us-central1-c
      us-central1-c
      us-central1-b
      us-central1-b
      us-central1-c
      us-central1-b
      us-central1-c
      us-central1-c
      

      Daran können Sie ablesen, dass der Load-Balancer nur an die fehlerfreien, reagierenden Instanzen Traffic weiterleitet.

      Lassen Sie beide Terminals geöffnet.

    4. Erstellen Sie im zweiten Terminal eine lokale Bash-Variable für die Zone, die Sie wiederherstellen möchten. Verwenden Sie den folgenden Befehl, um wieder Traffic an die Zone us-central1-f weiterzuleiten:

      export ENABLE_ZONE=us-central1-f
      

      Führen Sie dann das unten gezeigte Bash-Skript aus. Dieses Skript bewirkt, dass die Demo-Webanwendungsinstanzen in der deaktivierten Zone ohne Fehler auf die Systemdiagnose des Load-Balancers reagieren. Dies führt dazu, dass der Load-Balancer wieder Traffic an diese Instanzen verteilt:

      export MACHINES=$(gcloud --project=$PROJECT_ID compute instances list --filter="zone:($ENABLE_ZONE)" --format="csv(name,networkInterfaces[0].accessConfigs[0].natIP)" | grep "load-balancing-web-app-group")
      for i in $MACHINES;
      do
        NAME=$(echo "$i" | cut -f1 -d,)
        IP=$(echo "$i" | cut -f2 -d,)
        echo "Simulating zonal restoration for zone $ENABLE_ZONE, instance $NAME"
        curl -q -s "http://$IP/makeHealthy" >/dev/null --retry 2
      done
      

      Nach einigen Minuten wird die Zone us-central1-f in der Ausgabe des ersten Terminalfensters schließlich aufgeführt:

      us-central1-b
      us-central1-b
      us-central1-c
      us-central1-f
      us-central1-c
      us-central1-c
      us-central1-b
      us-central1-c
      us-central1-f
      

      Daran können Sie ablesen, dass der Load-Balancer eingehenden Traffic wieder an alle Instanzen weiterleitet.

      Schließen Sie beide Terminals, wenn Sie fertig sind.

(Optional) Eingehenden Traffic einschränken

Wenn Sie die regionale verwaltete Instanzgruppe erstellt haben, können Sie auf jede Instanz über ihre externe sitzungsspezifische IP-Adresse direkt zugreifen. Nachdem Sie jedoch einen Load-Balancer und eine statische externe IP-Adresse eingerichtet haben, sollten Sie die Netzwerkfirewall so ändern, dass eingehender Traffic den Load-Balancer durchlaufen muss.

Falls eingehender Traffic auf den Load-Balancer eingeschränkt werden soll, ändern Sie die Netzwerkfirewall dahingehend, dass die sitzungsspezifische externe IP-Adresse für jede Instanz deaktiviert wird.

  1. Bearbeiten Sie die Firewallregel, um HTTP-Traffic so einzuschränken, dass der Zugriff auf die Webanwendung nur mit dem Load-Balancer möglich ist:

    1. Rufen Sie in der Google Cloud Console die Seite Firewalls auf.

      Zu Firewalls

    2. Klicken Sie unter Name auf allow-web-app-http.

    3. Klicken Sie auf Bearbeiten.

    4. Ändern Sie die Quell-IP-Bereiche so, dass nur Systemdiagnoseprüfungen zugelassen werden:

      1. Löschen Sie 0.0.0.0/0.
      2. Geben Sie in derselben Zeile 130.211.0.0/22 ein und drücken Sie die Tabulatortaste.
      3. Geben Sie in derselben Zeile 35.191.0.0/16 ein und drücken Sie die Tabulatortaste.
    5. Klicken Sie auf Speichern.

  2. Prüfen Sie, ob Sie mit der sitzungsspezifischen externen IP-Adresse einer bestimmten Instanz keine Verbindung zur Webanwendung herstellen können:

    1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

      Zu den Instanzgruppen

    2. Klicken Sie auf load-balancing-web-app-group, um die Instanzen in dieser Gruppe aufzurufen.

    3. Klicken Sie unter Externe IP-Adresse auf eine IP-Adresse, um eine Verbindung zur jeweiligen Instanz herzustellen. Ein neuer Browsertab wird geöffnet, die Webanwendung jedoch nicht. Letztendlich wird auf der Seite ein Zeitüberschreitungsfehler angezeigt.

      Wenn Sie fertig sind, schließen Sie den Browsertab der Instanz.

  3. Prüfen Sie, ob Sie mithilfe des Load-Balancers eine Verbindung zur Webanwendung herstellen können:

    1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

      Load-Balancing aufrufen

    2. Klicken Sie unter Name auf web-app-load-balancer, um den soeben erstellten Load-Balancer zu maximieren.

    3. Sehen Sie zur Verbindungsherstellung mit der Webanwendung über die externe statische IP-Adresse unter Frontend und IP:Port nach, um die IP-Adresse zu kopieren. Öffnen Sie dann einen neuen Browsertab und fügen Sie die IP-Adresse in die Adressleiste ein. Damit sollte die Demo-Webanwendung angezeigt werden:

      Demo-Webanwendung

      Wann immer Sie die Seite aktualisieren, stellt der Load-Balancer Verbindungen zu anderen Instanzen in unterschiedlichen Zonen her. Dies liegt daran, dass Sie keine direkte Verbindung zu einer Instanz herstellen. Die Verbindung wird vielmehr zum Load-Balancer hergestellt, der die Instanz auswählt, an die Sie weitergeleitet werden.

      Wenn Sie fertig sind, schließen Sie den Browsertab der Demo-Webanwendung.

Bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Wenn Sie für diese Anleitung ein eigenes Projekt erstellt haben, löschen Sie das gesamte Projekt. Falls das Projekt Ressourcen enthält, die Sie behalten möchten, löschen Sie nur die in dieser Anleitung erstellten Ressourcen.

Projekt löschen

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

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Bestimmte Ressourcen löschen

Load-Balancer löschen

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf das Kästchen neben web-app-load-balancer.

  3. Klicken Sie oben auf der Seite auf  Löschen.

  4. Klicken Sie im neuen Fenster auf alle Kästchen. Klicken Sie anschließend auf Load-Balancer und ausgewählte Ressourcen löschen, um den Löschvorgang zu bestätigen.

Statische externe IP-Adresse löschen

  1. Rufen Sie in der Google Cloud Console die Seite Externe IP-Adressen auf.

    Zu externen IP-Adressen

  2. Klicken Sie auf das Kästchen neben web-app-ipv4.

  3. Klicken Sie oben auf der Seite auf  Statische Adresse freigeben. Klicken Sie im neuen Fenster auf Löschen, um den Löschvorgang zu bestätigen.

Instanzgruppe löschen

  1. In the Google Cloud console, go to the Instance groups page.

    Go to Instance groups

  2. Select the checkbox for your load-balancing-web-app-group instance group.
  3. To delete the instance group, click Delete.

Instanzvorlage löschen

  1. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Instanzvorlagen aufrufen

  2. Klicken Sie auf das Kästchen neben load-balancing-web-app-template.

  3. Klicken Sie oben auf der Seite auf  Löschen. Klicken Sie im neuen Fenster auf Löschen, um den Löschvorgang zu bestätigen.

VPC-Netzwerk löschen

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf web-app-vpc.

  3. Klicken Sie oben auf der Seite auf  Löschen. Klicken Sie im neuen Fenster auf Löschen, um den Löschvorgang zu bestätigen.

Weitere Informationen