Freigeben über


Zuverlässigkeit in Azure Load Balancer

Azure Load Balancer ist ein Lastenausgleichsdienst (Layer-4, TCP/UDP), der eingehenden Datenverkehr zwischen fehlerfreien Diensten verteilt. Load Balancer bietet hohe Verfügbarkeit und Netzwerkleistung für Ihre Anwendungen mit ultra niedriger Latenz.

Wenn Sie Azure verwenden, ist Zuverlässigkeit eine gemeinsame Verantwortung. Microsoft bietet eine Reihe von Funktionen zur Unterstützung von Resilienz und Wiederherstellung. Sie sind dafür verantwortlich, zu verstehen, wie diese Funktionen in allen von Ihnen verwendeten Diensten funktionieren, und die Funktionen auswählen, die Sie benötigen, um Ihre Geschäftsziele und Uptime-Ziele zu erfüllen.

In diesem Artikel wird beschrieben, wie Sie den Lastenausgleich für eine Vielzahl potenzieller Ausfälle und Probleme widerstandsfähig machen, einschließlich vorübergehender Fehler, Ausfall der Verfügbarkeitszone und Regionsausfälle. Außerdem werden einige wichtige Informationen zum Load Balancer-Servicelevelvertrag (SLA) erläutert.

Von Bedeutung

Die Zuverlässigkeit Ihrer Gesamtlösung hängt von der Konfiguration der Back-End-Instanzen (Server) ab, an die Ihr Lastenausgleichsmodul Datenverkehr weitergibt, z. B. virtuelle Azure-Computer (VMs) oder Skalierungssätze für virtuelle Azure-Computer.

Ihre Back-End-Instanzen sind in diesem Artikel nicht enthalten, ihre Verfügbarkeitskonfigurationen wirken sich jedoch direkt auf die Resilienz Ihrer Anwendung aus. Überprüfen Sie die Zuverlässigkeitsleitfäden für alle Azure-Dienste in Ihrer Lösung , um zu verstehen, wie jeder Dienst Ihre Zuverlässigkeitsanforderungen unterstützt. Indem Sie sicherstellen, dass Ihre Back-End-Instanzen auch für hohe Verfügbarkeit und Zonenredundanz konfiguriert sind, können Sie end-to-End-Zuverlässigkeit für Ihre Anwendung erreichen.

Bereitstellungsempfehlungen für die Produktion

Das Azure Well-Architected Framework bietet Empfehlungen für Zuverlässigkeit, Leistung, Sicherheit, Kosten und Vorgänge. Informationen dazu, wie sich diese Bereiche gegenseitig beeinflussen und zu einer zuverlässigen Lastenausgleichslösung beitragen, finden Sie unter Architektur bewährte Methoden für das Lastenausgleichsmodul im Azure Well-Architected Framework.

Übersicht über die Zuverlässigkeitsarchitektur

Ein Load Balancer kann entweder extern oder intern sein. Ein öffentlicher Lastenausgleich akzeptiert Datenverkehr aus dem Internet über eine öffentliche IP-Adressressource. Auf einen internen Lastenausgleich kann nur innerhalb Ihres virtuellen Netzwerks und anderer Netzwerke zugegriffen werden, die Sie mit dem virtuellen Netzwerk verbinden.

Jeder Lastenausgleich besteht aus mehreren Komponenten, einschließlich:

  • Front-End-IP-Konfigurationen, die Datenverkehr empfangen. Ein öffentlicher Load Balancer empfängt Datenverkehr an einer öffentlichen IP-Adresse. Ein interner Lastverteiler nimmt Datenverkehr an einer IP-Adresse in Ihrem virtuellen Netzwerk entgegen.
  • Back-End-Pools, die eine Sammlung von Back-End-Instanzen enthalten, die Datenverkehr empfangen können, z. B. einzelne virtuelle Computer, die Ihre Anwendung ausführen.
  • Lastenausgleichsregeln, die definieren, wie Datenverkehr von einem Frontend an einen Back-End-Pool verteilt werden soll.
  • Verfügbarkeitsprüfungen, die die Verfügbarkeit von Backend-Instanzen überwachen.

Weitere Informationen zur Funktionsweise des Lastenausgleichs finden Sie in den Komponenten des Lastenausgleichs.

Für global bereitgestellte Lösungen können Sie einen globalen Lastenausgleich bereitstellen, bei dem es sich um einen speziellen Typ des öffentlichen Lastenausgleichs handelt, der zum Weiterleiten des Datenverkehrs zwischen verschiedenen regionalen Bereitstellungen Ihrer Lösung entwickelt wurde. Ein globaler Lastverteiler bietet eine einzelne Anycast-IP-Adresse. Der Datenverkehr wird basierend auf der Kundennähe und dem regionalen fehlerfreien Zustand an den nächstgelegenen funktionierenden regionalen Load Balancer weitergeleitet. Weitere Informationen finden Sie unter Ausfallsicherheit für regionsweite Fehler.

Resilienz für vorübergehende Fehler

Vorübergehende Fehler sind kurze, zeitweilige Fehler in Komponenten. Sie treten häufig in einer verteilten Umgebung wie der Cloud auf und sind ein normaler Bestandteil von Vorgängen. Vorübergehende Fehler korrigieren sich nach kurzer Zeit. Es ist wichtig, dass Ihre Anwendungen vorübergehende Fehler behandeln können, in der Regel durch Wiederholen betroffener Anforderungen.

Alle in der Cloud gehosteten Anwendungen sollten die Anleitung zur vorübergehenden Fehlerbehandlung von Azure befolgen, wenn sie mit cloudgehosteten APIs, Datenbanken und anderen Komponenten kommunizieren. Weitere Informationen finden Sie unter Empfehlungen zum Umgang mit vorübergehenden Fehlern.

Berücksichtigen Sie beim Verwenden des Lastenausgleichs die folgenden bewährten Methoden, um das Risiko vorübergehender Fehler zu minimieren, die sich auf Ihre Anwendung auswirken:

  • Implementieren Sie die Wiederholungslogik. Clients sollten geeignete Wiederholungsmechanismen für vorübergehende Verbindungsfehler implementieren, einschließlich exponentieller Backoffstrategien.

  • Konfigurieren Sie Integritätstests mit Toleranz. Konfigurieren Sie Ihre Integritätstests so, dass sie zwischen der schnellen Fehlererkennung und der Vermeidung falsch positiver Ergebnisse während vorübergehender Probleme ausgeglichen werden.

  • Überwachen der SNAT-Portzuordnung. Überwachen Sie bei ausgehenden Verbindungen die SNAT-Portzuweisung, und konfigurieren Sie ausgehende Regeln, um vorübergehende Verbindungsfehler aufgrund der Portausschöpfung zu verhindern.

Ausfallsicherheit bei Ausfällen von Verfügbarkeitszonen

Verfügbarkeitszonen sind physisch getrennte Gruppen von Rechenzentren innerhalb einer Azure-Region. Wenn eine Zone ausfällt, kann für die Dienste ein Failover zu einer der verbleibenden Zonen erfolgen.

Load Balancer kann als zonenredundant bereitgestellt werden, indem Sie jede von Ihnen erstellte Frontend-IP-Konfiguration konfigurieren. Eine zonenredundante IP-Frontend-Konfiguration wird gleichzeitig über unabhängige Infrastrukturen in mehreren Zonen angeboten. Diese Konfiguration stellt sicher, dass Zonenfehler sich nicht auf die Fähigkeit des Lastenausgleichs auswirken, Datenverkehr zu empfangen und zu verteilen.

Das folgende Diagramm zeigt einen zonenredundanten öffentlichen Lastenausgleich, der durch erstellen einer zonenredundanten öffentlichen IP-Adresse konfiguriert wird:

Diagramm mit einem zonenredundanten öffentlichen Lastenausgleich mit einer zonenredundanten öffentlichen IP-Adresse, die Datenverkehr an drei verschiedene VMs in verschiedenen Verfügbarkeitszonen leitet.

Das folgende Diagramm zeigt einen internen Lastenausgleich mit einer ähnlichen zonenredundanten Konfiguration:

Diagramm eines zone-redundanten internen Load Balancers, wobei der Datenverkehr zu drei verschiedenen virtuellen Maschinen (VMs) in unterschiedlichen Verfügbarkeitszonen geleitet wird.

Hinweis

Sie können zwar Zonenlastenausgleichsgeräte bereitstellen, es wird jedoch empfohlen, immer zonenredundante Lastenausgleichsgeräte zu verwenden, auch für Workloads, die in einer einzelnen Zone bereitgestellt werden. Microsoft migriert derzeit alle öffentlichen IP-Adressen und Lastenausgleichsgeräte, um zonenredundant zu sein.

In Regionen ohne Verfügbarkeitszonen werden Lastenausgleichsgeräte in einer nichtzonalen oder regionalen Konfiguration mithilfe einer Front-End-Konfiguration ohne Zonenkonfiguration erstellt. Wenn in der Region ein Ausfall auftritt, können nichtzonale Lastenausgleichsgeräte Ausfallzeiten verursachen.

Back-End-Instanzen und Verfügbarkeitszonen

Die Verfügbarkeitszonenkonfiguration Ihrer Back-End-Instanzen ist unabhängig von der Front-End-IP-Konfiguration Ihres Lastenausgleichs.

Verteilen Sie Ihre Back-End-Instanzen über Zonen hinweg, indem Sie den relevanten Dienst entsprechend den Zuverlässigkeitsfeatures des Diensts konfigurieren, zu dem sie gehören, und der architektur, die Sie entwerfen.

Hinweis

Das Verteilen von Back-End-Instanzen über mehrere Verfügbarkeitszonen ist für resilienz unerlässlich. Wenn sich alle Back-End-Instanzen in einer einzelnen Zone befinden, wird Ihre Anwendung durch einen Ausfall in dieser Zone nicht verfügbar, auch wenn Sie einen zonenredundanten Load Balancer verwenden.

Wenn Sie z. B. VMs verwenden, besteht ein allgemeiner Entwurfsansatz für Produktionsworkloads darin, zonenresilienz zu erreichen, indem mehrere zonal-VMs in den Zonen 1, 2 und 3 platziert werden. Für den Lastenausgleich können Sie dann einen zonenredundanten Lastenausgleich erstellen und diese virtuellen Computer als Back-End-Instanzen innerhalb des Lastenausgleichs konfigurieren. Der Integritätstest des Load Balancer entfernt automatisch fehlerhafte VMs aus der Verteilung, unabhängig von ihrer Zoneneinordnung.

Wenn Sie ihre virtuellen Computer jedoch in derselben Verfügbarkeitszone bereitstellen möchten, können Sie weiterhin eine zonenredundante Front-End-IP-Konfiguration auf Ihrem Lastenausgleichsmodul bereitstellen, wie das folgende Diagramm veranschaulicht:

Diagramm mit einem zonen-redundanten öffentlichen Load Balancer, der Traffic auf zwei verschiedene VMs in Zone 1 leitet.

Anforderungen

Regionsunterstützung: Zonenredundante Lastenausgleichsgeräte können in jeder Region bereitgestellt werden, die Verfügbarkeitszonen unterstützt.

Kosten

Die Konfiguration der Verfügbarkeitszone ändert nicht die Art und Weise, wie ein Lastenausgleich abgerechnet wird. Die Abrechnung basiert auf der Anzahl der konfigurierten Regeln und der verarbeiteten Daten, unabhängig von der Zonenkonfiguration. Weitere Informationen finden Sie unter Azure Load Balancer – Preise.

Konfigurieren der Unterstützung von Verfügbarkeitszonen

Wenn Sie mit Load Balancer arbeiten, legen Sie die Unterstützung der Verfügbarkeitszone für die Front-End-IP-Konfiguration fest.

  • Erstellen Sie ein neues Lastenausgleichsmodul mit Unterstützung der Verfügbarkeitszone.

  • Ändern Sie die Verfügbarkeitszonenkonfiguration eines vorhandenen Lastenausgleichs. Um die Verfügbarkeitszonenkonfiguration eines vorhandenen Lastenausgleichs zu ändern, müssen Sie die Front-End-IP-Konfiguration ersetzen. Sie können diesen Ansatz verwenden, um von einem Zonal zu einer zonenredundanten Front-End-IP-Konfiguration zu wechseln. Der allgemeine Ansatz lautet:

    1. Erstellen Sie eine neue Front-End-IP-Konfiguration mit der gewünschten Verfügbarkeitszonenkonfiguration.

      Erstellen Sie für öffentliche Lastenausgleichsgeräte zuerst eine neue öffentliche IP-Adresse, die Ihre gewünschte Verfügbarkeitszonenkonfiguration verwendet. Konfigurieren Sie dann Ihren Lastenausgleich neu, um eine Front-End-IP-Konfiguration hinzuzufügen, die auf diese öffentliche IP-Adresse verweist.

      Konfigurieren Sie für interne Load Balancers Ihren Lastenausgleich neu, um eine neue Front-End-IP-Konfiguration mit der gewünschten Verfügbarkeitskonfiguration hinzuzufügen. In diesem Schritt wird eine neue private IP-Adresse aus Ihrem Subnetz zugewiesen.

    2. Konfigurieren Sie Ihre Lastenausgleichsregeln neu, um die neue Front-End-IP-Konfiguration zu verwenden.

      Von Bedeutung

      Für diesen Vorgang müssen Sie Ihre Clients neu konfigurieren, um Datenverkehr an die neue Front-End-IP-Adresse zu senden. Je nach Ihren Kunden kann der Prozess Ausfallzeiten erfordern.

    3. Entfernen Sie die alte Front-End-IP-Konfiguration.

Verhalten, wenn alle Zonen fehlerfrei sind

In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn ein Lastenausgleich eine zonenredundante Front-End-IP-Konfiguration verwendet und alle Verfügbarkeitszonen betriebsbereit sind.

  • Datenverkehrsrouting zwischen Zonen: Load Balancing kann in jeder Verfügbarkeitszone durchgeführt werden. Datenverkehr wird an gesunde Back-End-Instanzen gesendet, die im Back-End-Pool angegeben sind, ohne zu berücksichtigen, in welcher Verfügbarkeitszone sich die Back-End-Instanz befindet.

  • Datenreplikation zwischen Zonen. Lastenausgleich ist ein Netzwerkdurchlaufdienst, der keine Anwendungsdaten speichert oder repliziert. Selbst wenn Sie die Sitzungspersistenz für das Lastenausgleichsmodul aktivieren, wird kein Zustand im Lastenausgleich gespeichert. Die Sitzungspersistenz passt den Hashingprozess an, um Anforderungen an dieselbe Back-End-Instanz weiterzuleiten. Die Sitzungspersistenz ist jedoch nicht garantiert. Wenn sich der Back-End-Pool ändert, wird die Verteilung von Clientanforderungen neu komputiert. Dieser Vorgang erfolgt ohne Speichern oder Synchronisieren des Zustands.

    Der Dienst verwaltet seinen Konfigurationsstatus mit synchroner Replikation über Zonen hinweg und gewährleistet die sofortige Konsistenz von Lastenausgleichsregeln, Konfigurationen von Integritätssonden und Backend-Pool-Mitgliedschaft in allen Zonen.

Verhalten bei einem Zoneausfall

In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn ein Lastenausgleich eine zonenredundante Front-End-IP-Konfiguration verwendet und es einen Ausfall der Verfügbarkeitszone gibt.

  • Erkennung und Reaktion: Die Azure-Plattform ist dafür verantwortlich, einen Fehler in einer Verfügbarkeitszone zu erkennen und darauf zu reagieren. Sie müssen keine Maßnahmen ergreifen, um ein Zonenfailover zu initiieren.
  • Benachrichtigung: Microsoft benachrichtigt Sie nicht automatisch, wenn eine Zone deaktiviert ist. Sie können jedoch Azure Resource Health verwenden, um den Status einer einzelnen Ressource zu überwachen, und Sie können Ressourcenintegritätswarnungen einrichten, um Sie über Probleme zu informieren. Sie können auch Azure Service Health verwenden, um die allgemeine Integrität des Diensts zu verstehen, einschließlich jeglicher Zonenfehler, und Sie können Dienststatuswarnungen einrichten, um Sie über Probleme zu informieren.
  • Aktive Anforderungen: Alle vorhandenen TCP/UDP-Flüsse innerhalb der fehlgeschlagenen Zone werden zurückgesetzt und müssen vom Client erneut versucht werden. Ihre Clients sollten über ausreichende vorübergehende Fehlerbehandlung verfügen, einschließlich automatisierter Wiederholungen.

  • Erwarteter Datenverlust: Als zustandsloser Netzwerkdienst speichert Load Balancer keine Anwendungsdaten, sodass kein Datenverlust auf der Lastenausgleichsebene auftritt.

  • Erwartete Ausfallzeiten: Es wird keine Ausfallzeit für zonenredundante Lastenausgleichsgeräte erwartet, da der Lastenausgleich weiterhin von fehlerfreien Zonen funktioniert.

    Wenn sich der Fehler jedoch auf Computedienste in der Zone auswirkt, können alle virtuellen Computer oder andere Ressourcen, die sich in der betroffenen Zone befinden, nicht verfügbar sein. Die Integritätsprüfungen des Load Balancers sind so konzipiert, dass sie diese Ausfälle erkennen und den Datenverkehr basierend auf dem Lastverteilungsalgorithmus und dem Integritätsstatus der Backend-Instanzen an alternative Instanzen in einer anderen Zone weiterleiten.

  • Verkehrsumleitung: Der Load Balancer arbeitet weiterhin aus den fehlerfreien Zonen. Der Load Balancer behält dieselbe Frontend-IP-Adresse bei Zonenausfällen bei. Dieses Verhalten bedeutet, dass Sie keine DNS-Updates anwenden oder Clients neu konfigurieren müssen. Neue Verbindungen werden automatisch über verbleibende fehlerfreie Zonen eingerichtet.

Zonenwiederherstellung

Wenn eine Verfügbarkeitszone wiederhergestellt wird, setzt Load Balancer automatisch normale Vorgänge fort. Das zonenredundante Frontend beginnt automatisch, Datenverkehr aus der wiederhergestellten Zone zusammen mit anderen Betriebszonen zu verarbeiten. Integritätstests aus dem wiederhergestellten Bereich setzen die Auswertung von Back-End-Instanzen fort.

Wenn der Zonenfehler auch Ihre Compute-Dienste in der Zone betroffen hat, dann werden die Backend-Instanzen, sobald sie in der wiederhergestellten Zone die Integritätsprüfungen bestehen, automatisch wieder dem fehlerfreien Backend-Pool hinzugefügt. Die Datenverkehrsverteilung wird basierend auf dem Lastenausgleichsalgorithmus und dem Gesundheitsstatus der Back-End-Instanzen in allen verfügbaren Zonen neu ausgeglichen.

Test auf Zonenfehler

Die Azure-Plattform verwaltet die Verkehrssteuerung, die Reaktion auf Zonen-Ausfall und die Wiederherstellung. Diese Fähigkeiten werden vollständig verwaltet, sodass Sie keine Ausfallprozesse in Availability Zones initiieren oder überprüfen müssen.

Sie können Azure Chaos Studio verwenden, um den Fehler eines virtuellen Computers in einer einzelnen Zone zu simulieren. Chaos Studio bietet integrierte Fehler für VMs, einschließlich der Möglichkeit, eine VM herunterzufahren. Sie können diese Funktionen verwenden, um Zonenfehler zu simulieren und Ihre Failoverprozesse zu testen.

Widerstandsfähigkeit bei regionalen Ausfällen

Öffentliche und interne Lastenausgleichsgeräte werden in einer einzigen Azure-Region bereitgestellt. Wenn die Region nicht verfügbar ist, sind ihre Lastenausgleichsgeräte in dieser Region ebenfalls nicht verfügbar. Azure Load Balancer bietet jedoch native Unterstützung für mehrere Regionen über den globalen Lastenausgleich, der den Lastenausgleich über Azure-Regionen hinweg ermöglicht. Sie können auch andere Lastenausgleichsdienste bereitstellen, um den Datenverkehr zwischen Azure-Regionen zu routen und ausfallsicher zu gestalten.

Globale Lastenausgleichsgeräte

Global Load Balancer stellt eine einzelne, statische Anycast-IP-Adresse bereit, die den Datenverkehr automatisch an die optimale regionale Bereitstellung basierend auf Clientnähe und regionaler Verfügbarkeit leitet. Globale Lastverteilung kann dazu beitragen, die Zuverlässigkeit und Leistung Ihrer Anwendung zu verbessern.

Mit dem globalen Lastenausgleichsmodul stellen Sie mehrere öffentliche Lastenausgleichsgeräte in verschiedenen Regionen bereit, und der globale Lastenausgleich fungiert als globales Frontend. Wenn die Back-End-Server in einer Region ein Problem haben, wechselt der Datenverkehr automatisch zu fehlerfreien Regionen und ohne DNS-Änderungen, da die anycast-IP-Adresse konstant bleibt und Datenverkehr an eine andere Region weiter leitet.

Weitere Informationen finden Sie unter Global Load Balancer.

Benutzerdefinierte Lösungen mit mehreren Regionen für Resilienz

Azure bietet eine Reihe von Lastenausgleichsdiensten, die unterschiedlichen Anforderungen entsprechen. Sie können einen Lastenausgleich auswählen, der Ihre Resilienzanforderungen erfüllt und für Ihren Anwendungstyp geeignet ist. Weitere Informationen finden Sie unter "Lastenausgleichsoptionen".

Service-Level-Vereinbarung

Der Service level agreement (SLA) für Azure-Dienste beschreibt die erwartete Verfügbarkeit jedes Diensts und die Bedingungen, die Ihre Lösung erfüllen muss, um diese Verfügbarkeitserwartungen zu erreichen. Weitere Informationen finden Sie unter SLAs für Onlinedienste.

Die SLA des Azure Load Balancer gilt, wenn mindestens zwei fehlerfreie VMs als Back-End-Instanzen konfiguriert sind. Die SLA schließt Ausfallzeiten aufgrund von SNAT-Portausschöpfungen oder Netzwerksicherheitsgruppen (NSGs) aus, die den Datenverkehr blockieren.