Erfahren Sie, wie Sie Cloudflare Load Balancer (LB) verwenden können, um den Datenverkehr zwischen AWS (Amazon Web Services) und GCP (Google Cloud Platform) zu verteilen.

Die meisten Webanwendungen erfordern einen Lastausgleich zwischen Servern/Diensten im selben Rechenzentrum oder führen diesen durch.

Wenn Sie jedoch geschäftskritische Anwendungen betreiben, bei denen eine ständige Verfügbarkeit auf der ganzen Welt erforderlich ist, dann benötigen Sie einen Cloud Load Balancer.

Dabei geht es nicht nur um die Betriebszeit, sondern auch um viele andere Faktoren.

Bsp:

  • Aktiv-passiv oder aktiv-aktiv Rechenzentrum Anforderung
  • Plan zur Wiederherstellung im Katastrophenfall
  • Nutzung von mehreren Rechenzentren, um Anfragen vom nächstgelegenen Standort aus zu bedienen
  • Einhaltung von Vorschriften

Cloudflare bietet lokale und globale Load Balancing-Optionen, mit denen der Datenverkehr an mehrere Rechenzentren geleitet werden kann.

Einige der Funktionen von Cloudflare LB sind:

  • Integrierte Gesundheitsprüfungen, so dass Sie einen fehlerhaften Server schnell abschalten können.
  • Failover auslösen, wenn der Gesundheitscheck fehlschlägt
  • Verringern Sie die Latenzzeit, indem Sie den Datenverkehr an den nächstgelegenen Server leiten
  • DNS-Ebene und Unterstützung von HTTP(S), TCP und UDP
  • Session-Stickiness, um sicherzustellen, dass die Anfrage an denselben Server geht

Sie können das Ganze entweder über das Cloudflare Dashboard oder die API konfigurieren.

Technisch gesehen gelten die folgenden Anweisungen für den Lastausgleich auf jeder Cloud-Plattform wie Azure, DigitalOcean, Alibaba usw. Ich habe jedoch GCP und AWS für die Demonstration ausgewählt.

cloudflare-lb

Einzelheiten zur Einrichtung von AWS und GCP

Ich habe einen Server auf der GCP- und AWS-Plattform mit den folgenden Einstellungen eingerichtet.

  • Installieren Sie Nginx
  • Index.html mit einem benutzerdefinierten Text hinzugefügt, um zu zeigen, dass die Seite von dem jeweiligen Server bereitgestellt wird
  • Nginx gestartet, und die Seite ist von beiden Servern aus zugänglich
aws-gcp-test-page

Wechseln wir nun zu Cloudflare, um LB zu implementieren.

Aktivieren von Cloudflare Load Balancer

Ich habe eine verfügbare Domain (bloggerflare.com), die ich für diese Übung verwenden werde.

Hinweis: Der Load Balancer von Cloudflare ist nicht KOSTENLOS, die Preise beginnen bei 5 $ pro Monat.

Ich gehe davon aus, dass Sie bereits ein Konto bei Cloudflare haben; falls nicht, können Sie die Domain erstellen und hinzufügen, wie ich in meinem vorherigen Beitrag erklärt habe.

  • Melden Sie sich bei Cloudflare an und wählen Sie die Domain aus, für die Sie die Lastverteilung aktivieren möchten
  • Gehen Sie auf die Registerkarte Datenverkehr und aktivieren Sie den Lastausgleich.
cloudflare-enable-lb
  • Konfigurieren Sie die Funktionen je nach Bedarf. Ich fahre mit der minimalen Konfiguration fort.
cloudflare-lb-setup

Wenn Sie möchten, dass Anfragen an den nächstgelegenen Standort weitergeleitet werden, müssen Sie Geo Routing aktivieren.

  • Bestätigen Sie das Abonnement und aktivieren Sie es.
cloudflare-lb-subscription

Wie Sie sehen, können Sie schon ab $5 pro Monat mit zwei Ursprungsservern und einem einminütigen Intervall für den Gesundheitscheck loslegen.

Die Infrastruktur ist jetzt so erschwinglich. können Sie sich vor 5 Jahren einen Cloud Load Balancer für $5 vorstellen?

Dies zeigt an, dass Cloudflare LB aktiviert und bereit zur Konfiguration ist.

Cloudflare LB erstellen

Es dauert ein paar Sekunden, bis das Abonnement bestätigt ist und Sie zur Traffic-Seite zurückkehren.

  • Klicken Sie auf Load Balancer erstellen
cloudflare-lb-activated
  • Geben Sie die Domain ein, für die Sie den Ausgleich einrichten möchten.
  • Erweitern Sie Session Affinity und wählen Sie By Cloudflare Cookie, wenn Sie Session Stickiness aktivieren möchten
cloudflare-create-lb
  • Geben Sie einen Pool-Namen ein und geben Sie den Ursprung an (den Server, zu dem der Datenverkehr umgeleitet werden soll)
cloudflare-lb-pool
  • Als nächstes können Sie einen Gesundheitscheck konfigurieren.

Ein Gesundheitscheck ist unerlässlich. Cloudflare stoppt die Weiterleitung des Datenverkehrs an den fehlerhaften Ursprung, wenn eine Zustandsprüfung fehlschlägt.

  • Wenn Ihr Ursprung auf Port 80 hört, können Sie HTTP oder https für Port 443 auswählen.
cloudflare-lb-enable-healthcheck

Bei Cloudflare können Sie auch erweiterte Einstellungen für den Gesundheitscheck konfigurieren, wie z.B.:

  • GET- oder HEAD-Methode
  • Erwarteter HTTP-Statuscode
  • Inhaltsüberprüfung im Antwortkörper
  • Anzahl der Versuche, bevor sie als gesund oder ungesund eingestuft werden
  • Validierung von Header-Namen

Und schließlich speichern Sie die Konfiguration und setzen sie ein

cloudflare-lb-final-deploy
  • LB führt einen Gesundheitscheck durch, und in wenigen Sekunden werden Sie sehen, dass der Status ” gesund” ist.
cloudflare-lb-healthy

Das bedeutet, dass der Cloudflare Load Balancer bereit ist, Datenverkehr aus der ganzen Welt anzunehmen und an die konfigurierten Ursprungsserver weiterzuleiten.

Load Balancer testen

Lassen Sie uns einen einfachen Test durchführen, um zu sehen, ob er funktioniert.

  • Versuchen Sie zunächst, auf die Domain zuzugreifen.
page-from-gcp

Großartig!

LB hat eine Anfrage an Google Cloud VM weitergeleitet und die Antwort erhalten. Ich kann die Anfrage in Nginx sehen.

162.158.167.174 - - [19/Dec/2017:10:25:41 0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/63.0.3239.84 Safari/537.36"
  • Lassen Sie mich Nginx auf GCP herunterfahren und die Seite erneut aufrufen.
page-from-aws
  • Und hier sehen Sie es. Eine angeforderte Seite wird von AWS ausgeliefert.

Ich kann sehen, dass LB das GCP-Poolmitglied heruntergefahren hat.

cloudflare-lb-health-test

Standardmäßig wird die Cloudflare-IP in den Nginx-Zugriffsprotokollen angezeigt. Wenn Sie die Client-IP wiederherstellen möchten, können Sie sich diese Anleitung ansehen.

Fazit

Die Implementierung eines Cloudflare-Load-Balancers ist unkompliziert und kann in weniger als 15 Minuten in Betrieb genommen werden. Wenn Sie auf der Suche nach hoher Verfügbarkeit zwischen mehreren Rechenzentren oder Ursprungsservern sind, sollten Sie es ausprobieren, um zu sehen, wie es funktioniert.