Anfragerouting für einen multiregionalen klassischen Application Load Balancer

In dieser Anleitung wird beschrieben, wie Sie einen Google Cloud HTTPS-Load-Balancer einrichten, der die folgenden Funktionen hat:

  • Wählt Back-End-Dienste anhand der Anfrage-URL-Pfade aus.
  • Leitet Anfragen an Back-Ends weiter, die sich in der Nähe der Clients befinden (multiregionales Load-Balancing).

Bevor Sie beginnen, sollten Sie sich mit den Konzepten des externen Application Load Balancers vertraut machen.

Ein vereinfachtes Beispiel finden Sie unter Externen Application Load Balancer mit einem Compute Engine-Backend einrichten. Informationen zum erweiterten Routing wie HTTP-Umschreibungen und -Weiterleitungen finden Sie unter Trafficverwaltung für externe Application Load Balancer.

Überblick

Die folgende Anleitung enthält Informationen zum Erstellen eines Load-Balancers, der den Traffic basierend auf dem Pfad in der Anfrage-URL weiterleitet und ihn über mehrere Regionen verteilt. Sie erstellen zuerst acht Compute Engine-Instanzen in den Regionen "USA" (in Zone us-central1-b) und "EU" (in Zone eu-west1-b). Anschließend richten Sie einen Load-Balancer ein, der den Traffic an diese Instanzen weiterleitet.

Nachdem Sie die Anleitung abgeschlossen haben, wird Ihr Load-Balancer so konfiguriert:

  • Traffic mit einem URL-Pfad, der mit /video beginnt, wird an einen Back-End-Dienst weitergeleitet.
  • Traffic mit einem URL-Pfad, der nicht diesem Muster entspricht, wird an einen anderen Back-End-Dienst weitergeleitet.

In dieser Anleitung erstellen Sie die in der folgenden Grafik dargestellte Konfiguration:

Multiregionales HTTPS-Load-Balancing
Multiregionales HTTPS-Load-Balancing (zum Vergrößern klicken)

Die Ereignisabfolge in der Grafik ist:

  1. Ein Client greift auf die URL https://www.example.com/video/concert zu und sendet eine Inhaltsanfrage an die externe IP-Adresse, die in der Weiterleitungsregel definiert ist. Die Anfrage kann IPv4 oder IPv6 nutzen. Für beide Protokolle gibt es Weiterleitungsregeln.
  2. Eine Weiterleitungsregel leitet die Anfrage an den Ziel-HTTPS-Proxy weiter.
  3. Der Zielproxy verwendet die in der URL-Zuordnung festgelegten Regeln, um zu bestimmen, welcher Back-End-Dienst die Anfrage empfängt. Eine Anfrage, die /video wie https://www.example.com/video/concert enthält, wird an video-backend-service gesendet. Jeder andere URL-Pfad wird an den Standarddienst web-backend-service geleitet.
  4. Der Load-Balancer bestimmt anhand des Ladevorgangs und der Nähe zum Client, welche Instanzgruppen des Back-End-Dienstes die Anfrage bereitstellen sollen, und leitet die Anfrage an eine Instanz in dieser Gruppe weiter.
  5. Die Instanz stellt den von jedem Nutzer angeforderten Inhalt bereit. Die video-Instanzen stellen Videoinhalte bereit, während die www-Instanzen alle anderen Inhalte bereitstellen.

In diesem Beispiel akzeptiert der Load-Balancer HTTPS-Anfragen von Clients und leitet diese Anfragen als HTTP an die Back-Ends weiter. Sie können einen Load-Balancer auch so konfigurieren, dass er HTTP-Anfragen akzeptiert und HTTPS verwendet, wenn Anfragen an Back-Ends weitergeleitet werden.

Hinweis

Diese Anleitung erfordert ein Projekt. Erstellen Sie ein neues Projekt, wenn Sie noch keines haben. Diese Anleitung führt Sie durch das Erstellen eines VPC-Netzwerks (Virtual Private Cloud) im benutzerdefinierten Modus. Sie müssen außerdem benutzerdefinierte Firewallregeln einrichten, damit der Traffic die Instanzen erreichen kann.

Wenn Sie lieber mit der Befehlszeile arbeiten möchten, installieren Sie das gcloud-Befehlszeilentool. In der gcloud-Übersicht finden Sie Informationen zum Konzept und zur Installation des Tools.

Berechtigungen

Sie können die Schritte in dieser Anleitung nur ausführen, wenn Sie zum Erstellen von Compute Engine-Instanzen in einem Projekt berechtigt sind. Sie benötigen entweder die Rolle "Projektinhaber" oder "Projektbearbeiter" oder müssen die folgenden IAM-Rollen für Compute Engine haben:

Aufgabe Erforderliche Rolle
Instanzen erstellen Compute-Instanzadministrator
Firewallregeln setzen und löschen Sicherheitsadministrator
Load-Balancer-Komponenten erstellen Netzwerkadministrator
Projekt erstellen (optional) Projektersteller

Weitere Informationen finden Sie in folgenden Leitfäden:

Einrichtung

Optional: Neues Projekt erstellen

Wir empfehlen, dass Nutzer mit der Berechtigung resourcemanager.projects.create ein neues Projekt erstellen, bevor sie der restlichen Anleitung folgen. Dies vereinfacht die Bereinigung am Ende der Anleitung.

Netzwerk und Subnetze konfigurieren

In diesem Beispiel verwenden Sie das folgende VPC-Netzwerk und die folgenden Regionen und Subnetze:

  • Netzwerk: Das Netzwerk ist ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network.

  • Subnetze in zwei verschiedenen Regionen:

    • us-subnet verwendet 10.1.10.0/24 für seinen primären IP-Bereich und befindet sich in der Region us-central1
    • eu-subnet verwendet 10.1.11.0/24 für seinen primären IP-Bereich und befindet sich in der Region europe-west1

So erstellen Sie das Beispielnetzwerk und das Subnetz:

Console

  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 als Namen lb-network ein.

  4. Erstellen Sie im Abschnitt Subnetze das erste Subnetz:

    • Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    • Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
      • Name: us-subnet
      • Region: us-central1
      • IP-Adressbereich: 10.1.10.0/24
      • Klicken Sie auf Fertig.
  5. Klicken Sie ebenfalls im Abschnitt Subnetze die Option Subnetz hinzufügen und erstellen Sie das zweite Subnetz:

    • Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
      • Name: eu-subnet
      • Region: europe-west1
      • IP-Adressbereich: 10.1.11.0/24
      • Klicken Sie auf Fertig.
  6. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie das benutzerdefinierte VPC-Netzwerk:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Erstellen Sie us-subnet:

    gcloud compute networks subnets create us-subnet \
      --network=lb-network \
      --range=10.1.10.0/24 \
      --region=us-central1
    
  3. Erstellen Sie eu-subnet:

    gcloud compute networks subnets create eu-subnet \
      --network=lb-network \
      --range=10.1.11.0/24 \
      --region=europe-west1
    

Firewallregeln konfigurieren

Die Standardregel zum Ablehnen von eingehendem Traffic blockiert eingehenden Traffic für die Back-End-Instanzen, einschließlich Traffic vom Load-Balancer und der Systemdiagnose von Google Cloud. Sie müssen neue Firewallregeln erstellen, um die Standardregel zu überschreiben und den Traffic an Ihre Instanzen zuzulassen.

In diesem Beispiel erstellen Sie die folgenden Firewallregeln:

  • fw-allow-ssh: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und eingehende SSH-Verbindungen an TCP-Port 22 von jeder Adresse aus ermöglicht. Sie können einen restriktiveren IP-Quellbereich für diese Regel auswählen. Geben Sie dazu beispielsweise nur die IP-Bereiche des Systems an, von dem aus Sie SSH-Sitzungen initiieren. In diesem Beispiel wird das Ziel-Tag allow-ssh verwendet, um die Back-End-VMs zu identifizieren, auf die sie angewendet werden soll.

  • fw-allow-health-check-and-proxy: Eine Regel für eingehenden Traffic, die für Instanzen mit Load-Balancing gilt und Traffic von der Systemdiagnose von Google Cloud (130.211.0.0/22 und 35.191.0.0/16) zulässt. In diesem Beispiel wird das Ziel-Tag allow-health-checkverwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden soll.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen, um die erste Firewallregel zu erstellen:

    1. Geben Sie als Namen fw-allow-ssh ein.
    2. Wählen Sie unter Netzwerk die Option lb-network aus.
    3. Wählen Sie unter Ziele Angegebene Ziel-Tags aus.
    4. Tragen Sie im Feld Ziel-Tags allow-ssh ein.
    5. Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
    6. Legen Sie für Quell-IPv4-Bereiche den Wert 0.0.0.0/0 fest.
    7. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
    8. Klicken Sie das Kästchen TCP an und geben Sie 22 als Portnummer ein.
    9. Klicken Sie auf Erstellen.
  3. Klicken Sie auf Firewallregel erstellen, um die zweite Firewallregel zu erstellen:

    1. Geben Sie als Namen fw-allow-health-check-and-proxy ein.
    2. Wählen Sie unter Netzwerk die Option lb-network aus.
    3. Wählen Sie unter Ziele Angegebene Ziel-Tags aus.
    4. Tragen Sie im Feld Ziel-Tags allow-health-check ein.
    5. Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
    6. Legen Sie unter Quell-IPv4-Bereiche die Werte 130.211.0.0/22 und 35.191.0.0/16 fest.
    7. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
    8. Klicken Sie das Kästchen TCP an und geben Sie 80,443 als Portnummer ein.
    9. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie die Firewallregel fw-allow-ssh, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tag allow-ssh zu ermöglichen. Wenn Sie source-ranges weglassen, bezieht Google Cloud die Regel auf jede Quelle.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. Erstellen Sie die Regel fw-allow-health-check-and-proxy, damit der Load-Balancer und die Google Cloud-Systemdiagnosen mit Back-End-Instanzen auf dem TCP-Port 80 und 443 kommunizieren können:

    gcloud compute firewall-rules create fw-allow-health-check-and-proxy \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80,tcp:443
    

Instanzen erstellen

Wenn Sie einen Load-Balancer mit einem Compute Engine-Back-End einrichten möchten, müssen sich Ihre VMs in Instanzgruppen befinden. In dieser Anleitung wird beschrieben, wie Sie eine verwaltete Instanzgruppe mit Linux-VMs erstellen, auf denen Apache ausgeführt wird.

Die verwaltete Instanzgruppe stellt VMs bereit, auf denen die Back-End-Server eines externen HTTPS-Load-Balancers ausgeführt werden. Zu Demonstrationszwecken stellen Back-Ends ihre eigenen Hostnamen bereit.

In diesem Beispiel erstellen Sie acht VM-Instanzen: vier für die Bereitstellung von Videoinhalten und vier für die Bereitstellung aller anderen Inhalte. Mit einem Startskript installieren Sie die Apache-Webserver-Software mit einer einmaligen Homepage für jede Instanz. Sie können einen beliebigen Webserver auf Ihren VMs verwenden. Apache wird in diesem Beispiel der Einfachheit halber installiert.

Console

eine Instanzvorlage erstellen

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

    Zu Instanzvorlagen

    1. Klicken Sie auf Instanzvorlage erstellen.
    2. Geben Sie für Name video-us-template ein.
    3. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
    4. Klicken Sie auf Erweiterte Optionen.
    5. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
      1. Geben Sie für Netzwerk-Tags allow-health-check und allow-ssh ein.
      2. Wählen Sie für Netzwerkschnittstellen Folgendes aus:
        • Netzwerk: lb-network
        • Subnetz: us-subnet
    6. Klicken Sie auf Verwaltung. Fügen Sie im Feld Startskript das nachfolgende Skript ein.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      mkdir -p /var/www/html/video
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html /var/www/html/video/index.html
      systemctl restart apache2
      
    7. Klicken Sie auf Erstellen.

  2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

    1. Klicken Sie auf Instanzgruppe erstellen.
    2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
    3. Geben Sie für Name ig-video-us ein.
    4. Wählen Sie unter Ort die Option Einzelne Zone aus.
    5. Wählen Sie unter Region die gewünschte Region aus. In diesem Beispiel wird us-central1 verwendet.
    6. Wählen Sie als Zone us-central1-b aus.
    7. Wählen Sie unter Instanzvorlage video-us-template aus.
    8. Wählen Sie Off:do not autoscale unter Autoscaling-Modus aus.
    9. Geben Sie 2 bei Maximale Anzahl von Instanzen ein.
    10. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine Instanzvorlage.

    gcloud compute instance-templates create video-us-template \
       --region=us-central1 \
       --network=lb-network \
       --subnet=us-subnet \
       --tags=allow-health-check,allow-ssh \
       --image-family=debian-10 \
       --image-project=debian-cloud \
       --metadata=startup-script='#! /bin/bash
         apt-get update
         apt-get install apache2 -y
         a2ensite default-ssl
         a2enmod ssl
         vm_hostname="$(curl -H "Metadata-Flavor:Google" \
         http://metadata.google.internal/computeMetadata/v1/instance/name)"
         mkdir -p /var/www/html/video
         echo "Page served from: $vm_hostname" | \
         tee /var/www/html/index.html /var/www/html/video/index.html
         systemctl restart apache2'
    
  2. Erstellen Sie anhand der Vorlage eine verwaltete Instanzgruppe.

    gcloud compute instance-groups managed create ig-video-us \
       --template=video-us-template --size=2 --zone=us-central1-b
    

Wiederholen Sie diesen Vorgang viermal für die vier Instanzgruppen. Ändern Sie unbedingt den Namen der Instanzgruppe, den Namen der Vorlagen, die Region und die Zone für jede Instanzgruppe:

  • ig-video-us, video-us-template, us-central1-b (wie im Beispiel gezeigt)
  • ig-video-eu, video-eu-template, europe-west1-b
  • ig-www-us, www-us-template, us-central1-b
  • ig-www-eu, www-europe-template, europe-west1-b

Benannten Port zur Instanzgruppe hinzufügen

Legen Sie bei allen Instanzgruppen einen HTTP-Dienst fest und ordnen Sie dem entsprechenden Port einen Portnamen zu. Nach der Konfiguration leitet der Load-Balancer-Dienst den Traffic zum benannten Port weiter.

Console

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

    Zu den Instanzgruppen

  2. Klicken Sie auf den Namen Ihrer Instanzgruppe, z. B. ig-video-us, und auf Gruppe bearbeiten.

  3. Klicken Sie auf Portnamenzuordnung festlegen.

  4. Klicken Sie auf Zeile hinzufügen.

  5. Geben Sie als Portname http ein. Geben Sie als Portnummer 80 ein.

  6. Klicken Sie auf Speichern.

Wiederholen Sie diesen Schritt für jede Instanzgruppe.

gcloud

gcloud compute instance-groups unmanaged set-named-ports ig-video-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-us \
    --named-ports http:80 \
    --zone us-central1-b
gcloud compute instance-groups unmanaged set-named-ports ig-video-eu \
    --named-ports http:80 \
    --zone europe-west1-b
gcloud compute instance-groups unmanaged set-named-ports ig-www-eu \
    --named-ports http:80 \
    --zone europe-west1-b

Externe IP-Adressen reservieren

Nachdem Ihre Instanzen nun ausgeführt werden, müssen Sie die Dienste einrichten, die für das Load-Balancing benötigt werden. In diesem Abschnitt erstellen Sie zwei globale statische externe IP-Adressen, mit denen Ihre Kunden Ihren Load-Balancer erreichen.

Console

  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, um eine IPv4-Adresse zu reservieren.

  3. Weisen Sie als Name lb-ipv4-1 zu.

  4. Legen Sie für die Netzwerkstufe Premium fest.

  5. Setzen Sie die IP-Version auf IPv4.

  6. Legen Sie für Typ Global fest.

  7. Klicken Sie auf Reservieren.

  8. Klicken Sie noch einmal auf Statische Adresse reservieren, um eine IPv6-Adresse zu reservieren.

  9. Weisen Sie als Name lb-ipv6-1 zu.

  10. Setzen Sie die Netzwerkstufe auf Premium.

  11. Setzen Sie die IP-Version auf IPv6.

  12. Prüfen Sie, dass der Typ auf Global festgelegt ist.

    In diesem Beispiel verwendet der Load-Balancer Netzwerke der Premium-Stufe. Ein Load-Balancer mit einem Netzwerk der Standardstufe würde stattdessen regionale IP-Adressen verwenden. IPv6-Adressen sind in der Standardstufe nicht verfügbar.

  13. Klicken Sie auf Reservieren.

gcloud

  1. Reservieren Sie eine IPv4-Adresse:

    gcloud compute addresses create lb-ipv4-1 \
      --ip-version=IPV4 \
      --network-tier=PREMIUM \
      --global
    
  2. Reservieren Sie eine IPv6-Adresse:

    gcloud compute addresses create lb-ipv6-1 \
      --ip-version=IPV6 \
      --network-tier=PREMIUM \
      --global
    

Load-Balancing-Ressourcen konfigurieren

Die Funktionalität des Load-Balancers erfordert, dass mehrere Ressourcen angeschlossen sind. In diesem Abschnitt richten Sie die Ressourcen ein und verbinden sie. Dies sind:

  • Benannte Ports, die der Load-Balancer verwendet, um Traffic an Ihre Instanzgruppen zu leiten.
  • Eine Systemdiagnose, die überprüft, ob Ihre Instanzen fehlerfrei sind. Der Load-Balancer sendet Traffic nur an fehlerfreie Instanzen.
  • Back-End-Dienste, mit denen Kapazität, Sitzungsaffinität und der aktuelle Diagnosestatus erfasst werden. Back-End-Dienste leiten Anfragen an Back-End-VMs oder -Endpunkte basierend auf der Kapazität und dem Instanzstatus weiter.
  • Eine URL-Zuordnung, mit der der Load-Balancer Anfragen an bestimmte Back-End-Dienste basierend auf den Hosts und dem Pfad der Anfrage-URL weiterleitet.
  • Eine SSL-Zertifikatsressource. SSL-Zertifikatressourcen enthalten SSL-Zertifikatinformationen, die der Load-Balancer verwendet, um TLS zu beenden, wenn HTTPS-Clients eine Verbindung zu ihm herstellen. Sie können mehrere SSL-Zertifikate verwenden. Dabei kann es sich um eine beliebige Kombination aus verwalteten oder selbstverwalteten SSL-Zertifikaten handeln. Sie müssen für jedes verwendete Zertifikat eine SSL-Zertifikatsressource erstellen.
  • Ein HTTPS-Zielproxy, den der Load-Balancer verwendet, um Ihre URL-Zuordnung und SSL-Zertifikate mit Ihren globalen Weiterleitungsregeln zu verknüpfen.
  • Zwei globale Weiterleitungsregeln, jeweils eine für IPv4 und IPv6, mit den globalen externen IP-Adressressourcen. Mit den globalen Weiterleitungsregeln werden die eingehenden Anfragen an den Zielproxy übermittelt.

Console

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 Klassischer Application Load Balancer aus und klicken Sie auf Weiter.
  7. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie web-map als Name für den Load-Balancer ein.
  2. Lassen Sie das Fenster geöffnet, um fortzufahren.

Backend-Dienst und Systemdiagnose für die www-Instanzen konfigurieren

Für den Load-Balancer sind zwei Back-End-Dienste und deren Systemdiagnose erforderlich. In diesem Beispiel beendet der Load-Balancer HTTPS-Anfragen vom Client und verwendet HTTP, um mit den Back-Ends zu kommunizieren. Dazu geben Sie HTTP für die Back-End-Protokolle und Systemdiagnosen an.

  1. Klicken Sie auf Backend-Konfiguration.
  2. Halten Sie im Drop-down-Menü Back-End-Dienst erstellen oder auswählen den Mauszeiger auf Back-End-Dienste und wählen Sie Back-End-Dienst erstellen aus.
  3. Legen Sie als Name für den Back-End-Dienst web-backend-service fest.
  4. Prüfen Sie, ob der Back-End-Typ auf Instanzgruppe festgelegt ist.
  5. Wählen Sie im Drop-down-Menü Protokoll die Option HTTP aus.
  6. Geben Sie im Feld Benannter Port http ein.
  7. Legen Sie unter Back-Ends für Instanzgruppe ig-www-us fest.
  8. Legen Sie für den Traffic zwischen dem Load-Balancer und den Instanzen für die Portnummern 80 fest.
  9. Übernehmen Sie für die übrigen Felder die Standardwerte.
  10. Klicken Sie unten im Fenster Neues Back-End auf Fertig.
  11. Klicken Sie auf Back-End hinzufügen und wiederholen Sie die Schritte. Wählen Sie jedoch die Instanzgruppe ig-www-eu aus.
  12. Lassen Sie das Fenster geöffnet, um fortzufahren.

Konfigurieren Sie die Systemdiagnose für die www-Instanzen.

  1. Wählen Sie im Fenster Back-End-Konfiguration unter Systemdiagnose die Option Systemdiagnose erstellen oder Weitere Systemdiagnose erstellen aus.
  2. Legen Sie die folgenden Systemdiagnoseparameter fest, um die HTTP-Systemdiagnose zu erstellen:
    • Name auf http-basic-check-www
    • Protokoll auf HTTP
    • Port auf 80
  3. Klicken Sie auf Speichern und Fortfahren.
  4. Klicken Sie auf Erstellen.

Backend-Dienst und Systemdiagnose für die video-Instanzen konfigurieren

  1. Wiederholen Sie die Schritte oben, aber nennen Sie den zweiten Back-End-Dienst video-backend-service und weisen Sie ihm die Instanzgruppen ig-video-us und ig-video-eu zu.
  2. Führen Sie dieselben Schritte aus, um eine Systemdiagnose zu erstellen, nennen Sie die Systemdiagnose jedoch http-basic-check-video. Der Name einer Systemdiagnose muss einmalig sein.

Host- und Pfadregeln konfigurieren

Die Host- und Pfadregeln konfigurieren die URL-Zuordnungsressource des Load-Balancers.

  1. Klicken Sie in der linken Spalte des Bildschirms auf Host- und Pfadregeln.
  2. Die erste Zeile enthält web-backend-service in der rechten Spalte und ist bereits mit der Standardregel Any unmatched (default) für Hosts und Pfade befüllt.
  3. Prüfen Sie, ob sich in der rechten Spalte eine zweite Zeile mit video-backend-service befindet. Ist sie nicht vorhanden, klicken Sie auf Host- und Pfadregel hinzufügen und wählen Sie im Drop-down-Menü in der rechten Spalte video-backend-service aus. Tragen Sie das Folgende in den anderen Spalten ein:
    1. Legen Sie für Hosts * fest.
    2. Im Feld Pfade:
      1. Geben Sie /video ein und drücken Sie die Tabulatortaste.
      2. Geben Sie /video/* ein und drücken Sie die Tabulatortaste.

Frontend konfigurieren

Im Abschnitt zur Konfiguration des Front-Ends werden verschiedene Ressourcen für den Load-Balancer konfiguriert, einschließlich der Weiterleitungsregeln und SSL-Zertifikate. Außerdem können Sie das Protokoll auswählen, das zwischen dem Client und dem Load-Balancer verwendet wird.

In diesem Beispiel verwenden Sie HTTPS zwischen dem Client und dem Load-Balancer. Daher benötigen Sie eine oder mehrere SSL-Zertifikatressourcen, um den Proxy zu konfigurieren. Informationen zum Erstellen von SSL-Zertifikatsressourcen finden Sie unter SSL-Zertifikate. Wir empfehlen die Verwendung eines von Google verwalteten Zertifikats.

  1. Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Frontend-Konfiguration.
  2. Geben Sie im Feld Name https-content-rule ein.
  3. Wählen Sie im Feld Protokoll die Option HTTPS aus.
  4. Lassen Sie das Fenster geöffnet, um fortzufahren.

IPv4-Weiterleitungsregel konfigurieren

  1. Legen Sie als IP-Version IPv4 fest.
  2. Wählen Sie unter IP-Adresse die zuvor erstellte IP-Adresse lb-ipv4-1 aus.
  3. Achten Sie darauf, dass der Port auf 443 festgelegt ist, um HTTPS-Traffic zuzulassen.
  4. Klicken Sie auf die Drop-down-Liste Zertifikat.
    1. Wenn Sie bereits eine selbstverwaltete SSL-Zertifikatsressource haben, die Sie als primäres SSL-Zertifikat verwenden möchten, wählen Sie sie aus dem Drop-down-Menü aus.
    2. Wählen Sie andernfalls Neues Zertifikat erstellen aus.
    3. Geben Sie www-ssl-cert als Name ein.
    4. Wählen Sie Zertifikat hochladen oder Von Google verwaltetes Zertifikat erstellen aus. Zum Erstellen eines von Google verwalteten Zertifikats benötigen Sie eine Domain. Wenn Sie keine Domain haben, können Sie zu Testzwecken ein eigenes Zertifikat hochladen.
    5. Wenn Sie Zertifikat hochladen ausgewählt haben, führen Sie diese Schritte aus:
      1. Im Feld Zertifikat für öffentlichen Schlüssel haben Sie folgende Optionen:
        • Klicken Sie auf die Schaltfläche Hochladen und wählen Sie Ihre PEM-formatierte Zertifikatsdatei aus.
        • Kopieren Sie den Inhalt eines PEM-formatierten Zertifikats und fügen Sie ihn ein. Der Inhalt muss mit -----BEGIN CERTIFICATE----- beginnen und mit -----END CERTIFICATE----- enden.
      2. Im Feld Zertifikatskette haben Sie folgende Optionen:
        • Klicken Sie auf Hochladen und wählen Sie die Zertifikatsdatei Ihrer Zertifizierungsstelle aus. Diese Datei sollte sowohl die Zwischenzertifikate als auch das Stammzertifikat der Zertifizierungsstelle enthalten.
        • Kopieren Sie den Inhalt einer Zertifikatskette und fügen Sie ihn ein. Alle Zertifikate in der Kette müssen das Format PEM haben sowie mit -----BEGIN CERTIFICATE----- beginnen und mit -----END CERTIFICATE----- enden. Google Cloud validiert die Zertifikatskette nicht für Sie. Die Validierung liegt in Ihrer Verantwortung.
        • Wenn Sie die Zertifikatskette weglassen, sollte das Zertifikat von einer öffentlich vertrauenswürdigen Zertifizierungsstelle signiert werden, der Ihre Clients automatisch vertrauen.
      3. Im Feld Zertifikat für privaten Schlüssel haben Sie folgende Optionen:
        • Klicken Sie auf Hochladen und wählen Sie Ihren privaten Schlüssel aus. Ihr privater Schlüssel muss das Format PEM haben und darf nicht mit einer Passphrase geschützt sein.
        • Kopieren Sie den Inhalt des privaten Schlüssels im PEM-Format und fügen Sie ihn ein. Private RSA-Schlüssel müssen mit -----BEGIN RSA PRIVATE KEY----- beginnen und mit -----END RSA PRIVATE KEY----- enden. Private ECDSA-Schlüssel müssen mit -----BEGIN EC PRIVATE KEY----- beginnen und mit -----END EC PRIVATE KEY----- enden.
      4. Klicken Sie auf Erstellen.
    6. Wenn Sie Von Google verwaltetes Zertifikat erstellen ausgewählt haben, geben Sie eine Domain ein.
  5. So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
    1. Klicken Sie auf Zertifikat hinzufügen.
    2. Wählen Sie in der Liste Zertifikate ein Zertifikat aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der obigen Anleitung.
  6. Wählen Sie unter QUIC-Verhandlung eine der folgenden Optionen aus:
    • Automatisch (Standard): Damit kann Google steuern, wann QUIC ausgehandelt wird. Derzeit ist QUIC aktiviert, wenn Sie Automatisch auswählen. Wenn Sie diese Option auswählen, erlauben Sie Google, QUIC-Verhandlungen und HTTP/3 für diesen Load-Balancer in Zukunft automatisch zu aktivieren. In gcloud und der API heißt diese Option NONE.
    • Aktiviert: Ermöglicht dem Load-Balancer, QUIC mit Clients auszuhandeln.
    • Deaktiviert: Verhindert, dass der Load-Balancer QUIC mit Clients aushandelt.
  7. Klicken Sie auf Fertig.
  8. Lassen Sie das Fenster geöffnet, um fortzufahren.

IPv6-Weiterleitungsregel konfigurieren

  1. Klicken Sie auf Front-End-IP und Port hinzufügen.
  2. Geben Sie als Name https-content-ipv6-rule ein.
  3. Wählen Sie im Feld Protokoll die Option HTTPS aus, wenn Sie HTTPS zwischen dem Client und dem Load-Balancer verwenden möchten. Wählen Sie HTTP aus, wenn Sie HTTP als Protokoll zwischen dem Client und dem Load-Balancer verwenden möchten.
  4. Legen Sie IPv6 als IP-Version fest.
  5. Wählen Sie unter IP die zuvor erstellte IP-Adresse lb-ipv6-1 aus.
  6. Für den standardmäßigen Port ist 443 erforderlich.
  7. Wenn Sie bereits eine SSL-Zertifikatsressource haben, die Sie verwenden möchten, wählen Sie sie aus dem Drop-down-Menü Zertifikat aus. Wählen Sie anderenfalls Neues Zertifikat erstellen aus.
    1. Geben Sie www-ssl-cert als Name ein.
    2. Laden Sie in den entsprechenden Feldern Ihr Public-Key-Zertifikat (.crt-Datei), Ihre Zertifikatskette (.csr-Datei) und Ihren privaten Schlüssel (.key-Datei) hoch.
    3. Klicken Sie auf Erstellen.
  8. So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
    1. Klicken Sie auf Zertifikat hinzufügen.
    2. Wählen Sie in der Liste Zertifikate ein Zertifikat aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der obigen Anleitung.
  9. Wählen Sie unter QUIC-Verhandlung eine der folgenden Optionen aus:
    • Automatisch (Standard): Damit kann Google steuern, wann QUIC ausgehandelt wird. Derzeit ist QUIC aktiviert, wenn Sie Automatisch auswählen. Wenn Sie diese Option auswählen, erlauben Sie Google, QUIC-Verhandlungen und HTTP/3 für diesen Load-Balancer in Zukunft automatisch zu aktivieren. In gcloud und der API heißt diese Option NONE.
    • Aktiviert: Ermöglicht dem Load-Balancer, QUIC mit Clients auszuhandeln.
    • Deaktiviert: Verhindert, dass der Load-Balancer QUIC mit Clients aushandelt.
  10. Klicken Sie auf Fertig.

Prüfen und abschließen

  1. Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Prüfen und abschließen.
  2. Vergleichen Sie die Einstellungen mit denen, die Sie erstellen wollten.
  3. Wenn alles korrekt aussieht, klicken Sie auf Erstellen, um Ihren externen Application Load Balancer zu erstellen.

gcloud

  1. Erstellen Sie eine Systemdiagnose. Verwenden Sie den Befehl gcloud für HTTP, wenn Sie HTTP zwischen dem Load-Balancer und den Back-Ends verwenden.

    gcloud compute health-checks create http http-basic-check \
        --port 80
    
  2. Erstellen Sie für alle Inhaltsanbieter einen Back-End-Dienst.

    Setzen Sie das Feld --protocol auf HTTP, da wir HTTP nutzen, um zu den Instanzen zu gelangen. Nutzen Sie die Systemdiagnose http-basic-check, die Sie zuvor für die Systemdiagnose erstellt haben.

    • Verwenden Sie für einen globalen externen Application Load Balancer den gcloud CLI-Befehl mit load-balancing-scheme=EXTERNAL_MANAGED. Diese Einstellung bietet erweiterte Funktionen zur Trafficverwaltung.
    • Verwenden Sie für einen klassischen Application Load Balancer load-balancing-scheme=EXTERNAL.
    gcloud compute backend-services create video-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
    gcloud compute backend-services create web-backend-service \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --global-health-checks \
        --protocol=HTTP \
        --port-name=http \
        --health-checks=http-basic-check \
        --global
    
  3. Fügen Sie Ihre Instanzgruppen als Backends zu den Backend-Diensten hinzu. Ein Back-End definiert die Kapazität (maximale Back-End-Auslastung oder maximale Anzahl an Abfragen pro Sekunde) der Instanzengruppen, die es enthält. Legen Sie in diesem Beispiel balancing-mode auf den Wert UTILIZATION, max-utilization auf 0.8 und capacity-scaler auf 1 fest. Legen Sie für capacity-scaler 0 fest, wenn Sie einen Back-End-Dienst per Drain beenden möchten.

    Fügen Sie die Instanzgruppe ig-video-us hinzu:

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-us \
        --instance-group-zone=us-central1-b \
        --global
    

    Fügen Sie die Instanzgruppe ig-video-eu hinzu:

    gcloud compute backend-services add-backend video-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-video-eu \
        --instance-group-zone=europe-west1-b \
        --global
    

    Fügen Sie die Instanzgruppe ig-www-us hinzu:

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-us \
        --instance-group-zone=us-central1-b \
        --global
    

    Fügen Sie die Instanzgruppe ig-www-eu hinzu:

    gcloud compute backend-services add-backend web-backend-service \
        --balancing-mode=UTILIZATION \
        --max-utilization=0.8 \
        --capacity-scaler=1 \
        --instance-group=ig-www-eu \
        --instance-group-zone=europe-west1-b \
        --global
    
  4. Erstellen Sie eine URL-Zuordnung, die alle eingehenden Anfragen an die entsprechenden Back-End-Dienste leitet. In diesem Fall spaltet die Pfadzuordnung der Anfrage, die über das Flag --path-rules definiert ist, den Traffic gemäß dem URL-Pfad in jeder Anfrage an Ihre Website auf. Traffic, der mit keinem Eintrag in der --path-rules-Liste übereinstimmt, wird zum Eintrag im --default-service flag gesendet.

    1. Erstellen Sie eine URL-Zuordnung:

      gcloud compute url-maps create web-map \
          --default-service web-backend-service
      
    2. Fügen Sie Ihrer URL-Zuordnung einen Pfad-Matcher bei und definieren Sie die Pfadzuordnungen Ihrer Anfrage:

      gcloud compute url-maps add-path-matcher web-map \
          --default-service web-backend-service \
          --path-matcher-name pathmap \
          --path-rules="/video=video-backend-service,/video/*=video-backend-service"
      
  5. Erstellen Sie eine SSL-Zertifikatsressource, die im HTTPS-Proxy verwendet werden soll. Zum Erstellen eines von Google verwalteten Zertifikats benötigen Sie eine Domain. Wenn Sie keine Domain haben, können Sie ein selbst signiertes SSL-Zertifikat zu Testzwecken verwenden. Weitere Informationen finden Sie unter SSL-Zertifikate erstellen und verwenden.

    Wenn Sie mehrere SSL-Zertifikate verwenden, müssen Sie für jedes Zertifikat eine SSL-Zertifikatsressource erstellen.

    So erstellen Sie eine selbstverwaltete SSL-Zertifikatsressource:

    gcloud compute ssl-certificates create www-ssl-cert \
        --certificate [CRT_FILE_PATH] \
        --private-key [KEY_FILE_PATH]
    

    So erstellen Sie eine von Google verwaltete SSL-Zertifikatsressource:

    gcloud compute ssl-certificates create www-ssl-cert \
      --domains [DOMAIN]
    
  6. Erstellen Sie einen HTTPS-Ziel-Proxy, um Anfragen an Ihre URL-Zuordnung zu leiten. Der Proxy ist der Teil des Load-Balancers, der das SSL-Zertifikat für das HTTPS-Load-Balancing besitzt. Daher laden Sie in diesem Schritt auch Ihr Zertifikat.

    gcloud compute target-https-proxies create https-lb-proxy \
        --url-map web-map --ssl-certificates www-ssl-cert
    
  7. Erstellen Sie für jede der von Ihnen erstellten IP-Adressen jeweils eine globale Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten.

    • Verwenden Sie für einen globalen externen Application Load Balancer den gcloud CLI-Befehl mit load-balancing-scheme=EXTERNAL_MANAGED. Diese Einstellung bietet erweiterte Funktionen zur Trafficverwaltung.
    • Verwenden Sie für einen klassischen Application Load Balancer load-balancing-scheme=EXTERNAL.
    gcloud compute forwarding-rules create https-content-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv4-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    
    gcloud compute forwarding-rules create https-content-ipv6-rule \
        --load-balancing-scheme=LOAD_BALANCING_SCHEME \
        --network-tier=PREMIUM \
        --address=lb-ipv6-1 \
        --global \
        --target-https-proxy=https-lb-proxy \
        --ports=443
    

Nachdem die globale Weiterleitungsregel erstellt wurde, kann es mehrere Minuten dauern, bis die Konfiguration wirksam wird.

Domain mit dem Load-Balancer verbinden

Notieren Sie sich nach der Erstellung des Load-Balancers die IP-Adresse, die diesem zugewiesen ist, z. B. 30.90.80.100. Wenn Sie Ihre Domain auf den Load-Balancer verweisen möchten, erstellen Sie mit Ihrem Domain-Registrierungsdienst einen A-Eintrag. Wenn Sie Ihrem SSL-Zertifikat mehrere Domains hinzugefügt haben, müssen Sie für jede Domain einen A-Eintrag hinzufügen, der auf die IP-Adresse des Load-Balancers verweist. So erstellen Sie beispielsweise A-Einträge für www.example.com und example.com:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Einträge hinzufügen, ändern und löschen.

Traffic an die Instanzen senden

Nachdem Sie den Load-Balancing-Dienst konfiguriert haben, können Sie beginnen, Traffic an die Weiterleitungsregel zu senden, und beobachten, wie der Traffic auf verschiedene Instanzen verteilt wird.

Console und Webbrowser

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

    Load-Balancing aufrufen

  2. Klicken Sie auf web-map, um den soeben erstellten Load-Balancer zu maximieren.

  3. Bestätigen Sie im Abschnitt Back-End, dass die Instanzen fehlerfrei sind. In der Spalte Fehlerfrei sollte angegeben werden, dass beide Instanzen in jeder der vier Instanzgruppen fehlerfrei sind. Wenn Sie etwas anderes sehen, versuchen Sie zuerst, die Seite neu zu laden. Es kann einige Minuten dauern, bis die Google Cloud Console anzeigt, dass die Instanzen fehlerfrei sind. Wenn die Backends nach einigen Minuten nicht fehlerfrei sind, überprüfen Sie die Firewallkonfiguration und die Netzwerk-Tags, die Ihren Backend-Instanzen zugewiesen wurden.

  4. Notieren Sie die IPv4- und IPv6-Adressen des Load-Balancers:

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

      Zu externen IP-Adressen

    2. Suchen Sie unter Name die Adressen lb-ipv4-1 und lb-ipv6-1 und notieren Sie die zugehörigen Werte aus der Spalte Externe Adressen.

  5. Wenn Sie ein von Google verwaltetes Zertifikat verwenden:

    1. Erstellen Sie die folgenden DNS-Einträge:

    2. Achten Sie darauf, dass der Status Ihrer Zertifikatsressource aktiv ist. Weitere Informationen finden Sie unter Status der von Google verwalteten SSL-Zertifikatsressourcen.

  6. Testen Sie Ihren Load-Balancer mit einem Webbrowser. Gehen Sie dazu so vor:

    • https://IP_ADDRESS, wobei IP_ADDRESS die IPv4-Adresse des Load-Balancers ist. Wenn Ihr Browser eine Zertifikatswarnung anzeigt, müssen Sie ihn ausdrücklich anweisen, dem Zertifikat zu vertrauen. Die Warnung wird angezeigt, weil Zertifikate in der Regel mit Domains konfiguriert werden, nicht mit IP-Adressen.

    • https://FQDN, wobei FQDN der vollständig qualifizierte Domainname (FQDN) ist, für den Sie das DNS so konfiguriert haben, dass es auf die IP-Adresse des Load-Balancers verweist. Wenn Sie ein selbst verwaltetes, selbst signiertes SSL-Zertifikat oder ein selbst verwaltetes SSL-Zertifikat verwendet haben, das von einer benutzerdefinierten Zertifizierungsstelle (CA) signiert wurde, wird in Ihrem Browser eine Warnung zum Zertifikat angezeigt, es sei denn, Sie haben das Zertifikat oder seine Zertifizierungsstelle explizit als vertrauenswürdig eingestuft. Weitere Informationen zu selbst verwalteten Zertifikaten finden Sie unter Privaten Schlüssel und Zertifikat erstellen.

    Ihr Browser sollte eine Seite mit Inhalt rendern, der den Namen der Instanz, die die Seite bereitstellt, und deren Zone enthält (z. B. Page on ig-www-us-02 in us-central1-b).

  7. Rufen Sie in Ihrem Browser eine der folgenden Optionen auf:

    • https://IP_ADDRESS/video, wobei IP_ADDRESS die IPv4-Adresse des Load-Balancers ist.

    • https://FQDN/video, wobei FQDN der FQDN ist, für den Sie das DNS so konfiguriert haben, dass es auf die IP-Adresse des Load-Balancers verweist.

    Ihr Browser sollte eine Seite mit Inhalt rendern, der den Namen des Videos der Instanz, die die Seite bereitstellt, und deren Zone enthält (z. B. Page on ig-video-us-02 in us-central1-b).

gcloud und Verwendung von curl

  1. Notieren Sie die IPv4- und IPv6-Adressen des Load-Balancers:

    gcloud compute addresses describe lb-ipv4-1 \
    --format="get(address)" \
    --global
    
    gcloud compute addresses describe lb-ipv6-1 \
    --format="get(address)" \
    --global
    
  2. Wenn Sie ein von Google verwaltetes Zertifikat verwenden:

    1. Erstellen Sie die folgenden DNS-Einträge:

    2. Achten Sie darauf, dass der Status Ihrer Zertifikatsressource aktiv ist. Weitere Informationen finden Sie unter Status der von Google verwalteten SSL-Zertifikatressourcen.

      gcloud compute ssl-certificates list
      
  3. Verwenden Sie den Befehl curl, um die Antwort von diesen URLs zu testen. Ersetzen Sie IP_ADDRESS durch die IPv4-Adresse des Load-Balancers.

    curl -k https://IP_ADDRESS
    
    curl -k https://IP_ADDRESS/video/
    
  4. Verwenden Sie den Befehl curl, um die Antwort von diesen URLs zu testen. Ersetzen Sie IP_ADDRESS durch die IPv6-Adresse des Load-Balancers. Bei IPv6 müssen Sie die Adresse in eckige Klammern ([]) setzen und das Globbing mit dem Flag -g deaktivieren (z. B. curl -g -6 "https://[2001:DB8::]/").

    curl -k -g -6 https://[IP_ADDRESS]
    
    curl -k -g -6 https://[IP_ADDRESS]/video/
    

Multiregionale Funktionalität testen

Wenn Sie einen Nutzer in einer anderen Region simulieren möchten, können Sie eine Verbindung zu einer Ihrer VM-Instanzen in einer anderen Region herstellen und dann einen curl-Befehl von dieser Instanz aus ausführen, um die Anfrage an eine Instanz in der nächstgelegenen Region zu senden.

Wenn Sie eine Verbindung zu ig-www-us-01 herstellen, zeigt der Befehl curl an, dass die Anfrage an eine Instanz in us-central1 gerichtet wird. Die Ausgabe sieht in etwa so aus: Page on ig-www-us-02 in us-central1-b.

Wenn Sie eine Verbindung zu ig-www-eu-01 herstellen, zeigt der Befehl curl an, dass die Anfrage an eine Instanz in europe-west1 gerichtet wird. Die Ausgabe sieht in etwa so aus: Page on ig-www-eu-02 in europe-west1-b.

Sie können Tests von einem Clientsystem weltweit durchführen. Wenn Back-Ends in einer Region fehlerhaft werden oder die Kapazitätsgrenze erreichen, sendet der HTTPS-Load-Balancer den Traffic automatisch an die nächstgelegene Region.

Zusätzliche Konfigurationsoptionen

In diesem Abschnitt wird die Konfiguration des Beispiels um alternative und zusätzliche Optionen erweitert. Alle Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge ausführen.

Sitzungsaffinität aktivieren

Die folgenden Verfahren zeigen, wie Sie für jeden Back-End-Dienst eine andere Art von Sitzungsaffinität konfigurieren:

  • Sitzungsaffinität der Client-IP-Adresse für web-backend-service
  • HTTP-Cookie-Sitzungsaffinität für video-backend-service

Wenn die Client-IP-Affinität aktiviert ist, leitet der Load-Balancer Anfragen eines bestimmten Clients an dieselbe Back-End-VM, und zwar anhand eines Hashwerts, der aus der IP-Adresse des Clients erstellt wurde.

Wenn die generierte Cookie-Affinität aktiviert ist, gibt der Load-Balancer bei der ersten Anfrage ein Cookie aus. Bei jeder nachfolgenden Anfrage mit demselben Cookie leitet der Load-Balancer die Anfrage an dieselbe Backend-VM oder denselben Backend-Endpunkt weiter. Für externe Application Load Balancer lautet das Cookie GCLB.

Console

So aktivieren Sie die Client-IP-Sitzungsaffinität für web-backend-service:

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

    Load-Balancing aufrufen

  2. Klicken Sie auf Back-Ends.

  3. Klicken Sie auf web-backend-service (den Namen eines der Back-End-Dienste, den Sie für dieses Beispiel erstellt haben) und dann auf Bearbeiten.

  4. Klicken Sie auf der Seite Back-End-Dienstdetails auf Erweiterte Konfiguration.

  5. Wählen Sie im Menü unter Sitzungsaffinität die Option Client-IP aus.

  6. Klicken Sie auf Speichern.

So aktivieren Sie die generierte Cookie-Sitzungsaffinität für video-backend-service:

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

    Load-Balancing aufrufen

  2. Klicken Sie auf Back-Ends.

  3. Klicken Sie auf video-backend-service, den Namen des Back-End-Dienstes, den Sie für dieses Beispiel erstellt haben, und dann auf Bearbeiten.

  4. Klicken Sie auf der Seite Back-End-Dienstdetails auf Erweiterte Konfiguration.

  5. Wählen Sie im Menü unter Sitzungsaffinität die Option Generiertes Cookie aus.

  6. Klicken Sie auf Aktualisieren.

gcloud

Aktualisieren Sie den Backend-Dienst web-backend-service mit dem folgenden gcloud-Befehl. Geben Sie dabei die Sitzungsaffinität der Client-IP-Adresse an:

gcloud compute backend-services update web-backend-service \
    --session-affinity=CLIENT_IP \
    --global

Verwenden Sie den folgenden Befehl gcloud, um den Backend-Dienst video-backend-service zu aktualisieren und dabei die generierte Cookie-Sitzungsaffinität anzugeben:

gcloud compute backend-services update video-backend-service \
    --session-affinity=GENERATED_COOKIE \
    --global

API

Zum Festlegen der Client-IP-Sitzungsaffinität senden Sie eine PATCH-Anfrage an die Methode backendServices/patch.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/web-backend-service
{
  "sessionAffinity": "CLIENT_IP"
}

Stellen Sie eine PATCH-Anfrage an die Methode backendServices/patch, um die generierte Cookie-Sitzungsaffinität festzulegen.

PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/video-backend-service
{
  "sessionAffinity": "GENERATED_COOKIE"
}

Externe IP-Adressen aus Backend-VMs entfernen

Externe Application Load Balancer kommunizieren über ihre internen IP-Adressen und spezielle Load-Balancer-Routen mit Back-Ends. Die Backend-Instanzen benötigen keine externen IP-Adressen, um mit dem Load-Balancer zu kommunizieren. Sie können die Sicherheit erhöhen, indem Sie die externen IP-Adressen aus Ihren Back-End-Instanzen entfernen.

Folgen Sie dieser Anleitung, um externe IP-Adressen aus Back-End-Instanzen zu entfernen.

Wenn Sie eine Verbindung mit einer Back-End-Instanz ohne externe IP-Adresse über SSH herstellen müssen, lesen Sie den Abschnitt Verbindung zu Instanz herstellen, die keine externe IP-Adresse hat.

Bereinigen

Nachdem Sie diese Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen löschen, sodass Ihnen diese nicht weiter in Rechnung gestellt werden. Wenn diese Ressourcen in einem eigenen Projekt erstellt wurden, können Sie das gesamte Projekt löschen. Ansonsten können Sie die Ressourcen einzeln löschen.

Projekt löschen

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Projekte.

    Zu den Projekten

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.

  3. Geben Sie im Dialogfeld PROJECT_ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

gcloud

Führen Sie den folgenden Befehl aus und ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID:

gcloud projects delete PROJECT_ID

Einzelne Ressourcen löschen

Console

Load-Balancer löschen

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

    Load-Balancing aufrufen

  2. Klicken Sie das Kästchen neben web-map an.

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

  4. Klicken Sie die Kästchen neben allen zusätzlichen Ressourcen an, einschließlich Back-End-Diensten, Systemdiagnosen und SSL-Zertifikaten.

  5. Klicken Sie auf Load-Balancer und ausgewählte Ressourcen löschen.

Instanzgruppen löschen

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

    Zu den Instanzgruppen

  2. Klicken Sie das Kästchen oben neben Name an, um alle Instanzgruppen auszuwählen.

  3. Klicken Sie auf Löschen.

  4. Klicken Sie im Bestätigungsfenster auf Löschen.

Externe IP-Adressen freigeben

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

    Zu externen IP-Adressen

  2. Klicken Sie das Kästchen neben lb-ipv4-1 und lb-ipv6-1 an.

  3. Klicken Sie auf Statische Adressen freigeben.

  4. Klicken Sie im Bestätigungsfenster auf Löschen.

Firewallregeln löschen

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

    Zu den Firewall-Richtlinien

  2. Klicken Sie das Kästchen neben fw-allow-health-check-and-proxy und fw-allow-ssh an.

  3. Klicken Sie auf Löschen.

  4. Klicken Sie im Bestätigungsfenster auf Löschen.

VM-Instanzen löschen

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

    Zu Seite „VM-Instanzen“

  2. Klicken Sie das Kästchen oben neben Name an, um alle Instanzen auszuwählen.

  3. Klicken Sie auf Löschen.

  4. Klicken Sie im Bestätigungsfenster auf Löschen.

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 lb-network.

  3. Klicken Sie auf der Seite VPC-Netzwerkdetails auf VPC-Netzwerk löschen.

  4. Klicken Sie im Bestätigungsfenster auf Löschen.

gcloud

Load-Balancer löschen

Sie müssen jede Komponente des Load-Balancers löschen, um ihn zu löschen.

  1. Löschen Sie die Weiterleitungsregeln:

    gcloud compute forwarding-rules delete https-content-rule \
        --global
    
    gcloud compute forwarding-rules delete https-content-ipv6-rule \
        --global
    
  2. Löschen Sie die globalen externen IP-Adressen:

    gcloud compute addresses delete lb-ipv4-1 \
        --global
    
    gcloud compute addresses delete lb-ipv6-1 \
        --global
    
  3. Löschen Sie den Ziel-Proxy:

    gcloud compute target-https-proxies delete https-lb-proxy
    
  4. Löschen Sie das SSL-Zertifikat:

    gcloud compute ssl-certificates delete www-ssl-cert
    
  5. Löschen Sie die URL-Zuordnung:

    gcloud compute url-maps delete web-map
    
  6. Löschen Sie die Back-End-Dienste:

    gcloud compute backend-services delete web-backend-service \
        --global
    
    gcloud compute backend-services delete video-backend-service \
        --global
    
  7. Löschen Sie die Systemdiagnosen:

    gcloud compute health-checks delete http-basic-check
    

Sie haben alle Load-Balancer-Ressourcen gelöscht.

Instanzgruppen löschen

Wiederholen Sie den folgenden Befehl, um vier nicht verwaltete Instanzgruppen mit den folgenden Kombinationen aus Name und Zone zu löschen. Ersetzen Sie INSTANCE_GROUP_NAME und ZONE entsprechend:

  • Name: ig-www-us, Zone: us-central1-b
  • Name: ig-video-us, Zone: us-central1-b
  • Name: ig-www-eu, Zone: europe-west1-b
  • Name: ig-video-eu, Zone: europe-west1-b
gcloud compute instance-groups unmanaged delete INSTANCE_GROUP_NAME \
   --zone=ZONE

VM-Instanzen löschen

Wiederholen Sie den folgenden Befehl, um acht VMs mit den folgenden Kombinationen aus Name und Zone zu löschen. Ersetzen Sie VM_NAME und ZONE entsprechend:

  • Name: ig-www-us-01, Zone: us-central1-b
  • Name: ig-www-us-02, Zone: us-central1-b
  • Name: ig-video-us-01, Zone: us-central1-b
  • Name: ig-video-us-02, Zone: us-central1-b
  • Name: ig-www-eu-01, Zone: europe-west1-b
  • Name: ig-www-eu-02, Zone: europe-west1-b
  • Name: ig-video-eu-01, Zone: europe-west1-b
  • Name: ig-video-eu-02, Zone: europe-west1-b
gcloud compute instances delete VM_NAME \
   --zone=ZONE

Firewallregeln löschen

Löschen Sie beide Firewallregeln:

gcloud compute firewall-rules delete fw-allow-health-check-and-proxy
gcloud compute firewall-rules delete fw-allow-ssh

VPC-Netzwerk löschen

  1. Löschen Sie das us-subnet:

    gcloud compute networks subnets delete us-subnet \
    --region=us-central1
    
  2. Löschen Sie das eu-subnet:

    gcloud compute networks subnets delete eu-subnet \
    --region=europe-west1
    
  3. Löschen Sie das VPC-Netzwerk:

    gcloud compute networks delete lb-network
    

Sie haben alle Ressourcen gelöscht, die Sie in diesem Projekt eingerichtet haben.

Nächste Schritte