Load Balancer und Reverseproxys

Sowohl Load Balancer als auch Reverseproxys sind gängige Technologien in modernen, webbasierten Anwendungen und Architekturen und können unabhängig voneinander oder in einer kombinierten Konfiguration eingesetzt werden. Dieser Abschnitt enthält einen Überblick über diese Technologien sowie Kommentare zu relevanten Anwendungsfällen in ArcGIS-Systemen zu und den relevanten Funktionen, die diese Technologien bieten.

  • Ein Load Balancer ist in der Regel eine Hardware- oder Softwarekomponente, die Clientanforderungen oder Workloads auf mehrere Datenverarbeitungsressourcen, z. B. physische Server, virtuelle Server oder Cluster, verteilt. Das Load-Balancing ist ein Lastenausgleich, der dazu beiträgt, die Systemauslastung auszugleichen, Risiken zu mindern, die Servicebereitstellung und das Servicewachstum zu vereinfachen und die Sicherheit von Backend-Servern zu verbessern.
  • Ein Reverseproxy ist eine Software- oder Hardwarekomponente, die HTTPS-Anforderungen, z. B. von einem externen Client, akzeptiert und diese Anforderungen an die richtigen internen Ressourcen, URLs oder Services weiterleitet. Reverseproxys werden häufig verwendet, um externe Anforderungen, die bei einer URL ankommen, an eine andere interne URL oder ein anderes internes System, auf das dieser externe Client sonst nicht zugreifen könnte, weiterzuleiten. Reverseproxys werden auch häufig verwendet, um Datenverkehr von bekannten Frontend-Netzwerkports, z. B. HTTPS-Anforderungen an Port 443, an andere private Ports auf einem Backend-System weiterzuleiten. Reverseproxys stellen sicher, dass zwischen dem Client, der die Anforderung sendet, und dem Backend-Server, der auf die Anforderung antwortet, eine Ebene der Sicherheit, Verschleierung und möglicherweise Anforderungsfilterlogik vorhanden ist.

Implementierungsmuster

Viele ArcGIS-Systeme implementieren das Load-Balancing in Kombination mit der Verwendung von Reverseproxys. Zu den gängigen Implementierungsmustern gehören:

  • Lastenausgleich bei Clientanforderungen, die an benutzerorientierte Komponenten von ArcGIS Enterprise gesendet werden, z. B. das ArcGIS Enterprise-Portal und verbundene ArcGIS Server-Sites, einschließlich ArcGIS Image Server, Workflow Manager Server oder andere
  • Lastenausgleich bei Benutzeranforderungen für statische Anwendungsinhalte wie HTML-, JavaScript- und CSS-Ressourcen von Webanwendungen über mehrere Webserver hinweg
  • Lastenausgleich bei Anforderungen, die über HTTPS empfangen und an Port 443 an einen Backend-Service gesendet werden, der Port 6443 auf HTTPS-Anforderungen überwacht, z. B. ArcGIS Server.

Um die Funktionalität von Load-Balancing und Reverseproxy in ArcGIS Enterprise-Bereitstellungen zu ermöglichen, stellt Esri die installierbare ArcGIS-Softwarekomponente ArcGIS Web Adaptor bereit. Web Adaptor ist nicht die einzige Option für die Architektur von ArcGIS Enterprise-Systemen mit einem Load Balancer und einem Reverseproxy, sondern vielmehr eine Lösung für ein gängiges Muster, die vom technischen Support von Esri unterstützt wird. Je nach Präferenz und technischen Anforderungen kann auch ein Load Balancer in Form externer Hardware oder Software verwendet werden. Der Typ der Arbeitslast und die Häufigkeit der Nachfrage geben Aufschluss darüber, welcher von Load Balancer-Typ für Ihre Anforderungen geeignet ist. Weitere Informationen zu Ihrer ArcGIS-Version und Ihrem Betriebssystem finden Sie unter Bereitstellung auf mehreren Computern mit Load Balancer eines Drittanbieters.

Um eine Hochverfügbarkeitskonfiguration zu erreichen, kann Web Adaptor mit einem Computer auf einer Site mit hoher Verfügbarkeit konfiguriert werden. Darin enthalten ist eine Logik zum Erkennen der anderen Computer auf der Site, zum Überwachen von deren Status und zum Weiterzuleiten von Anforderungen an diese Computer, wenn sie fehlerfrei sind. Diese Logik ist ein wesentlicher Implementierungsvorteil der Einbeziehung von ArcGIS Web Adaptor in einen Systementwurf, da sie die Änderungen an einer ArcGIS Enterprise-Bereitstellung einfacher verarbeiten kann als eine manuell konfigurierte Integritätsprüfung oder Load Balancer-Einstellung.

Externe Implementierungen

Während Web Adaptor in vielen Szenarien die Funktionalität von Load-Balancing und Reverseproxy bereitstellen kann, implementieren viele mit ArcGIS erstellte Unternehmenssysteme auch zusätzliche, externe Software- oder Hardwarekomponenten, um die funktionalen Ziele dieser beiden Technologien zu erreichen. Beispiele:

  • Webserver-Software wie Apache Tomcat, Apache httpd oder Nginx kann als Reverseproxy für Anforderungen von Clients an ArcGIS-Endpunkte verwendet werden.
  • Es können cloudnative Load Balancer wie Azure Application Gateway, Amazon Elastic Load Balancer oder Application Load Balancer oder Google Cloud Load Balancer verwendet werden.
  • Andere dedizierte Lastenausgleichs- und Proxy-Systeme wie F5 BIG-IP, Citrix NetScaler oder Barracuda, bei denen es sich häufig um Hardware-Appliances handelt, die Load-Balancing- und Reverseproxy-Services für viele verschiedene Anwendungen bereitstellen und gleichzeitig Unterstützung für die Authentifizierung, für die Erkennung von Angriffen von außen (Intrusion Detection), für eine WAF-ähnliche Funktionalität (Web Application Firewall) und für andere Anwendungsfälle bieten.

Mit dem Übergang von herkömmlichen lokalen Architekturen, bei denen eine demilitarisierte Zone oder DMZ am häufigsten verwendet wurde, um internetbasierten Clients den Zugriff auf Services und Endpunkte zu ermöglichen, hin zu Cloud-Architekturen, in denen cloudnative Services diese Funktionalität in den meisten Fällen bereitstellen, haben sich auch die Überlegungen und Empfehlungen zur Architektur in Bezug auf Reverse-Proxys und Load-Balancing geändert.

Vorteile

Diese Technologien bieten Vorteile, da sie vor allem Skalierbarkeit, hohe Verfügbarkeit und Sicherheit ermöglichen.

Skalierbarkeit

Das ArcGIS-System kann skaliert werden, um sowohl kleine als auch große Bereitstellungen zu unterstützen. Um wachsenden Bereitstellungsgrößen gerecht zu werden, kann ArcGIS viele Load-Balancing-Techniken und -Technologien nutzen. Load-Balancing-Algorithmen, die zum Verteilen von Clientanforderungen verwendet werden, können von einfachen Round-Robin-Ansätzen bis hin zu komplexeren Algorithmen variieren, die Faktoren wie die aktuelle Verbindungsanzahl, die Hostauslastung oder reale Antwortzeiten berücksichtigen.

Ein Load Balancer trägt zur Leistung bei, indem er die Last auf mehrere Computer und die entsprechenden Ressourcen verteilt. Im Beispiel für hohe Verfügbarkeit verteilen die Load Balancer von ArcGIS Web Adaptor die GIS-Serveranforderungen auf zwei ArcGIS Enterprise-Hosting-Server. Wenn Ihr System viele Benutzer hat, die ähnliche Workflows ausführen, bei denen erhebliche Mengen an Verarbeitung erforderlich sind, z. B. ein Workflow für die Bearbeitung, der lange, prozessorintensive Transaktionen umfasst, kann ein Load Balancer sicherstellen, dass diese Anforderungen auf die verfügbare Hardware verteilt werden, während Workflows, die sehr unterschiedliche Anforderungen an die Verarbeitung enthalten, von einer Arbeitslasttrennung anstelle von Load-Balancing profitieren können.

load-balancing-1.png

Hohe Verfügbarkeit

Load-Balancing ermöglicht auch Hochverfügbarkeitskonfigurationen von ArcGIS, indem Anforderungen auf eine Site oder einen Cluster aus Computern mit derselben Rolle verteilt werden. Wenn z. B. in einer ArcGIS Enterprise-Bereitstellung mit mehreren Computern die hohe Verfügbarkeit konfiguriert ist, dann sendet der Load Balancer (ArcGIS Web Adaptor) die Anforderungen abwechselnd an den primären und den sekundären ArcGIS-Hosting-Server (siehe Abbildung).

Der Reverseproxy ist in diesem Fall der zentrale Zugangspunkt (Single Point of Entry) – eine einzelne IP-Adresse, die das System vor dem Endbenutzer verschleiert. Der Reverseproxy leitet den Datenverkehr gemäß seinem Algorithmus an die Instanzen von ArcGIS Web Adaptor weiter. Bei diesem Algorithmus handelt es sich in der Regel um Round-Robin, der aber stabiler sein könnte. Wie ArcGIS Web Adaptor überwachen viele Load Balancer den Zustand oder die Verfügbarkeit des Servers und entfernen fehlerhafte oder nicht verfügbare Computer aus der Verteilerliste, um die Ausfallsicherheit Ihres Systems zu gewährleisten.

Die Methode und Effizienz dieser Funktion variiert je nach Load Balancer. Einige Hardware-Load-Balancer verfügen über umfangreiche Algorithmen, die es ihnen ermöglichen, sich basierend auf der Last oder der Antwortzeit sofort anzupassen. Andere arbeiten mit einer einfachen Round-Robin-Liste, bei der die Liste regelmäßig aktualisiert werden kann, damit sie nur fehlerfreie Computer enthält.

load-balancing-2.png

Erhöhte Sicherheit

Ein Reverseproxy macht für ein bestimmtes System in der Regel eine einzelne IP-Adresse für das Internet oder Intranet verfügbar und verteilt Anforderungen an die richtige Ressource. Dies reduziert die Sicherheitsrisiken erheblich, da die interne Topologie des Netzwerks und der Systeme verborgen bleibt und die Anzahl der im Falle eines Angriffs getroffenen Punkte reduziert wird. Diese Methode vereinfacht auch die Bereitstellung und Nutzung von Services, indem ein zentraler Zugang zum System bereitgestellt wird. Die meisten Organisationen richten einen Proxyserver ein, damit die Site nicht direkt für Clients erreichbar ist.

Ein Reverseproxyserver kann so konfiguriert werden, dass er entweder direkt mit ArcGIS Server oder über ArcGIS Web Adaptor kommuniziert, indem den Proxy-Direktiven die entsprechenden URLs hinzugefügt werden.

Weitere Informationen finden Sie unter Konfigurieren eines Reverseproxyservers mit ArcGIS Server.

Überlegungen und Empfehlungen

Zu den allgemeinen Empfehlungen für die Implementierung von Load-Balancing und Reverseproxys gehören:

  • Implementieren Sie das Load-Balancing, um den Client-Workload-Datenverkehr auf mehrere Datenverarbeitungsressourcen zu verteilen und so Skalierbarkeit und hohe Verfügbarkeit mit ArcGIS zu ermöglichen.
  • In den meisten ArcGIS Enterprise-Bereitstellungen ist ArcGIS Web Adaptor eine empfohlene und häufig erforderliche Architekturkomponente, die sowohl Load Balancer- als auch Reverseproxy-Funktionen in einer einzigen, einfach bereitzustellenden Anwendung bereitstellt. ArcGIS Web Adaptor bietet auch eine einfache Methode zum Implementieren der Authentifizierung auf Webebene für ArcGIS Enterprise.
  • Wenn Sie erweiterte Anforderungen an das Load-Balancing haben, dann sollten Sie die Implementierung eines externen Load Balancers in Betracht ziehen, der zusätzlich zu ArcGIS Web Adaptor die von Ihnen benötigten Funktionen bereitstellt.
  • Wenn Sie ein öffentlich zugängliches System bereitstellen, dann verwenden Sie einen leistungsfähigen Reverseproxy, um zusätzliche Sicherheit für Ihre ArcGIS-Bereitstellung zu gewährleisten.
Hinweis:

Für viele andere Anwendungen oder Systeme ist das Beenden von TLS am Load Balancer eine gängige Anwendungsarchitektur. Für ArcGIS-Systeme wird die TLS-Beendigung im Allgemeinen nicht empfohlen und im Fall von Portal for ArcGIS nicht unterstützt. Die Aufrechterhaltung von End-to-End-TLS-Verbindungen ist ein stärkerer Sicherheitsstatus und stellt sicher, dass Benutzeranforderungen und -daten für einen Angreifer innerhalb des Netzwerks nicht sichtbar sind.

Empfehlungen für das Load-Balancing

Wenn Sie eine Load-Balancing-Technologie mit einem ArcGIS-System implementieren, dann sollten Sie die folgenden Strategien berücksichtigen:

  • ArcGIS-Softwarekomponenten enthalten verschiedene “Zustandsprüfungs”-URLs, die für die Anforderungen zur Zustandsprüfung verwendet werden können, die die meisten Load Balancer senden, um zu ermitteln, ob ein Server im “Zielpool” dieses Load Balancers verbleiben soll. healthCheck-Anforderungen sollten nur dann mit einer positiven Antwort antworten, wenn das System ordnungsgemäß ausgeführt wird und Anforderungen empfangen kann.
  • Die meisten Load Balancer können in verschiedenen Modi betrieben werden, wie zum Beispiel in einem Round-Robin-Modus, bei dem Anforderungen nach dem Zufallsprinzip an Server im Pool der verfügbaren Back-Ends gesendet werden. Andere, “intelligentere” Load-Balancing-Ansätze können den Typ oder die Größe der Anforderung, die Serverauslastung auf der Grundlage des Rechen- oder Netzwerkdatenverkehrs oder andere Faktoren berücksichtigen.
  • Zu verstehen, wie sich Benutzeranforderungen auf die Serverauslastung auswirken, kann ein komplexes und subjektives Thema sein. Wägen Sie die Vorteile intelligenterer Load-Balancing-Ansätze sorgfältig ab, wenn Sie vom normalen Round-Robin-Ansatz abweichen.
  • “Session Stickiness” ist eine gängige Load-Balancer-Einstellung, die entweder die Quell-IP-Adresse oder ein Client-Cookie verwendet, um sicherzustellen, dass Anforderungen von demselben Benutzer (wie vom Load Balancer wahrgenommen) an denselben Server gesendet werden. Diese Funktion kann in Szenarien nützlich sein, in denen mehrere isolierte ArcGIS Server-Sites oder -Funktionen hinter demselben Load Balancer platziert werden. Und dass hier sichergestellt wird, dass Benutzeranforderungen an denselben Server zurückgegeben werden, kann funktionale und Performance-Vorteile haben.

Empfehlungen für Reverseproxys

Reverseproxys werden häufig als Teil eines Load Balancers implementiert, da viele Load Balancer die Anforderungen nicht an den Backend-Port oder -Service, von dem die Frontend-Anforderung stammt, sondern an einen anderen Back-End senden. Beim Implementieren eines Reverseproxys (zusammen mit oder getrennt von einem Load Balancer) sollten Sie einige der folgenden Entwurfsempfehlungen berücksichtigen:

  • Verwenden Sie konsistente URLs. ArcGIS-Systeme sind in hohem Maße selbstreferenziell, mit Inhalten wie Anwendungen, Karten oder Services, die Teile des Systems mithilfe von URLs auf Elemente, Services oder andere Komponenten referenzieren. Da diese URLs in den Konfigurationen gespeichert werden, trägt die Verwendung konsistenter URLs zur Systemstabilität und zur Portabilität von Inhalten bei. Das Ändern der externen URL eines Systems ist ein disruptiver Prozess, der in der aktuellen Software nicht unterstützt wird.
  • Einige Reverseproxys verwenden möglicherweise standardmäßig mehrere URL-Teile, um das ArcGIS-System zu referenzieren, z. B.:

    • https://centralhost.domain.com/systems/gis/rest/services

Beachten Sie, dass die Verwendung solcher mehrteiligen URLs für ArcGIS Enterprise-Komponenten nicht unterstützt wird. Der “Webkontext” oder der Web Adaptor-Name muss die erste URL-Komponente sein, die auf den Hostnamen in der URL folgt.

  • ArcGIS funktioniert am besten mit transparenten Reverseproxy-Konfigurationen, bei denen Anforderungen ohne Überprüfung oder Authentifizierungs- oder Validierungsebene an das Back-End gesendet werden. Andere Reverseproxy-Methoden, die den Datenverkehr abfangen, anpassen oder beeinflussen, können Funktions- und Performance-Probleme mit ArcGIS-Systemen verursachen und sollten vor der Implementierung sorgfältig abgewogen werden.
Top