Load-Balancing für Hochverfügbarkeitsanwendungen 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 zonenübergreifend über eine einzige IP-Adresse weiter. Dadurch wird verhindert, dass Nutzer an eine Zone weitergeleitet werden, in der die Anwendung nicht verfügbar ist. 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 dieser Anleitung werden unter anderem die folgenden kostenpflichtigen GCP-Komponenten verwendet:

  • Compute Engine

Sie können mithilfe des Preisrechners die Kosten für Ihre voraussichtliche Nutzung kalkulieren. Neuen Nutzern der GCP steht unter Umständen eine kostenlose Testversion zur Verfügung.

Hinweise

  1. Melden Sie sich in Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, registrieren Sie sich hier für ein neues Konto.

  2. Wählen Sie ein Google Cloud Platform-Projekt aus oder erstellen Sie eines.

    Zur Seite "Ressourcen verwalten"

  3. Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Platform-Projekt aktiviert ist.

    Informationen zum Aktivieren der Abrechnung

Anwendungsarchitektur

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

  • VPC-Netzwerk: ein virtuelles Netzwerk in der GCP, das globale Verbindungen über seine eigenen Routen und Firewallregeln bereitstellen kann.
  • Firewallregel: eine GCP-Firewall, die Ihnen ermöglicht, 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: eine Anwendung, die Traffic zonenübergreifend über eine einzige (globale) IP-Adresse weiterleitet. Damit soll verhindert werden, dass Nutzer an eine Zone weitergeleitet werden, in der die Anwendung nicht verfügbar ist.
  • 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 GitHub-Repository von Google Cloud Platform.

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. Wechseln Sie in der GCP Console zur Seite VPC-Netzwerke.
    VPC-Netzwerkseite öffnen
  2. Klicken Sie auf VPC-Netzwerk erstellen.
  3. Geben Sie unter Name den String 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. Wechseln Sie in der GCP Console zur Seite Firewalls.
    Seite "Firewalls" öffnen
  2. Klicken Sie auf Firewallregel erstellen.
  3. Geben Sie unter Name den String allow-web-app-http ein.
  4. Legen Sie Netzwerk auf web-app-vpc fest.
  5. Wählen Sie unter Ziele die Option Alle Instanzen im Netzwerk aus.
  6. Legen Sie Quellfilter auf IP-Bereiche 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. Öffnen Sie in der GCP Console die Seite Instanzvorlagen.
    Seite "Instanzvorlagen" öffnen
  2. Klicken Sie auf Instanzvorlage erstellen.
  3. Geben Sie unter Name den String load-balancing-web-app-template ein.
  4. Legen Sie unter Maschinenkonfiguration den Maschinentyp auf f1-micro fest.
  5. Legen Sie unter Bootlaufwerk das Image auf Debian GNU/Linux 9 (stretch) fest.
  6. Wählen Sie unter Firewall die Option HTTP-Traffic zulassen aus.
  7. Klicken Sie auf Verwaltung, Sicherheit, Laufwerke, Netzwerke, Einzelne Mandanten, um die erweiterten Einstellungen einzublenden.
  8. Klicken Sie auf den Tab Verwaltung. Geben Sie unter Automatisierung folgendes Startskript ein:

    sudo apt-get update && sudo apt-get install git gunicorn3 python3-pip -y
    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 Instanz ab, installiert sie und startet sie.

  9. Klicken Sie auf den Tab Netzwerke. Wählen Sie unter Netzwerk den Eintrag web-app-vpc aus. Damit wird erzwungen, dass jede mit dieser Vorlage erstellte Instanz im zuvor erstellten Netzwerk ausgeführt wird.

  10. 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. Öffnen Sie in der GPC Console die Seite Instanzgruppen.
    Seite "Instanzgruppen" öffnen
  2. Klicken Sie auf Instanzgruppe erstellen.
  3. Geben Sie unter Name den String load-balancing-web-app-group ein.
  4. Wählen Sie unter Standort die Option Mehrere Zonen aus.

  5. Wählen Sie unter Region die Option us-central1 aus.

  6. Klicken Sie auf das Drop-down-Menü Zonen konfigurieren, um Zonen einzublenden. Wählen Sie die folgenden Zonen aus:

    • us-central1-b
    • us-central1-c
    • us-central1-f
  7. Wählen Sie unter Instanzvorlage den Eintrag load-balancing-web-app-template aus.

  8. Wählen Sie unter Autoscaling die Option Aus aus.

  9. Legen Sie Anzahl der Instanzen auf 6 fest.

  10. Wählen Sie unter Weiterverteilung von Instanzen die Option Ein aus.

  11. Wählen Sie unter Automatische Reparatur und Systemdiagnose die Option Keine Systemdiagnose 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:

      Screenshot der Demo-Webanwendung, der Informationen zur Instanz und Aktionsschaltflächen enthält.

      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 GCP-Ressourcen ändern oder löschen. Auf diese Weise hat die Webanwendung immer denselben Eintrittspunkt, selbst wenn sich andere Teile der Webanwendung ändern.

  1. Wechseln Sie in der GCP Console zur Seite Externe IP-Adressen.
    Seite "Externe IP-Adressen" öffnen
  2. Klicken Sie auf Statische Adresse reservieren.
  3. Geben Sie unter Name den String 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 Front-End, um eingehenden Traffic zu empfangen, und ein Back-End, um diesen Traffic auf fehlerfreie Instanzen zu verteilen. Da der Load-Balancer aus mehreren Komponenten besteht, gliedert sich diese Aufgabe in mehrere Teile:

  • Back-End-Konfiguration
  • Front-End-Konfiguration
  • Überprüfen und abschließen

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

  1. Wechseln Sie in der GCP Console zur Seite Load-Balancer erstellen.
    Seite "Load-Balancer erstellen" öffnen
  2. Klicken Sie unter HTTP(S)-Load-Balancing auf Konfiguration starten.
  3. Wählen Sie unter Internet oder nur intern die Option Vom Internet zu meinen VMs aus. Klicken Sie dann auf Weiter.
  4. Geben Sie unter Name den String web-app-load-balancer für den Load-Balancer ein.

Back-End-Konfiguration

  1. Klicken Sie im linken Bereich der Seite Neuer HTTP(S)-Load-Balancer auf Back-End-Konfiguration.
  2. Klicken Sie auf Back-End-Dienste und Back-End-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 Portnummern auf 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 das Protokoll auf 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 GCP bei einer Prüfung auf eine Antwort wartet. Der Wert muss kleiner oder gleich dem Überprüfungsintervall sein.
      3. Legen Sie 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 Erstellen, um den Back-End-Dienst zu erstellen.

Front-End-Konfiguration

  1. Klicken Sie im linken Bereich der Seite Neuer HTTP(S)-Load-Balancer auf Front-End-Konfiguration.
  2. Geben Sie auf der Seite Front-End-Konfiguration unter Name den String web-app-ipv4-frontend ein.
  3. Legen Sie das Protokoll auf HTTP fest.
  4. Legen Sie die IP-Version auf IPv4 fest.
  5. Legen Sie die IP-Adresse auf web-app-ipv4 fest.
  6. Legen Sie den Port auf 80 fest.
  7. Klicken Sie auf Fertig, um das Front-End zu erstellen.

Überprü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 Neuer HTTP(S)-Load-Balancer 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 Back-End 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 Front-End eine IP-Adresse mit dem Protokoll HTTP verwendet.

  2. Klicken Sie im linken Bereich der Seite Neuer HTTP(S)-Load-Balancer 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. Überwachen Sie, an welche Zonen der Load-Balancer Traffic weiterleitet.

    1. Öffnen Sie in der GCP Console mit Cloud Shell ein Terminal.

      Cloud Shell öffnen

      Cloud Shell wird unten in der GCP 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 Front-End-Weiterleitungsregel des Load-Balancers ab. Geben Sie dazu den folgenden Befehl in Ihr Terminal ein:

        gcloud compute forwarding-rules list | grep web-app-ipv4-frontend
        

        Kopieren Sie die EXTERNAl_IP_ADDRESS aus der Ausgabe:

        web-server-ipv4-frontend    EXTERNAl_IP_ADDRESS    TCP    web-app-load-balancer-target-proxy
        
      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 Front-End des Load-Balancers eine Verbindung zur Webanwendung herzustellen. Dann gibt das Skript aus, in welcher Zone die Webanwendung für jede Verbindung 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 über den Load-Balancer möglich ist:

    1. Wechseln Sie in der GCP Console zur Seite Firewalls.
      Seite "Firewalls" öffnen
    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. Bestätigen Sie, dass Sie über die sitzungsspezifische externe IP-Adresse einer bestimmten Instanz keine Verbindung zur Webanwendung herstellen können:

    1. Öffnen Sie in der GPC Console die Seite Instanzgruppen.
      Seite "Instanzgruppen" öffnen
    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. Bestätigen Sie, dass Sie keine Verbindung zur Webanwendung über den Load-Balancer herstellen können:

    1. Öffnen Sie in der GCP Console die Seite Load-Balancing.
      Seite "Load-Balancing" öffnen
    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 Front-End 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:

      Screenshot der 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

Wenn Sie mit der Load-Balancing-Anleitung fertig sind, können Sie die auf der GCP erstellten Ressourcen bereinigen, damit sie keine kostenpflichtigen Kontingente verbrauchen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Wenn Sie für diese Anleitung ein separates 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. Rufen Sie in der GCP Console die Seite Projekte auf.

    Zur Seite Projekte

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen delete.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

Bestimmte Ressourcen löschen

Load-Balancer löschen

  1. Öffnen Sie in der GCP Console die Seite Load-Balancing.
    Seite "Load-Balancing" öffnen
  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. Wechseln Sie in der GCP Console zur Seite Externe IP-Adressen.
    Seite "Externe IP-Adressen" öffnen
  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. Rufen Sie in der GCP Console die Seite Instanzgruppen auf.

    Zur Seite "Instanzgruppen"

  2. Klicken Sie auf das Kästchen nebender Instanzgruppeload-balancing-web-app-group.
  3. Klicken Sie oben auf der Seite auf Löschen delete, um die Instanzgruppe zu löschen.

Instanzvorlage löschen

  1. Öffnen Sie in der GCP Console die Seite Instanzvorlagen.

    Seite "Instanzvorlagen" öffnen

  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. Wechseln Sie in der GCP Console zur Seite VPC-Netzwerke.

    VPC-Netzwerkseite öffnen

  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

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation