Internet-NEGs einrichten

Diese Anleitung vermittelt anhand eines Beispiels die Grundlagen für die Verwendung eines benutzerdefinierten Ursprungs in einer Internetnetzwerk-Endpunktgruppe (NEG). Ein benutzerdefinierter Ursprung ist ein Internetendpunkt, der außerhalb von Google Cloud liegt. Sie können eine Internet-NEG als Back-End für einen externen HTTP(S)-Load-Balancer verwenden und die Leistung mithilfe von Cloud CDN-Caching verbessern.

In dieser Anleitung wird gezeigt, wie Sie einen globalen externen HTTP(S)-Load-Balancer mit einem Cloud CDN-fähigen Back-End-Dienst konfigurieren, der an einen benutzerdefinierten Ursprungsserver unter backend.example.com weitergeleitet wird.

In diesem Beispiel akzeptiert der Load-Balancer HTTPS-Anfragen von Clients und leitet diese Anfragen mit HTTP/2 an den benutzerdefinierten Ursprung weiter. Dabei wird davon ausgegangen, dass der Ursprung HTTP/2 unterstützt.

Alternativ können Sie einen Load-Balancer zum Akzeptieren von HTTP- oder HTTP/2-Anfragen und für die Verwendung von HTTPS beim Weiterleiten von Anfragen an den benutzerdefinierten Ursprung konfigurieren.

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 der URL-Zuordnung Ihres externen HTTP(S)-Load-Balancers zugeordnet werden soll

Hinweis

Bevor Sie diese Anleitung durcharbeiten, sollten Sie sich mit Folgendem vertraut machen:

Optional: gcloud installieren

Wenn Sie lieber mit der Befehlszeile arbeiten möchten, installieren Sie das gcloud-Befehlszeilentool. Konzept- und Installationsinformationen zum Tool finden Sie in der Übersicht über das gcloud-Befehlszeilentool.

Wenn Sie das gcloud-Befehlszeilentool bisher noch nicht verwendet haben, führen Sie zuerst gcloud init aus, um Ihr gcloud-Verzeichnis zu initialisieren.

Optional: Neues Projekt erstellen

Diese Anleitung erfordert ein Projekt. Erstellen Sie ein neues Projekt, wenn Sie noch keines haben.

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

Berechtigungen

Für diese Anleitung müssen Sie eine Internet-NEG erstellen sowie einen externen HTTP(S)-Load-Balancer in einem Projekt anlegen oder ändern. Sie sollten entweder Inhaber oder Bearbeiter des Projekts sein oder die beiden folgenden IAM-Rollen in Compute Engine haben:

Aufgabe Erforderliche Rolle
Load-Balancer-Komponenten erstellen und ändern Netzwerkadministrator
NEGs erstellen und ändern Compute-Instanzadministrator

Load-Balancer mit benutzerdefiniertem Ursprung konfigurieren

In dieser Anleitung erfahren Sie, wie Sie eine Internet-NEG konfigurieren und testen.

Einrichtung: Übersicht

Die Schritte in diesem Abschnitt zeigen, wie Sie folgende Elemente konfigurieren:

  • Internet-NEG erstellen und einen Netzwerkendpunkt anhängen, der Ihren INTERNET_IP_PORT- oder INTERNET_FQDN_PORT-Endpunkt definiert
  • Diese NEG dem Back-End-Dienst des externen HTTP(S)-Load-Balancers zuordnen
  • Weiterleitungsregel für diesen externen HTTP(S)-Load-Balancer hinzufügen

Eine Beispielarchitektur sieht so aus:

Typischer Anwendungsfall für benutzerdefinierte Ursprünge
Typischer Anwendungsfall für benutzerdefinierte Ursprünge

Im Diagramm hat www.example.com ein Load-Balancer-Front-End mit der IP-Adresse 120.1.1.1. Bei einem Cache-Fehler werden Nutzeranfragen für /cart/id/1223515 vom benutzerdefinierten Ursprung über HTTP/2 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.

Erstellen Sie zum Einrichten dieses Beispiels die folgenden Ressourcen:

  • Eine Weiterleitungsregel mit der IP-Adresse 120.1.1.1 leitet eingehende Anfragen an einen Zielproxy weiter.
    • Die networkTier der Weiterleitungsregel muss PREMIUM 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 benutzerdefinierte Ursprünge muss der Zielproxy TargetHttpProxy oder TargetHttpsProxy lauten. In diesem Beispiel wird TargetHttpsProxy verwendet.
  • Ist Cloud CDN für den Back-End-Dienst aktiviert (optional), können Antworten aus den Cloud CDN-Caches zwischengespeichert und bereitgestellt werden.
  • Die Back-End-Dienstkonfiguration leitet Traffic an eine Internet-NEG weiter.
  • Dieses Beispiel enthält den benutzerdefinierten Anfrageheader, der erforderlich ist, wenn der benutzerdefinierte Ursprung einen bestimmten Wert für den Host-Header der HTTP-Anfrage erwartet.

NEG und Internetendpunkt erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppen auf.

    Zur Seite "Netzwerk-Endpunktgruppen"

  2. Klicken Sie auf Netzwerk-Endpunktgruppe erstellen.
  3. Geben Sie den Namen der Netzwerk-Endpunktgruppe ein: example-fqdn-neg.
  4. Wählen Sie als Typ der Netzwerk-Endpunktgruppe die Option Netzwerk-Endpunktgruppe (Internet) aus.
  5. Geben Sie als Standardport 443 ein.
  6. Wählen Sie unter Neuer Netzwerkendpunkt die Option Voll qualifizierter Domainname und Port aus.
  7. Geben Sie für den FQDN backend.example.com ein.
  8. Wählen Sie als Porttyp Standard aus und verifizieren Sie, dass die Portnummer 443 ist.
  9. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie eine Internet-NEG und legen Sie für --network-endpoint-type den Wert internet-fqdn-port fest (der Hostname und der Port, an dem Ihr Ursprung erreicht werden kann):

    gcloud compute network-endpoint-groups create example-fqdn-neg \
        --network-endpoint-type="internet-fqdn-port" --global
    
  2. Fügen Sie den Endpunkt zur NEG hinzu. Wenn kein Port festgelegt ist, wird abhängig von dem im Back-End-Dienst konfigurierten Protokoll standardmäßig Port 80 (HTTP) oder 443 (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
    
  3. 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
    

  4. 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
    

Vorhandenen Load-Balancer verwenden

Im folgenden Beispiel wird ein vorhandener Load-Balancer aktualisiert.

Wenn Sie noch keinen externen HTTP(S)-Load-Balancer haben, überspringen Sie diesen Abschnitt und fahren Sie mit Neuen Load-Balancer verwenden fort.

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

Back-End-Dienst erstellen und Internet-NEG hinzufügen

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

    Zur Seite "Load-Balancing"

  2. Wählen Sie Ihren externen HTTP(S)-Load-Balancer aus, klicken Sie auf Menü und wählen Sie dann Bearbeiten aus, um den Back-End-Dienst einem vorhandenen Load-Balancer hinzuzufügen.
  3. Klicken Sie auf Back-End-Konfiguration.
  4. Wählen Sie im Drop-down-Menü Back-End-Dienste und Back-End-Buckets erstellen oder auswählen die Option Back-End-Dienste > Back-End-Dienst erstellen aus.
  5. Legen Sie als Name für den Back-End-Dienst images fest.
  6. Wählen Sie als Back-End-Typ die Option Internetnetzwerk-Endpunktgruppe aus.
  7. 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 HTTP/2 aus.
  8. Wählen Sie unter Neues Back-End > Internetnetzwerk-Endpunktgruppe example-fqdn-neg aus und klicken Sie dann auf Fertig.
  9. Wählen Sie Cloud CDN aktivieren aus.
  10. Klicken Sie in Erweiterte Konfigurationen unter Benutzerdefinierte Anfrage-Header auf Header hinzufügen.
    1. Geben Sie als Header-Name Host ein.
    2. Geben Sie als Header-Wert backend.example.com ein.
  11. Klicken Sie auf Erstellen.
  12. Lassen Sie das Fenster geöffnet, um fortzufahren.

Back-End-Dienst an vorhandene URL-Zuordnung anhängen

  1. Klicken Sie auf Host- und Pfadregeln.
  2. Die erste Zeile bzw. 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.
  3. 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 Sie images aus. Füllen Sie die anderen Felder folgendermaßen aus:
    1. Geben Sie im Feld Hosts * ein.
    2. Geben Sie unter Pfade /cart/id/1223515 ein.

Prüfen und abschließen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Vergleichen Sie die Einstellungen mit denen, die Sie erstellen wollten.
  3. Wenn alles korrekt ist, klicken Sie auf Erstellen, um Ihren externen HTTP(S)-Load-Balancer anzulegen.

gcloud

  1. Erstellen Sie einen neuen Back-End-Dienst für die NEG.

    gcloud compute backend-services create images \
       --global \
       --enable-cdn \
       --protocol=HTTP2
    
  2. Konfigurieren Sie den Back-End-Dienst so, dass der Anfrage der benutzerdefinierte Anfrage-Header Host: backend.example.com hinzugefügt wird.

    gcloud compute backend-services update images \
       --custom-request-header "Host: backend.example.com" --global
    
  3. 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
    
  4. 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
    

    Ersetzen Sie Folgendes:

    • 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.

Neuen Load-Balancer verwenden

Im folgenden Beispiel wird ein externer HTTP(S)-Load-Balancer erstellt, der Ihre Internet-NEG als Standarddienst (beliebiger Host, beliebiger Pfad) verwendet.

Wenn Sie bereits einen externen HTTP(S)-Load-Balancer haben, den Sie ändern möchten, überspringen Sie diesen Abschnitt und fahren Sie mit Vorhandenen Load-Balancer verwenden fort.

Console

Back-End-Dienst erstellen und Internet-NEG hinzufügen

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

    Zur Seite "Load-Balancing"

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Klicken Sie unter HTTP(S)-Load-Balancing auf Konfiguration starten.
  4. Wählen Sie Vom Internet zu meinen VMs aus.
  5. Geben Sie einen Namen für den neuen Load-Balancer ein. Dies ist der Name für die neue URL-Zuordnung. Verwenden Sie für dieses Beispiel den Namen example-url-map.
  6. Klicken Sie auf Back-End-Konfiguration.
  7. Wählen Sie im Drop-down-Menü Back-End-Dienste und Back-End-Buckets erstellen oder auswählen die Option Back-End-Dienste > Back-End-Dienst erstellen aus.
  8. Legen Sie als Name für den Back-End-Dienst images fest.
  9. Wählen Sie als Back-End-Typ die Option Internetnetzwerk-Endpunktgruppe aus.
  10. 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 HTTP/2 aus.
  11. Wählen Sie unter Neues Back-End > Internetnetzwerk-Endpunktgruppe example-fqdn-neg aus und klicken Sie dann auf Fertig.
  12. Wählen Sie Cloud CDN aktivieren aus.
  13. Klicken Sie in Erweiterte Konfigurationen unter Benutzerdefinierte Anfrage-Header auf Header hinzufügen.
    1. Geben Sie als Header-Name Host ein.
    2. Geben Sie als Header-Wert backend.example.com ein.
  14. Klicken Sie auf Erstellen.
  15. Lassen Sie das Fenster geöffnet, um fortzufahren.

Back-End-Dienst an neue URL-Zuordnung anhängen

  1. Klicken Sie auf Host- und Pfadregeln.
  2. Prüfen Sie, ob in der rechten Spalte eine Zeile mit images ausgewählt ist. Die ersten beiden Spalten enthalten bereits die Standardregel Any unmatched (default).
  3. Lassen Sie das Fenster geöffnet, um fortzufahren.

Front-End hinzufügen

  1. Klicken Sie auf Front-End-Konfiguration.
  2. Geben Sie für Name example-forwarding-rule ein.
  3. Wählen Sie für Protokoll die Option HTTPS aus.
  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 diese aus dem Drop-down-Menü aus.
    2. Wählen Sie andernfalls Neues Zertifikat erstellen aus.
    3. Wählen Sie Zertifikat hochladen oder Von Google verwaltetes Zertifikat erstellen aus.
    4. Wenn Sie Zertifikat hochladen ausgewählt haben, führen Sie diese Schritte aus:
      1. Geben Sie example-ssl 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.
    5. Wenn Sie Von Google verwaltetes Zertifikat erstellen auswählen, geben Sie unter Domains eine Domain ein und klicken Sie dann auf Erstellen.
  5. So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
    1. Klicken Sie auf Zusätzliche Zertifikate > Zertifikat hinzufügen.
    2. Wählen Sie ein Zertifikat aus der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen und folgen Sie der vorherigen Anleitung.
  6. Klicken Sie auf Fertig.
  7. Lassen Sie das Fenster geöffnet, um fortzufahren.

Prüfen und abschließen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Vergleichen Sie die Einstellungen mit denen, die Sie erstellen wollten.
  3. Wenn alles korrekt ist, klicken Sie auf Erstellen, um Ihren externen HTTP(S)-Load-Balancer anzulegen.

gcloud

  1. Erstellen Sie einen neuen Back-End-Dienst für die NEG.

    gcloud compute backend-services create images \
       --global \
       --enable-cdn \
       --protocol=HTTP2
    
  2. Konfigurieren Sie den Back-End-Dienst so, dass der Anfrage der benutzerdefinierte Anfrage-Header Host: backend.example.com hinzugefügt wird.

    gcloud compute backend-services update images \
       --custom-request-header "Host: backend.example.com" --global
    
  3. 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
    
  4. Erstellen Sie eine URL-Zuordnung, die den Back-End-Dienst als Wert von --default-service angibt.

    gcloud compute url-maps create example-url-map \
       --default-service images \
       --global
    
  5. Erstellen Sie eine Zertifikatsressource.

    1. Erstellen Sie eine selbstverwaltete SSL-Zertifikatsressource:

      gcloud compute ssl-certificates create example-ssl \
        --certificate CRT_FILE_PATH \
        --private-key KEY_FILE_PATH
      
    2. Erstellen Sie eine von Google verwaltete SSL-Zertifikatsressource:

      gcloud beta compute ssl-certificates create example-ssl \
      --domains DOMAIN
      
  6. Erstellen Sie einen neuen Ziel-HTTPS-Proxy und hängen Sie die URL-Zuordnung und das SSL-Zertifikat an.

    gcloud compute target-https-proxies create example-target-https-proxy \
      --url-map=example-url-map \
      --ssl-certificates=example-ssl \
      --global
    
  7. Erstellen Sie eine globale Weiterleitungsregel, die eine globale Anycast-IP-Adresse konfiguriert. Der Load-Balancer überwacht die Anycast-IP-Adresse an den konfigurierten Ports. Clients können über das Google Cloud-Netzwerk eine Verbindung zum Back-End herstellen.

    gcloud compute forwarding-rules create example-forwarding-rule \
       --ip-protocol=TCP \
       --ports=443 \
       --global \
       --target-https-proxy=example-target-https-proxy
    

Test

Rufen Sie die IP-Adresse der Weiterleitungsregel ab und stellen Sie über Ihren Browser oder ein Befehlszeilentool (z. B. curl) eine Verbindung her.

gcloud compute forwarding-rules list

Hilfe zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Problemen mit der benutzerdefinierten Quellen- und Internet-NEG.

Nächste Schritte

  • Informationen zum Prüfen, ob Cloud CDN Antworten aus dem Cache bereitstellt, finden Sie unter Logs ansehen.
  • 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.