Cloud Storage-Buckets zu Load-Balancern hinzufügen

Cloud Storage-Buckets als Back-Ends des Load-Balancers verwenden

In diesem Dokument wird beschrieben, wie Sie die Konfiguration des HTTP(S)-Load-Balancers im Beispiel so ändern, dass die Anfragen für statische Inhalte an Cloud Storage-Buckets weitergeleitet werden. Nachdem Sie einen Load-Balancer mit Cloud Storage-Buckets konfiguriert haben, werden Anfragen an URL-Pfade, die mit /static beginnen, an die Storage-Buckets gesendet und alle anderen Anfragen an VM-Instanzen. Darüber hinaus wird in diesem Dokument eine Konfiguration erstellt, die Traffic zwischen zwei Back-End-Buckets steuert. Unterstützt werden dabei die Regionen US und EU.

Vorbereitung

  1. Installieren Sie bei Bedarf das gcloud- oder gsutil-Dienstprogramm. Halten Sie sich dabei an die Anleitung im Dokument Schnellstart: gsutil-Tool verwenden.
  2. Legen Sie ein Standardprojekt fest.

    Console


    a. Öffnen Sie die Startseite der Google Cloud Platform Console.
    Zur Startseite der Google Cloud Platform Console

    b. Wählen Sie rechts neben dem Titel "Google Cloud Platform" ein Projekt aus dem Drop-down-Menü aus.

    gcloud oder gsutil


     gcloud config set project [PROJECT_ID]
    

    oder

     gsutil config set project [PROJECT_ID]
    
    • [PROJECT_ID] – das für diese Anleitung verwendete Projekt
  1. Gehen Sie die Anleitung für inhaltsbasiertes und regionenübergreifendes Load-Balancing durch. Darin wird die Erstellung von Ressourcen erläutert, die Sie für die Themen in diesem Dokument benötigen.

Cloud Storage-Buckets und Load-Balancing-Dienst konfigurieren

In der folgenden Anleitung wird davon ausgegangen, dass Sie genau ein Objekt in jeden Cloud Storage-Bucket hochladen und anschließend Berechtigungen für das Objekt festlegen.

Um alle Objekte in den Cloud Storage-Buckets öffentlich zu machen, befolgen Sie die Anleitung unter Objektgruppen öffentlich lesbar machen.

Informationen zum Hochladen und Festlegen von Berechtigungen für mehrere Objekte mit Platzhaltern (globs) finden Sie unter Platzhalternamen. Weitere Informationen zum Hochladen von Objekten finden Sie unter Objekte hochladen.

Cloud Storage-Buckets konfigurieren

Erstellen Sie zwei Cloud Storage-Buckets und laden Sie in jeden Bucket ein Objekt hoch. Bucket-Namen müssen global eindeutig sein. In diesem Beispiel werden zwei multiregionale Buckets erstellt, die sich in denselben Regionen befinden wie die Instanzen im Beispiel zu HTTP(S)-Load-Balancing.

Console


Erstellen Sie einen Cloud Storage-Bucket in den USA.

  • Öffnen Sie in der Google Cloud Platform Console den Cloud Storage-Browser.
    Zum Cloud Storage-Browser
  • Klicken Sie auf Create a bucket (Bucket erstellen).
  • Geben Sie einen eindeutigen Namen für den Bucket ein.
    • Der Bucket-Name darf keine vertraulichen Informationen enthalten, da der Bucket-Namespace global und öffentlich sichtbar ist.
  • Wählen Sie Standard als Speicherklasse aus.
  • Wählen Sie USA als Speicherort.
  • Klicken Sie auf Erstellen.
  • Wiederholen Sie die Schritte, um einen zweiten Bucket zu erstellen. Wählen Sie diesmal unter Standort die Option Europäische Union aus.

    Öffnen Sie den us-Bucket.

    Erstellen Sie den Ordner static:

    1. Klicken Sie im Bucket auf Ordner erstellen.
    2. Geben Sie den Ordnernamen static ein.
    3. Klicken Sie auf Erstellen.

    Laden Sie ein Objekt aus Ihrem lokalen Verzeichnis hoch:

    1. Klicken Sie im Ordner auf Dateien hochladen.
    2. Gehen Sie in Ihrem Dateisystem zum Objekt und wählen Sie es aus.
    3. Klicken Sie auf Öffnen.

    Machen Sie das Objekt öffentlich lesbar, damit es per Load-Balancing bereitgestellt werden kann.

    1. Klicken Sie neben dem Objekt, das Sie öffentlich lesbar machen möchten, auf das Dreipunkt-Menü.

      Das Dreipunkt-Menü befindet sich auf der rechten Seite in der Zeile des Objekts.

    2. Wählen Sie in diesem Menü Berechtigungen bearbeiten aus.

    3. Klicken Sie auf Zeile hinzufügen.

    4. Fügen Sie eine Berechtigung für allUsers (alle Nutzer) hinzu.

      • Wählen Sie als Entität die Option Nutzer aus.
      • Geben Sie bei Name allUsers ein.
      • Wählen Sie bei Zugriff die Option Reader aus.
    5. Klicken Sie auf Speichern.

    Nachdem das Objekt öffentlich freigegeben wurde, wird in der Spalte Öffentlicher Zugriff ein Linksymbol angezeigt. Wenn Sie auf dieses Symbol klicken, erhalten Sie die URL für das Objekt.

    Wiederholen Sie die Schritte, diesmal im eu-Bucket.

    gsutil


    1. Erstellen Sie einen Cloud Storage-Bucket.

    2. Öffnen Sie ein Terminalfenster.
    3. Verwenden Sie den Befehl gsutil mb und einen einmaligen Namen, um einen Bucket zu erstellen:
      gsutil mb gs://my-awesome-bucket/
      

      Dadurch wird ein Bucket mit dem Namen "my-awesome-bucket" erstellt. Wählen Sie Ihren eigenen, global eindeutigen Bucket-Namen aus.

      Wenn der Vorgang erfolgreich ist, gibt der Befehl Folgendes zurück:

      Creating gs://my-awesome-bucket/...
      
    4. Damit haben Sie einen Bucket erstellt, in dem Sie Ihre Inhalte speichern können.

    Wiederholen Sie die Schritte und führen Sie diesmal gsutil mb -l eu gs://my-awesome-bucket/ aus, um den Standort eu anzugeben.

    Öffnen Sie den us-Bucket.

    1. Laden Sie ein Objekt aus Ihrem lokalen Verzeichnis hoch. Wenn die Datei in einem anderen Verzeichnis gespeichert ist, geben Sie den vollständigen Pfad an.

      gsutil cp [OBJECT_NAME] gs://[EXAMPLE_BUCKET]/static/[OBJECT_NAME]
      
      • [EXAMPLE_BUCKET] – der bereits erstellte Bucket
      • [OBJECT_NAME] – der Dateiname eines hochzuladenden Objekts
    2. Machen Sie das Objekt öffentlich lesbar, damit es per Load-Balancing bereitgestellt werden kann.

      gsutil acl ch -u AllUsers:R gs://[EXAMPLE_BUCKET]/static/[OBJECT_NAME]
      
      • [EXAMPLE_BUCKET] – der bereits erstellte Bucket
      • [OBJECT_NAME] – der Dateiname des Objekts, das Sie hochgeladen haben

    Wiederholen Sie die Schritte, diesmal im eu-Bucket.

    Back-End-Buckets für Cloud Storage-Buckets erstellen

    Bei diesem Verfahren wird davon ausgegangen, dass Sie das Beispiel zu HTTP(S)-Load-Balancing abgeschlossen haben.

    Sie erstellen hier jedoch keinen Back-End-Dienst für statische Inhalte wie Videoinhalte, sondern zwei neue Back-End-Buckets, die auf die oben erstellten Cloud Storage-Buckets verweisen.

    Console


    1. Rufen Sie in der Google Cloud Platform Console die Seite "Load-Balancing" auf.
      Zur Seite "Load-Balancing"
    2. Klicken Sie in der Zeile web-map auf Bearbeiten.
    3. Klicken Sie neben Back-End-Konfiguration auf den Rechtspfeil.
    4. Klicken Sie auf Back-End-Bucket erstellen oder auswählen und wählen Sie dann Back-End-Bucket erstellen.
    5. Geben Sie als Namen static-bucket-us ein.
    6. Wählen Sie neben Cloud Storage-Bucket die Option Durchsuchen.
    7. Wählen Sie den us-Bucket aus, den Sie zuvor erstellt haben.
    8. Klicken Sie auf Auswählen.
    9. Klicken Sie auf Erstellen, um den Back-End-Bucket zu erstellen.
    10. Klicken Sie für den Load-Balancer noch nicht auf Aktualisieren.

    Wiederholen Sie die Schritte, um einen zweiten Back-End-Bucket zu erstellen. Geben Sie diesmal static-bucket-eu in das Feld Name ein und wählen Sie den zuvor erstellten eu-Bucket aus.

    gcloud


    gcloud compute backend-buckets create static-bucket \
        --gcs-bucket-name [EXAMPLE_BUCKET]
    
    • [EXAMPLE_BUCKET] – der us-Bucket, den Sie erstellt haben

    Wiederholen Sie den Befehl und ersetzen Sie diesmal EXAMPLE_BUCKET durch den zuvor erstellten eu-Bucket.

    URL-Zuordnung web-map ändern

    Fügen Sie Ihrer bestehenden URL-Zuordnung web-map eine Regel hinzu, die /static/* dem oben erstellten Back-End-Bucket zuordnet. Dadurch werden alle Anfragen mit /static/* an den Cloud Storage-Bucket weitergeleitet.

    Console


    1. Klicken Sie auf den Rechtspfeil neben Host- und Pfadregeln.
    2. Geben Sie in der dritten Zeile in das Feld Hosts * ein.
    3. Geben Sie in das Feld Pfade /static/us/* ein.
    4. Geben Sie in das Feld Back-Ends static-bucket-us ein.
    5. Klicken Sie für den Load-Balancer auf Aktualisieren.

    Wiederholen Sie die Schritte und geben Sie diesmal in das Feld Pfade /static/eu/* und in das Feld Back-Ends static-bucket-eu ein.

    gcloud


    Fügen Sie eine Pfadregel für die USA hinzu:

    gcloud compute url-maps add-path-matcher web-map \
        --default-service web-map-backend-service \
        --path-matcher-name bucket-matcher \
        --backend-bucket-path-rules="/static/us/*=static-bucket-us"
    

    Fügen Sie eine Pfadregel für die EU hinzu:

    gcloud compute url-maps add-path-matcher web-map 
    --default-service web-map-backend-service
    --path-matcher-name bucket-matcher
    --backend-bucket-path-rules="/static/eu/*=static-bucket-eu"

    Ressourcen aus Cloud Storage-Buckets abrufen

    Console


    1. Gehen Sie in der Google Cloud Platform Console auf die Seite "Externe IP-Adressen".
      Zur Seite "Externe IP-Adressen"
    2. Suchen Sie die Zeile für lb-ip-1 und notieren Sie die IP-Adresse im Feld Externe Adresse.
    3. Geben Sie in Ihrem Browser http://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME] oder https://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME] ein, je nachdem, welches Protokoll Ihr Load-Balancer verwendet, und drücken Sie die Eingabetaste. Geben Sie sowohl us als auch eu als [REGION] ein.

    gcloud


    1. Ermitteln Sie die IP-Adresse der globalen Weiterleitungsregel:

      gcloud compute forwarding-rules list
      
    2. Das ist die Adresse der Regel, die Sie bei der Ausführung des Beispiels zu HTTP(S)-Load-Balancing erstellt haben. Testen Sie mit "cURL" oder durch Aufruf der URL im Browser, ob der Cloud Storage-Bucket Traffic empfängt.

      curl http://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]
      

      oder

      curl -k https://[IP_ADDRESS]/static/[REGION]/[OBJECT_NAME]
      
      • [IP_ADDRESS] – die IP-Adresse der globalen Weiterleitungsregel
      • [OBJECT_NAME] – der Name des Beispielobjekts, das Sie hochgeladen haben
      • [REGION] – entweder us oder eu. Versuchen Sie es mit beiden.

    Dieser Befehl gibt [OBJECT_NAME] aus dem Cloud Storage-Bucket [EXAMPLE_BUCKET] aus.

    Wenn Sie ein Objekt static/[FOLDER_NAME]/[FOLDER_NAME]/[OBJECT_NAME] im Bucket speichern, können Sie es mit der URL http://[IP_ADDRESS]/static/[FOLDER_NAME]/[FOLDER_NAME]/[OBJECT_NAME] abrufen.

    Weitere Informationen