In diesem Leitfaden werden anhand eines Beispiels die Grundlagen der Verwendung einer externen Back-End (manchmal auch als benutzerdefinierter Ursprung bezeichnet) in einem externen Application Load Balancer. Ein externes Back-End ist ein Endpunkt, der sich außerhalb von Google Cloud befindet. Wenn Sie ein externes Backend mit einen externen Application Load Balancer erstellt haben, können Sie die Leistung verbessern, indem Sie Cloud CDN-Caching
In dieser Anleitung wird beschrieben, wie Sie einen globalen externen Application Load Balancer mit einem
Cloud CDN-fähiger Back-End-Dienst, der über einen Proxy an einen
externen Backend-Server unter backend.example.com
.
In diesem Beispiel akzeptiert der Load-Balancer HTTPS-Anfragen von Clients und Diese Anfragen werden als HTTPS an das externe Back-End weitergeleitet. In diesem Beispiel wird vorausgesetzt, dass das externe Back-End HTTPS unterstützt.
Eine andere Möglichkeit wäre, einen Load-Balancer so zu konfigurieren, dass er HTTP oder HTTPS akzeptiert und HTTPS beim Weiterleiten von Anfragen an das externe Back-End verwenden.
In dieser Anleitung wird davon ausgegangen, dass Sie bereits einen Load-Balancer eingerichtet haben und ein neues externes Back-End hinzufügen. Weitere Informationen finden Sie unter Klassischen Application Load Balancer mit einer verwalteten Instanzgruppe einrichten Back-End.
Abbildung 1 zeigt eine Beispielarchitektur.
Im Diagramm hat www.example.com
ein Load-Balancer-Frontend mit der IP-Adresse 120.1.1.1
. Bei einem Cache-Fehler fordert der Nutzer
/cart/id/1223515
werden über HTTPS vom externen Back-End abgerufen. Der weitere eingehende Traffic wird anhand der URL-Zuordnung entweder an den Google Cloud-Back-End-Dienst mit Compute Engine-VMs oder an den Back-End-Bucket weitergeleitet.
Hinweis
Bevor Sie diese Anleitung durcharbeiten, sollten Sie sich mit Folgendem vertraut machen:
Übersicht über Internetnetzwerk-Endpunktgruppen, einschließlich der Einschränkungen.
Berechtigungen
Damit Sie dieser Anleitung folgen können, müssen Sie einen Internetnetzwerkendpunkt erstellen Gruppe (NEG) und einen externen Application Load Balancer in einem Projekt erstellen oder ändern. Sie sollten entweder Projektinhaber oder Editor oder Sie sollten beide siehe Compute Engine IAM-Rollen.
Aufgabe | Erforderliche Rolle |
---|---|
Load-Balancer-Komponenten erstellen und ändern | Netzwerkadministrator |
NEGs erstellen und ändern | Compute-Instanzadministrator |
Load-Balancer mit einem externen Back-End konfigurieren
In diesem Abschnitt erfahren Sie, wie Sie eine Internet-NEG konfigurieren und testen.
Einrichtung: Übersicht
Das Einrichten einer Internet-NEG umfasst Folgendes:
- Internet-Endpunkt in einer Internet-NEG definieren
- Internet-NEG als Back-End zu einem Back-End-Dienst hinzufügen
- Definieren, welcher Nutzertraffic diesem Back-End-Dienst durch Konfiguration von Ihres externen Application Load Balancers.
- Erforderliche IP-Bereiche zulassen
In diesem Beispiel werden die folgenden Ressourcen erstellt:
- Eine Weiterleitungsregel mit der IP-Adresse
120.1.1.1
leitet eingehende Anfragen an einen Zielproxy weiter. - Die
networkTier
der Weiterleitungsregel mussPREMIUM
sein. - Der Ziel-Proxy prüft bei jeder Anfrage, ob diese mit der URL-Zuordnung übereinstimmt, um den passenden Back-End-Dienst für die Anfrage auswählen zu können.
- Für externe Back-Ends muss der Zielproxy
TargetHttpProxy
oderTargetHttpsProxy
lauten. In diesem Beispiel wirdTargetHttpsProxy
verwendet. - Ist Cloud CDN für den Back-End-Dienst aktiviert (optional), können Antworten aus den Cloud CDN-Caches zwischengespeichert und bereitgestellt werden.
- Dieses Beispiel enthält ein
benutzerdefiniert
Header, der erforderlich ist, wenn das externe Back-End ein
bestimmten Wert für den
Host
-Header der HTTP-Anfrage.
Die Einrichtung sieht so aus.
NEG und Internetendpunkt erstellen
Console
- Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.
- Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.
- Geben Sie den Namen der Netzwerk-Endpunktgruppe ein:
example-fqdn-neg
. - Wählen Sie als Typ der Netzwerk-Endpunktgruppe die Option Netzwerk-Endpunktgruppe (Internet) aus.
- Geben Sie als Standardport
443
ein. - Wählen Sie unter Neuer Netzwerkendpunkt die Option Voll qualifizierter Domainname und Port aus.
- Geben Sie für den FQDN
backend.example.com
ein. - Wählen Sie als Porttyp die Option Standard aus und verifizieren Sie, dass die Portnummer
443
ist. - Klicken Sie auf Erstellen.
gcloud
Erstellen Sie eine Internet-NEG und legen Sie für
--network-endpoint-type
den Wertinternet-fqdn-port
fest (der Hostname und der Port, an dem Ihr externes Back-End erreicht werden kann):gcloud compute network-endpoint-groups create example-fqdn-neg \ --network-endpoint-type="internet-fqdn-port" --global
Fügen Sie den Endpunkt zur NEG hinzu. Wenn kein Port angegeben ist, wird abhängig von dem im Back-End-Dienst konfigurierten Protokoll standardmäßig Port
80
(HTTP) oder443
(HTTPS, HTTP/2) ausgewählt. Achten Sie darauf, das Flag--global
anzugeben:gcloud compute network-endpoint-groups update example-fqdn-neg \ --add-endpoint="fqdn=backend.example.com,port=443" \ --global
So listen Sie die erstellte Internet-NEG auf:
gcloud compute network-endpoint-groups list --global
Ausgabe:
NAME LOCATION ENDPOINT_TYPE SIZE example-fqdn-neg global INTERNET_FQDN_PORT 1
So listen Sie den Endpunkt innerhalb dieser NEG auf:
gcloud compute network-endpoint-groups list-network-endpoints example-fqdn-neg \ --global
Ausgabe:
INSTANCE IP_ADDRESS PORT FQDN backend.example.com
Einem Load-Balancer ein externes Back-End hinzufügen
Im folgenden Beispiel wird ein vorhandener Load-Balancer aktualisiert.
Im vorhandenen Load-Balancer ist der Standarddienst ein Google Cloud-Dienst. In diesem Beispiel wird die vorhandene URL-Zuordnung geändert. Hierzu wird ein Pfad-Matcher hinzugefügt, der alle Anfragen für cart/id/1223515
an den images
-Back-End-Dienst sendet, der der Internet-NEG zugeordnet ist.
Console
Backend-Dienst erstellen und Internet-NEG hinzufügen
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Wählen Sie Ihren klassischen Application Load Balancer aus, klicken Sie auf das Dreistrich-Menü und dann auf Bearbeiten, um den Back-End-Dienst einem vorhandenen Load Balancer hinzuzufügen.
- Klicken Sie auf Backend-Konfiguration.
- Wählen Sie im Menü Back-End-Dienste und Back-End-Buckets die Option Back-End-Dienst erstellen aus.
- Legen Sie
images
als Name für den Backend-Dienst fest. - Wählen Sie als Back-End-Typ die Option Internetnetzwerk-Endpunktgruppe aus.
- Wählen Sie das Protokoll aus, das im Load-Balancer für die Internet-NEG verwendet werden soll. Wählen Sie für dieses Beispiel HTTPS aus.
- Wählen Sie unter Neues Back-End > Internetnetzwerk-Endpunktgruppe
example-fqdn-neg
aus und klicken Sie dann auf Fertig. - Wählen Sie Cloud CDN aktivieren aus.
- Optional: Ändern Sie die Einstellungen für den Cache-Modus und den TTL-Wert.
- Klicken Sie in Erweiterte Konfigurationen unter Benutzerdefinierte Anfrageheader auf Header hinzufügen.
- Geben Sie als Headername
Host
ein. - Geben Sie als Headerwert
backend.example.com
ein.
- Geben Sie als Headername
- Klicken Sie auf Erstellen.
- Lassen Sie das Fenster geöffnet, um fortzufahren.
Back-End-Dienst an vorhandene URL-Zuordnung anhängen
- Klicken Sie auf Host- und Pfadregeln.
- Die erste Zeile oder die ersten Zeilen enthalten Google Cloud-Dienste in der rechten Spalte. In einer Spalte ist bereits die Standardregel
Any unmatched (default)
für Hosts und Pfade eingetragen. - Prüfen Sie, ob in der rechten Spalte eine Zeile mit
images
ausgewählt ist. Wenn dies nicht der Fall ist, klicken Sie auf Host- und Pfadregel hinzufügen und wählen Sieimages
aus. Füllen Sie die anderen Felder so aus:- Geben Sie im Feld Hosts den Wert
*
ein. - Geben Sie unter Pfade
/cart/id/1223515
ein.
- Geben Sie im Feld Hosts den Wert
Prüfen und abschließen
- Klicken Sie auf Prüfen und abschließen.
- Vergleichen Sie die Einstellungen mit denen, die Sie erstellen wollten.
- Wenn alles in Ordnung ist, klicken Sie auf Aktualisieren.
gcloud
Erstellen Sie einen neuen Backend-Dienst für die NEG:
gcloud compute backend-services create images \ --global \ --enable-cdn \ --cache-mode=CACHE_MODE \ --protocol=HTTP2
Legen Sie den Cache-Modus fest. Ersetzen Sie dazu CACHE_MODE durch einen der folgenden Werte:
CACHE_ALL_STATIC
: speichert automatisch statische InhalteUSE_ORIGIN_HEADERS
(Standard): erfordert, dass der Ursprung gültig Caching-Header, um Inhalte im Cache zu speichernFORCE_CACHE_ALL
: Alle Inhalte werden im Cache gespeichert, wobeiprivate
ignoriert werdenno-store
- oderno-cache
-Anweisungen in derCache-Control
-Antwort Überschriften
Konfigurieren Sie den Backend-Dienst so, dass der Anfrage der benutzerdefinierte Anfrageheader
Host: backend.example.com
hinzugefügt wird:gcloud compute backend-services update images \ --custom-request-header "Host: backend.example.com" --global
Verwenden Sie den Befehl
backend-services add-backend
, um dem Back-End-Dienst die Internet-NEG hinzuzufügen:gcloud compute backend-services add-backend images \ --network-endpoint-group "example-fqdn-neg" \ --global-network-endpoint-group \ --global
Hängen Sie den neuen Back-End-Dienst an die URL-Zuordnung des Load-Balancers an. Erstellen Sie dazu eine neue Abgleichsregel, um Anfragen an dieses Back-End zu leiten:
gcloud compute url-maps add-path-matcher EXAMPLE_URL_MAP \ --default-service=GCP_SERVICE_EXAMPLE \ --path-matcher-name=CUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE \ --backend-service-path-rules=/CART/ID/1223515=IMAGES
Dabei gilt:
EXAMPLE_URL_MAP
: der Name der vorhandenen URL-Zuordnung.GCP_SERVICE_EXAMPLE
: der Name eines vorhandenen Standard-Back-End-Dienstes.CUSTOM_ORIGIN_PATH_MATCHER_EXAMPLE
: der Name dieser neuen Pfadregel./CART/ID/1223515
: der Pfad.IMAGES
: der Name des neuen Back-End-Dienstes mit der angehängten Internet-NEG.
Erforderliche IP-Bereiche auf die Zulassungsliste setzen
Damit ein externer Application Load Balancer Anfragen an Ihre Internet-NEG senden kann, müssen Sie
DNS-TXT-Eintrag _cloud-eoips.googleusercontent.com
mit einem Tool abfragen
wie dig
oder nslookup
.
Führen Sie dazu beispielsweise den folgenden dig
-Befehl aus:
dig TXT _cloud-eoips.googleusercontent.com | grep -Eo 'ip4:[^ ]+' | cut -d':' -f2
Die Ausgabe enthält die beiden folgenden IP-Adressbereiche:
34.96.0.0/20
34.127.192.0/18
Notieren Sie sich die IP-Bereiche und sorgen Sie dafür, dass diese Bereiche von Ihrer Firewall oder über die Cloud-Zugriffssteuerungsliste (ACL) zugelassen werden.
Weitere Informationen finden Sie unter Anfragen authentifizieren.
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.
Externen Application Load Balancer testen
Nachdem Sie den Load-Balancer konfiguriert haben, können Sie Traffic an die IP-Adresse des Load-Balancers senden. Wenn Sie eine Domain konfiguriert haben, können Sie auch Traffic an den Domainnamen senden. Die DNS-Weitergabe kann jedoch einige Zeit in Anspruch nehmen. Sie sollten daher zuerst die IP-Adresse zu Testzwecken verwenden.
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf den Load-Balancer, den Sie gerade erstellt haben.
Rufen Sie die IP-Adresse des Load-Balancers ab:
Wenn Sie einen HTTP-Load-Balancer erstellt haben, können Sie ihn testen. über einen Webbrowser unter
http://IP_ADDRESS
. Ersetzen SieIP_ADDRESS
durch die IP-Adresse des Load-Balancers. Sie sollten zur Startseite deshelloworld
-Dienstes geleitet werden.Wenn Sie einen HTTPS-Load-Balancer erstellt haben, können Sie ihn mit einem Webbrowser unter
https://IP_ADDRESS
testen. Ersetzen SieIP_ADDRESS
durch die IP-Adresse des Load-Balancers. Sie sollten zur Startseite deshelloworld
-Dienstes geleitet werden.Sollte das nicht funktionieren und Sie verwenden ein von Google verwaltetes Zertifikat, prüfen Sie, ob der Status der Zertifikatsressource AKTIV ist. Weitere Informationen finden Sie unter Status der von Google verwalteten SSL-Zertifikatressourcen.
Alternativ können Sie
curl
über die Befehlszeile Ihres lokalen Computers verwenden. Ersetzen SieIP_ADDRESS
durch die IPv4-Adresse des Load-Balancers:Wenn Sie ein von Google verwaltetes Zertifikat verwenden, testen Sie die Domain, die auf die IP-Adresse des Load-Balancers verweist. Beispiel:
curl -s 'https://www.example.com:443' --resolve www.example.com:443:IP_ADDRESS
Optional: Wenn Sie eine benutzerdefinierte Domain verwenden, müssen Sie möglicherweise warten, bis die aktualisierten DNS-Einstellungen wirksam werden. Testen Sie dann Ihre Domain (z. B.
backend.example.com
) im Webbrowser.Hilfe zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Problemen mit dem externen Backend und der Internet-NEG.
Cloud CDN deaktivieren
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf den Namen des Load-Balancers, den Sie ändern möchten.
Klicken Sie auf
Bearbeiten.Klicken Sie auf Backend-Konfiguration.
Klicken Sie für den Backend-Dienst mit dem Internet-NEG-Backend auf
Bearbeiten.Entfernen Sie das Häkchen aus dem Kästchen Cloud CDN aktivieren.
Klicken Sie zum Prüfen Ihrer Änderungen auf Prüfen und abschließen und dann auf Aktualisieren.
gcloud
gcloud compute backend-services update BACKEND_SERVICE_NAME \ --no-enable-cdn
Die Aktivierung von Cloud CDN führt zu keiner Entwertung oder Löschung von Caches. Wenn Sie Cloud CDN deaktivieren und wieder aktivieren, bleiben die meisten oder alle im Cache gespeicherten Inhalte im Cache gespeichert. Um zu verhindern, dass Inhalte von Caches verwendet werden, müssen Sie diese Inhalte entwerten.
Nächste Schritte
- Informationen zum Prüfen, ob Cloud CDN Antworten aus dem Cache bereitstellt, finden Sie unter Logs und Messwerte für das Caching
- Mehr darüber, welche Inhalte im Cache gespeichert werden können und welche nicht, erfahren Sie unter Caching-Details.
- Informationen zu GFE-Points-of-Presence finden Sie unter Cache-Speicherorte.