arrow_back

Network Load Balancer und HTTP Load Balancer einrichten

Anmelden Teilnehmen
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Network Load Balancer und HTTP Load Balancer einrichten

Lab 1 Stunde universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP007

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Überblick

In diesem praxisorientierten Lab lernen Sie die Unterschiede zwischen einem Network Load Balancer und einem HTTP Load Balancer kennen. Außerdem erfahren Sie, wie Sie diese für auf Compute Engine-VMs ausgeführten Anwendungen einrichten.

Es gibt verschiedene Möglichkeiten für Load Balancing in Google Cloud. In diesem Lab wird die Einrichtung der folgenden Load Balancer beschrieben:

Wir empfehlen, die Befehle selbst einzugeben, damit Sie die wichtigsten Konzepte schneller erlernen. In vielen Labs gibt es einen Codeblock, der die erforderlichen Befehle enthält. Sie können die Befehle einfach aus dem Codeblock herauskopieren und im Verlauf des Labs an den entsprechenden Stellen einfügen.

Lerninhalte

  • Network Load Balancer einrichten
  • HTTP Load Balancer einrichten
  • Unterschiede zwischen einem Network Load Balancer und einem HTTP Load Balancer in der Praxis kennenlernen

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:

    • Schaltfläche Google Cloud Console öffnen
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Symbol für Navigationsmenü

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Aufgabe 1: Standardregion und -zone für alle Ressourcen festlegen

  1. Legen Sie die Standardregion fest:

    gcloud config set compute/region {{{project_0.default_region | Region}}}
  2. Legen Sie in Cloud Shell die Standardzone fest:

    gcloud config set compute/zone {{{project_0.default_zone | Zone}}}

    Weitere Informationen zum Auswählen von Zonen und Regionen finden Sie in der Compute Engine-Dokumentation unter Regionen und Zonen.

Aufgabe 2: Mehrere Webserverinstanzen erstellen

Erstellen Sie in diesem Load-Balancing-Szenario drei Compute Engine-VM-Instanzen und installieren Sie Apache auf den Instanzen. Fügen Sie anschließend eine Firewallregel hinzu, die HTTP-Traffic zu den Instanzen zulässt.

Mit dem bereitgestellten Code wird als Zone festgelegt. Wenn Sie einen Wert für das Tag-Feld festlegen, können Sie auf alle diese Instanzen gleichzeitig verweisen, z. B. mit einer Firewallregel. Mit diesen Befehlen wird außerdem Apache auf den Instanzen installiert und jeder Instanz eine eindeutige Homepage zugewiesen.

  1. Erstellen Sie mit dem folgenden Code die virtuelle Maschine „www1“ in Ihrer Standardzone:

    gcloud compute instances create www1 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Webserver: www1

    " | tee /var/www/html/index.html'
  2. Erstellen Sie mit dem folgenden Code die virtuelle Maschine „www2“ in Ihrer Standardzone:

    gcloud compute instances create www2 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Webserver: www2

    " | tee /var/www/html/index.html'
  3. Erstellen Sie die virtuelle Maschine „www3“ in Ihrer Standardzone:

    gcloud compute instances create www3 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Webserver: www3

    " | tee /var/www/html/index.html'
  4. Erstellen Sie eine Firewallregel, um externen Traffic zu den VM-Instanzen zuzulassen:

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

Jetzt müssen Sie die externen IP-Adressen der Instanzen abrufen und prüfen, ob sie ausgeführt werden.

  1. Führen Sie den folgenden Befehl aus, um die Instanzen aufzulisten. Die IP-Adressen befinden sich in der Spalte EXTERNAL_IP:

    gcloud compute instances list
  2. Prüfen Sie mit curl, ob die einzelnen Instanzen ausgeführt werden. Ersetzen Sie dabei [IP_ADDRESS] durch die IP-Adresse jeder VM:

    curl http://[IP_ADDRESS]

    Klicken Sie unten auf Fortschritt prüfen und vergewissern Sie sich, ob eine Gruppe von Webservern erstellt wurde.

    Mehrere Webserverinstanzen erstellen

Aufgabe 3: Load-Balancing-Dienst konfigurieren

Durch entsprechende Konfiguration des Load-Balancing-Dienstes erhalten die VM-Instanzen Pakete für die von Ihnen konfigurierte statische externe IP-Adresse. Mit einem Compute Engine-Image erstellte Instanzen werden automatisch für diese IP-Adresse konfiguriert.

Hinweis: Informationen zum Einrichten des Network Load Balancing finden Sie in der Übersicht über externen Network Load Balancer im Netzwerk.
  1. Erstellen Sie eine statische externe IP-Adresse für den Load Balancer.

    gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | Region}}}

    Ausgabe:

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
  2. Fügen Sie eine Ressource für die Legacy-HTTP-Systemdiagnose hinzu:

    gcloud compute http-health-checks create basic-check
  3. Fügen Sie in derselben Region wie Ihre Instanzen einen Zielpool hinzu. Führen Sie den folgenden Befehl aus, um den Zielpool zu erstellen, und verwenden Sie die für den Dienst erforderliche Systemdiagnose:

    gcloud compute target-pools create www-pool \ --region {{{project_0.default_region | Region}}} --http-health-check basic-check
  4. Fügen Sie dem Pool die Instanzen hinzu:

    gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3
  5. Fügen Sie eine Weiterleitungsregel hinzu:

    gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | Region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool

    Klicken Sie unten auf Fortschritt prüfen, um zu sehen, ob ein L4 Network Load Balancer erstellt wurde, der auf die Webserver verweist.

    Load-Balancing-Dienst konfigurieren

Aufgabe 4: Traffic an die Instanzen senden

Nachdem Sie den Load-Balancing-Dienst konfiguriert haben, können Sie Traffic an die Weiterleitungsregel senden und sich ansehen, wie dieser auf verschiedene Instanzen verteilt wird.

  1. Geben Sie den folgenden Befehl ein, um die externe IP-Adresse der vom Load Balancer verwendeten Weiterleitungsregel „www-rule“ aufzurufen:

    gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}}
  2. Rufen Sie die externe IP-Adresse ab:

    IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress)
  3. Lassen Sie die externe IP-Adresse anzeigen:

    echo $IPADDRESS
  4. Greifen Sie mithilfe des Befehls curl auf die externe IP-Adresse zu. Ersetzen Sie dabei IP_ADDRESS durch eine externe IP-Adresse aus dem vorherigen Befehl:

    while true; do curl -m1 $IPADDRESS; done

    Die Antwort des Befehls curl wechselt zufällig zwischen den drei Instanzen. Wenn die Antwort anfangs nicht erfolgreich ist, müssen Sie unter Umständen rund 30 Sekunden warten, bis die Konfiguration vollständig geladen ist und die Instanzen als fehlerfrei gekennzeichnet sind. Anschließend können Sie es noch einmal versuchen.

  5. Mit Strg + c halten Sie die Ausführung des Befehls an.

Aufgabe 5: HTTP Load Balancer erstellen

HTTP(S) Load Balancing ist in Google Front End (GFE) implementiert. GFEs sind global verteilt und arbeiten über das globale Netzwerk und die Steuerungsebene von Google zusammen. Sie können die URL-Regeln so konfigurieren, dass einige URLs an eine bestimmte Gruppe von Instanzen und andere an andere Instanzen weitergeleitet werden.

Anfragen werden immer an die Instanzgruppe weitergeleitet, die dem Nutzer am nächsten ist. Allerdings muss die Gruppe dafür genug Kapazität haben und für die Anfrage geeignet sein. Falls die nächstgelegene Gruppe nicht genug Kapazität hat, wird die Anfrage an die nächste Gruppe mit ausreichend Kapazität geschickt.

Wenn Sie einen Load Balancer mit einem Compute Engine-Backend einrichten möchten, müssen sich Ihre VMs in einer Instanzgruppe befinden. Die verwaltete Instanzgruppe stellt VMs bereit, auf denen die Backend-Server eines externen HTTP Load Balancers ausgeführt werden. In diesem Lab stellen die Backend-Server ihre eigenen Hostnamen bereit.

  1. Erstellen Sie zuerst die Load-Balancer-Vorlage:

    gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | Region}}} \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --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://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

    Mit verwalteten Instanzgruppen (Managed Instance Groups, MIGs) können Sie Anwendungen auf mehreren identischen VMs ausführen. Sie können Ihre Arbeitslasten skalierbar und hochverfügbar machen, indem Sie automatisierte MIG-Dienste nutzen, darunter Autoscaling, automatische Reparatur, regionale Bereitstellung (in mehreren Zonen) und automatische Aktualisierung.

  2. Erstellen Sie anhand der Vorlage eine verwaltete Instanzgruppe:

    gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.default_zone | Zone}}}
  3. Erstellen Sie die Firewallregel fw-allow-health-check.

    gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 Hinweis: Die Regel für eingehenden Traffic lässt Traffic von der Systemdiagnose von Google Cloud (130.211.0.0/22 und 35.191.0.0/16) zu. In diesem Lab werden die VMs anhand des Ziel-Tags allow-health-check identifiziert.
  4. Nachdem die Instanzen nun ausgeführt werden, richten Sie eine globale statische externe IP-Adresse ein, über die Ihre Kunden den Load Balancer erreichen:

    gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global

    Notieren Sie sich die reservierte IPv4-Adresse:

    gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
  5. Erstellen Sie eine Systemdiagnose für den Load Balancer:

    gcloud compute health-checks create http http-basic-check \ --port 80 Hinweis: Google Cloud bietet Mechanismen zur Systemdiagnose, die feststellen, ob Backend-Instanzen ordnungsgemäß auf Traffic reagieren. Weitere Informationen finden Sie unter Systemdiagnosen verwenden.
  6. Erstellen Sie einen Backend-Dienst.

    gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
  7. Fügen Sie Ihre Instanzgruppe als Backend zum Backend-Dienst hinzu:

    gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.default_zone | Zone}}} \ --global
  8. Erstellen Sie eine URL-Zuordnung, um die eingehenden Anfragen an den Standard-Backend-Dienst weiterzuleiten:

    gcloud compute url-maps create web-map-http \ --default-service web-backend-service Hinweis: Eine URL-Zuordnung ist eine Google Cloud-Konfigurationsressource, die dazu dient, Anfragen an Backend-Dienste oder Backend-Buckets weiterzuleiten. Bei einem externen HTTP(S) Load Balancer können Sie beispielsweise eine einzelne URL-Zuordnung verwenden, um Anfragen anhand der in der URL-Zuordnung konfigurierten Regeln an verschiedene Ziele weiterzuleiten:

    • Anfragen für https://beispiel.de/video werden an einen Backend-Dienst gesendet.
    • Anfragen für https://beispiel.de/audio werden an einen anderen Backend-Dienst gesendet.
    • Anfragen für https://beispiel.de/bilder werden an einen Cloud Storage-Backend-Bucket gesendet.
    • Anfragen für andere Host‑ und Pfadkombinationen werden an einen Standard-Backend-Dienst gesendet.
  9. Erstellen Sie einen Ziel-HTTP-Proxy, um Anfragen an Ihre URL-Zuordnung weiterzuleiten:

    gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
  10. Erstellen Sie eine globale Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten:

    gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Hinweis: Eine Weiterleitungsregel und ihre zugehörige IP-Adresse stellen die Frontend-Konfiguration eines Google Cloud Load Balancers dar. Allgemeine Informationen zu Weiterleitungsregeln finden Sie unter Weiterleitungsregeln – Übersicht.

Klicken Sie unten auf Fortschritt prüfen, um zu sehen, ob ein L7 HTTP(S) Load Balancer erstellt wurde.

HTTP Load Balancer erstellen

Aufgabe 6: An Ihre Instanzen gesendeten Traffic testen

  1. Gehen Sie in der Google Cloud Console im Navigationsmenü zu Netzwerkdienste > Load Balancing.

  2. Klicken Sie auf den gerade erstellten Load Balancer (web-map-http).

  3. Klicken Sie im Abschnitt Backend auf den Namen des Backends und prüfen Sie, ob die VMs den Status Fehlerfrei haben. Falls sie nicht fehlerfrei sind, warten Sie einen Augenblick und laden Sie die Seite anschließend neu.

  4. Sobald die VMs den gewünschten Status haben, testen Sie den Load Balancer mit einem Browser. Rufen Sie dazu die Adresse http://IP_ADDRESS/ auf. Ersetzen Sie dabei IP_ADDRESS durch die IP-Adresse des Load Balancers.

Das kann bis zu fünf Minuten dauern. Wird keine Verbindung hergestellt, warten Sie eine Minute und laden Sie den Browser dann neu.

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 served from: lb-backend-group-xxxx).

Glückwunsch!

Sie haben einen Network Load Balancer und einen HTTP(S) Load Balancer erstellt und das Verwenden von Instanzvorlagen und verwalteten Instanzgruppen geübt.

Weitere Informationen

Fahren Sie mit diesem Lab fort:

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 26. Januar 2024 aktualisiert

Lab zuletzt am 19. September 2023 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.