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:
Die Ereignisabfolge in der Grafik ist:
- 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. - Eine Weiterleitungsregel leitet die Anfrage an den Ziel-HTTPS-Proxy weiter.
- 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
wiehttps://www.example.com/video/concert
enthält, wird anvideo-backend-service
gesendet. Jeder andere URL-Pfad wird an den Standarddienstweb-backend-service
geleitet. - 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.
- Die Instanz stellt den von jedem Nutzer angeforderten Inhalt bereit. Die
video
-Instanzen stellen Videoinhalte bereit, während diewww
-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
verwendet10.1.10.0/24
für seinen primären IP-Bereich und befindet sich in der Regionus-central1
eu-subnet
verwendet10.1.11.0/24
für seinen primären IP-Bereich und befindet sich in der Regioneurope-west1
So erstellen Sie das Beispielnetzwerk und das Subnetz:
Console
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie als Namen
lb-network
ein.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.
- Name:
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.
- Name:
- Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie das benutzerdefinierte VPC-Netzwerk:
gcloud compute networks create lb-network --subnet-mode=custom
Erstellen Sie
us-subnet
:gcloud compute networks subnets create us-subnet \ --network=lb-network \ --range=10.1.10.0/24 \ --region=us-central1
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-Tagallow-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
und35.191.0.0/16
) zulässt. In diesem Beispiel wird das Ziel-Tagallow-health-check
verwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden soll.
Console
Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.
Klicken Sie auf Firewallregel erstellen, um die erste Firewallregel zu erstellen:
- Geben Sie als Namen
fw-allow-ssh
ein. - Wählen Sie unter Netzwerk die Option
lb-network
aus. - Wählen Sie unter Ziele Angegebene Ziel-Tags aus.
- Tragen Sie im Feld Ziel-Tags
allow-ssh
ein. - Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
- Legen Sie für Quell-IPv4-Bereiche den Wert
0.0.0.0/0
fest. - Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
- Klicken Sie das Kästchen TCP an und geben Sie
22
als Portnummer ein. - Klicken Sie auf Erstellen.
- Geben Sie als Namen
Klicken Sie auf Firewallregel erstellen, um die zweite Firewallregel zu erstellen:
- Geben Sie als Namen
fw-allow-health-check-and-proxy
ein. - Wählen Sie unter Netzwerk die Option
lb-network
aus. - Wählen Sie unter Ziele Angegebene Ziel-Tags aus.
- Tragen Sie im Feld Ziel-Tags
allow-health-check
ein. - Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
- Legen Sie unter Quell-IPv4-Bereiche die Werte
130.211.0.0/22
und35.191.0.0/16
fest. - Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
- Klicken Sie das Kästchen TCP an und geben Sie
80,443
als Portnummer ein. - Klicken Sie auf Erstellen.
- Geben Sie als Namen
gcloud
Erstellen Sie die Firewallregel
fw-allow-ssh
, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tagallow-ssh
zu ermöglichen. Wenn Siesource-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
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-Port80
und443
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
Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.
- Klicken Sie auf Instanzvorlage erstellen.
- Geben Sie für Name
video-us-template
ein. - 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
. - Klicken Sie auf Erweiterte Optionen.
- Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie für Netzwerk-Tags
allow-health-check
undallow-ssh
ein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk:
lb-network
- Subnetz:
us-subnet
- Netzwerk:
- Geben Sie für Netzwerk-Tags
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
Klicken Sie auf Erstellen.
Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie auf Instanzgruppe erstellen.
- Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
- Geben Sie für Name
ig-video-us
ein. - Wählen Sie unter Ort die Option Einzelne Zone aus.
- Wählen Sie unter Region die gewünschte Region aus. In diesem Beispiel wird
us-central1
verwendet. - Wählen Sie als Zone us-central1-b aus.
- Wählen Sie unter Instanzvorlage
video-us-template
aus. - Wählen Sie
Off:do not autoscale
unter Autoscaling-Modus aus. - Geben Sie
2
bei Maximale Anzahl von Instanzen ein. - Klicken Sie auf Erstellen.
gcloud
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'
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
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie auf den Namen Ihrer Instanzgruppe, z. B.
ig-video-us
, und auf Gruppe bearbeiten.Klicken Sie auf Portnamenzuordnung festlegen.
Klicken Sie auf Zeile hinzufügen.
Geben Sie als Portname
http
ein. Geben Sie als Portnummer80
ein.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
Rufen Sie in der Google Cloud Console die Seite Externe IP-Adressen auf.
Klicken Sie auf Statische Adresse reservieren, um eine IPv4-Adresse zu reservieren.
Weisen Sie als Name
lb-ipv4-1
zu.Legen Sie für die Netzwerkstufe Premium fest.
Setzen Sie die IP-Version auf IPv4.
Legen Sie für Typ Global fest.
Klicken Sie auf Reservieren.
Klicken Sie noch einmal auf Statische Adresse reservieren, um eine IPv6-Adresse zu reservieren.
Weisen Sie als Name
lb-ipv6-1
zu.Setzen Sie die Netzwerkstufe auf Premium.
Setzen Sie die IP-Version auf IPv6.
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.
Klicken Sie auf Reservieren.
gcloud
Reservieren Sie eine IPv4-Adresse:
gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --network-tier=PREMIUM \ --global
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
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
- Wählen Sie unter Globale oder Einzelregion-Bereitstellung die Option Am besten für globale Arbeitslasten aus und klicken Sie auf Weiter.
- Wählen Sie unter Generation des Load Balancers die Option Klassischer Application Load Balancer aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
- Geben Sie
web-map
als Name für den Load-Balancer ein. - 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.
- Klicken Sie auf Backend-Konfiguration.
- 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.
- Legen Sie als Name für den Back-End-Dienst
web-backend-service
fest. - Prüfen Sie, ob der Back-End-Typ auf Instanzgruppe festgelegt ist.
- Wählen Sie im Drop-down-Menü Protokoll die Option HTTP aus.
- Geben Sie im Feld Benannter Port
http
ein. - Legen Sie unter Back-Ends für Instanzgruppe
ig-www-us
fest. - Legen Sie für den Traffic zwischen dem Load-Balancer und den Instanzen für die Portnummern
80
fest. - Übernehmen Sie für die übrigen Felder die Standardwerte.
- Klicken Sie unten im Fenster Neues Back-End auf Fertig.
- Klicken Sie auf Back-End hinzufügen und wiederholen Sie die Schritte. Wählen Sie jedoch die Instanzgruppe
ig-www-eu
aus. - Lassen Sie das Fenster geöffnet, um fortzufahren.
Konfigurieren Sie die Systemdiagnose für die www
-Instanzen.
- Wählen Sie im Fenster Back-End-Konfiguration unter Systemdiagnose die Option Systemdiagnose erstellen oder Weitere Systemdiagnose erstellen aus.
- Legen Sie die folgenden Systemdiagnoseparameter fest, um die HTTP-Systemdiagnose zu erstellen:
- Name auf
http-basic-check-www
- Protokoll auf
HTTP
- Port auf
80
- Name auf
- Klicken Sie auf Speichern und Fortfahren.
- Klicken Sie auf Erstellen.
Backend-Dienst und Systemdiagnose für die video
-Instanzen konfigurieren
- Wiederholen Sie die Schritte oben, aber nennen Sie den zweiten Back-End-Dienst
video-backend-service
und weisen Sie ihm die Instanzgruppenig-video-us
undig-video-eu
zu. - 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.
- Klicken Sie in der linken Spalte des Bildschirms auf Host- und Pfadregeln.
- Die erste Zeile enthält
web-backend-service
in der rechten Spalte und ist bereits mit der StandardregelAny unmatched (default)
für Hosts und Pfade befüllt. - 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 Spaltevideo-backend-service
aus. Tragen Sie das Folgende in den anderen Spalten ein:- Legen Sie für Hosts
*
fest. - Im Feld Pfade:
- Geben Sie
/video
ein und drücken Sie die Tabulatortaste. - Geben Sie
/video/*
ein und drücken Sie die Tabulatortaste.
- Geben Sie
- Legen Sie für Hosts
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.
- Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Frontend-Konfiguration.
- Geben Sie im Feld Name
https-content-rule
ein. - Wählen Sie im Feld Protokoll die Option
HTTPS
aus. - Lassen Sie das Fenster geöffnet, um fortzufahren.
IPv4-Weiterleitungsregel konfigurieren
- Legen Sie als IP-Version
IPv4
fest. - Wählen Sie unter IP-Adresse die zuvor erstellte IP-Adresse
lb-ipv4-1
aus. - Achten Sie darauf, dass der Port auf
443
festgelegt ist, um HTTPS-Traffic zuzulassen. - Klicken Sie auf die Drop-down-Liste Zertifikat.
- 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.
- Wählen Sie andernfalls Neues Zertifikat erstellen aus.
- Geben Sie
www-ssl-cert
als Name ein. - 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.
- Wenn Sie Zertifikat hochladen ausgewählt haben, führen Sie diese Schritte aus:
- 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.
- 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.
- 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.
- Klicken Sie auf Erstellen.
- Im Feld Zertifikat für öffentlichen Schlüssel haben Sie folgende Optionen:
- Wenn Sie Von Google verwaltetes Zertifikat erstellen ausgewählt haben, geben Sie eine Domain ein.
- So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
- Klicken Sie auf Zertifikat hinzufügen.
- Wählen Sie in der Liste Zertifikate ein Zertifikat aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der obigen Anleitung.
- 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 OptionNONE
. - Aktiviert: Ermöglicht dem Load-Balancer, QUIC mit Clients auszuhandeln.
- Deaktiviert: Verhindert, dass der Load-Balancer QUIC mit Clients aushandelt.
- 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
- Klicken Sie auf Fertig.
- Lassen Sie das Fenster geöffnet, um fortzufahren.
IPv6-Weiterleitungsregel konfigurieren
- Klicken Sie auf Front-End-IP und Port hinzufügen.
- Geben Sie als Name
https-content-ipv6-rule
ein. - 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 SieHTTP
aus, wenn Sie HTTP als Protokoll zwischen dem Client und dem Load-Balancer verwenden möchten. - Legen Sie
IPv6
als IP-Version fest. - Wählen Sie unter IP die zuvor erstellte IP-Adresse
lb-ipv6-1
aus. - Für den standardmäßigen Port ist
443
erforderlich. - 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.
- Geben Sie
www-ssl-cert
als Name ein. - Laden Sie in den entsprechenden Feldern Ihr Public-Key-Zertifikat (.crt-Datei), Ihre Zertifikatskette (.csr-Datei) und Ihren privaten Schlüssel (.key-Datei) hoch.
- Klicken Sie auf Erstellen.
- Geben Sie
- So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
- Klicken Sie auf Zertifikat hinzufügen.
- Wählen Sie in der Liste Zertifikate ein Zertifikat aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der obigen Anleitung.
- 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 OptionNONE
. - Aktiviert: Ermöglicht dem Load-Balancer, QUIC mit Clients auszuhandeln.
- Deaktiviert: Verhindert, dass der Load-Balancer QUIC mit Clients aushandelt.
- 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
- Klicken Sie auf Fertig.
Prüfen und abschließen
- Klicken Sie im linken Bereich der Seite Globalen externen Application Load Balancer erstellen auf Prüfen und abschließen.
- Vergleichen Sie die Einstellungen mit denen, die Sie erstellen wollten.
- Wenn alles korrekt aussieht, klicken Sie auf Erstellen, um Ihren externen Application Load Balancer zu erstellen.
gcloud
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
Erstellen Sie für alle Inhaltsanbieter einen Back-End-Dienst.
Setzen Sie das Feld
--protocol
aufHTTP
, da wir HTTP nutzen, um zu den Instanzen zu gelangen. Nutzen Sie die Systemdiagnosehttp-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
-
Verwenden Sie für einen globalen externen Application Load Balancer den gcloud CLI-Befehl mit
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 WertUTILIZATION
,max-utilization
auf0.8
undcapacity-scaler
auf1
fest. Legen Sie fürcapacity-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
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.Erstellen Sie eine URL-Zuordnung:
gcloud compute url-maps create web-map \ --default-service web-backend-service
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"
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]
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
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
-
Verwenden Sie für einen globalen externen Application Load Balancer den gcloud CLI-Befehl mit
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
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf
web-map
, um den soeben erstellten Load-Balancer zu maximieren.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.
Notieren Sie die IPv4- und IPv6-Adressen des Load-Balancers:
Rufen Sie in der Google Cloud Console die Seite Externe IP-Adressen auf.
Suchen Sie unter Name die Adressen
lb-ipv4-1
undlb-ipv6-1
und notieren Sie die zugehörigen Werte aus der Spalte Externe Adressen.
Wenn Sie ein von Google verwaltetes Zertifikat verwenden:
Erstellen Sie die folgenden DNS-Einträge:
- Einen CAA-Eintrag. Weitere Informationen finden Sie unter Zertifizierungsstellen angeben, die Ihr von Google verwaltetes Zertifikat signieren dürfen.
- Einen A-Eintrag. Weitere Informationen finden Sie unter DNS-A-Eintrag erstellen, der auf die IP-Adresse des Load-Balancers verweist.
- Einen AAAA-Eintrag. Dieser ähnelt dem A-Eintrag, bezieht sich jedoch auf die IPv6-Adresse Ihres Load-Balancers.
Achten Sie darauf, dass der Status Ihrer Zertifikatsressource aktiv ist. Weitere Informationen finden Sie unter Status der von Google verwalteten SSL-Zertifikatsressourcen.
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
).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
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
Wenn Sie ein von Google verwaltetes Zertifikat verwenden:
Erstellen Sie die folgenden DNS-Einträge:
- Einen CAA-Eintrag. Weitere Informationen finden Sie unter Zertifizierungsstellen angeben, die Ihr von Google verwaltetes Zertifikat signieren dürfen.
- Einen A-Eintrag. Weitere Informationen finden Sie unter DNS-A-Eintrag erstellen, der auf die IP-Adresse des Load-Balancers verweist.
- Einen AAAA-Eintrag. Dieser ähnelt dem A-Eintrag, bezieht sich jedoch auf die IPv6-Adresse Ihres Load-Balancers.
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
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/
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
:
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf Back-Ends.
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.
Klicken Sie auf der Seite Back-End-Dienstdetails auf Erweiterte Konfiguration.
Wählen Sie im Menü unter Sitzungsaffinität die Option Client-IP aus.
Klicken Sie auf Speichern.
So aktivieren Sie die generierte Cookie-Sitzungsaffinität für video-backend-service
:
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf Back-Ends.
Klicken Sie auf video-backend-service, den Namen des Back-End-Dienstes, den Sie für dieses Beispiel erstellt haben, und dann auf Bearbeiten.
Klicken Sie auf der Seite Back-End-Dienstdetails auf Erweiterte Konfiguration.
Wählen Sie im Menü unter Sitzungsaffinität die Option Generiertes Cookie aus.
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
Öffnen Sie in der Google Cloud Console die Seite Projekte.
Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf
Löschen.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
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie das Kästchen neben
web-map
an.Klicken Sie oben auf der Seite auf Löschen.
Klicken Sie die Kästchen neben allen zusätzlichen Ressourcen an, einschließlich Back-End-Diensten, Systemdiagnosen und SSL-Zertifikaten.
Klicken Sie auf Load-Balancer und ausgewählte Ressourcen löschen.
Instanzgruppen löschen
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Klicken Sie das Kästchen oben neben Name an, um alle Instanzgruppen auszuwählen.
Klicken Sie auf
Löschen.Klicken Sie im Bestätigungsfenster auf
Löschen.
Externe IP-Adressen freigeben
Rufen Sie in der Google Cloud Console die Seite Externe IP-Adressen auf.
Klicken Sie das Kästchen neben
lb-ipv4-1
undlb-ipv6-1
an.Klicken Sie auf Statische Adressen freigeben.
Klicken Sie im Bestätigungsfenster auf
Löschen.
Firewallregeln löschen
Rufen Sie in der Google Cloud Console die Seite Firewall auf.
Klicken Sie das Kästchen neben
fw-allow-health-check-and-proxy
undfw-allow-ssh
an.Klicken Sie auf
Löschen.Klicken Sie im Bestätigungsfenster auf
Löschen.
VM-Instanzen löschen
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie das Kästchen oben neben Name an, um alle Instanzen auszuwählen.
Klicken Sie auf
Löschen.Klicken Sie im Bestätigungsfenster auf
Löschen.
VPC-Netzwerk löschen
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf
lb-network
.Klicken Sie auf der Seite VPC-Netzwerkdetails auf VPC-Netzwerk löschen.
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.
Löschen Sie die Weiterleitungsregeln:
gcloud compute forwarding-rules delete https-content-rule \ --global
gcloud compute forwarding-rules delete https-content-ipv6-rule \ --global
Löschen Sie die globalen externen IP-Adressen:
gcloud compute addresses delete lb-ipv4-1 \ --global
gcloud compute addresses delete lb-ipv6-1 \ --global
Löschen Sie den Ziel-Proxy:
gcloud compute target-https-proxies delete https-lb-proxy
Löschen Sie das SSL-Zertifikat:
gcloud compute ssl-certificates delete www-ssl-cert
Löschen Sie die URL-Zuordnung:
gcloud compute url-maps delete web-map
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
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
Löschen Sie das
us-subnet
:gcloud compute networks subnets delete us-subnet \ --region=us-central1
Löschen Sie das
eu-subnet
:gcloud compute networks subnets delete eu-subnet \ --region=europe-west1
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
- Logging und Monitoring verwenden
- Fehlerbehebung beim Load-Balancing
- Informationen zum Aktivieren von IAP finden Sie unter IAP auf dem externen Application Load Balancer aktivieren.