Tags: Azure, Load Balancing, Web-Server
Um die Last von Anfragen aus dem Internet auf die Backend-Systeme zu verteilen, sieht Azure seinen Load-Balancer vor. Dieser gibt etwa HTTP-Anfragen auf Port 80 an IIS-Server weiter und prüft via Health-Probe den Dienststatus. So stellt er sicher, dass Clients beim Ausfall eines Web-Servers auf andere verbunden werden.
In einem vorangegangenen Beitrag habe ich bereits die Möglichkeiten des Load-Balancings mit dem Lastenverteilungsmodul von Azure dargestellt. Diese Anleitung zeigt nun die Einrichtung eines public Load-Balancers. Voraussetzung dafür ist grundlegend natürlich eine Azure-Subscription.
Schritte zur Einrichtung einer Lastverteilung
Folgender Fahrplan ist eine Möglichkeit zur Konfiguration:
- eine Ressourcengruppe erstellen, welche alle Komponenten aufnimmt
- das virtuelle Netzwerk festlegen
- virtuelle Maschinen definieren
- Network-Security-Groups (NSG) für Port 80 vorbereiten
- den öffentlichen Load-Balancer inklusive Health Probe und TCP-80-Regel konfigurieren
Ressourcengruppe und virtuelles Netzwerk
Zu Beginn richten wir eine Ressourcengruppe ein, welche später als Container für alle Komponenten dient. In meinem Fall heißt diese kueppers.lab, sie wird in weiteren Konfigurationen immer wieder verwendet. Als Region lege ich West Europa fest.
Zusätzlich erstelle ich ein virtuelles Netzwerk samt IP-Bereich für die VMs, dieses lege ich in der vorhandenen Ressourcengruppe ab. Der Adressraum ist 172.16.0.0/16 (CIDR Notation) und das Subnetz A 172.16.5.0/24.
Virtuelle Maschinen für den Backend-Pool
Damit die TCP-Anfragen später auf Maschinen im Backend verteilt werden können, sind mindestens zwei davon erforderlich. Für diese Anleitung erstelle ich zwei VMs mit Windows Server 2019 Datacenter, welche dann den IIS-Dienst 10.0 ausführen.
Auch sie ordne ich der anfangs definierten Ressourcengruppe zu. Die Maschinen werden durch Network-Security-Groups abgesichert, der TCP-Port 80 wird hier eingehend geöffnet.
Öffentlichen Load-Balancer erstellen
Den Public Load-Balancer kann man wie üblich über den Marketplace (Marktplatz) beziehen, oder vielleicht haben Sie dafür schon einen Favoriten angelegt. Über Create Load-Balancer (Erstellen) oder Add (Hinzufügen) gelangt man zum Konfigurationsassistenten.
Dieser fragt wieder nach der Ressourcengruppe, dem Typ des Lastenausgleichs und der Region. In unserem Fall soll der Load-Balancer vom Internet aus erreichbar sein, also vom Typ Public.
In diesem Zug wird gleichzeitig, falls noch nicht vorhanden, eine neue öffentliche IP erstellt. Beim SKU wählen wir Standard, den Unterschied zu Basic habe ich bereits im oben verlinkten Beitrag erläutert.
Nachdem die entsprechenden Werte festgelegt wurden, validiert der Prozess meine Eingaben und gibt sie in einer Übersicht aus. Über Erstellen (Create) wird das Lastenausgleichsmodul erstellt.
Der Fortschritt der Bereitstellung kann in der Übersicht verfolgt werden. Von hier erreicht man den Load-Balancer dann auch nach dem Abschluss des Deployments. In meinem Fall heißt er LB-Lab.
Nach dem Klick auf den Link können wir unterhalb den Load-Balancer jetzt weiter anpassen. Dazu zählt die Frontend-IP-Konfiguration, welche zuvor neu festgelegt wurde. Danach kann der Backend-Pool definiert werden.
Dieser besteht in unserem Fall aus den bereits erstellten virtuellen Maschinen SRV-2019-01 und SRV-2019-02. In beiden habe ich den Web-Server aktiviert. Durch die Festlegung des virtuellen Netzwerkes erhalten beide eine IP aus diesem Bereich, also 172.16.5.4 und 172.16.5.5.
Danach konfiguriere ich die Health Probe für Port 80. Geben Sie hier einen Namen, das Protokoll, den Port, das Prüfintervall und einen Schwellenwert an.
Abschließend definieren wir eine Regel für den Lastenausgleich. Dafür sind ein Name nötig, sowie die IP Version. Hier lässt sich auch die Frontend-IP-Adresse auswählen, welche aus dem Internet erreichbar ist. Weiter geht es zum Port, dem Backend-Port, des Backend-Pools und der Health Probe.
Nachdem diese Regel angelegt wurde, können die virtuellen Server aus dem Internet über den Load-Balancer erreicht werden.
Dieser regelt die eingehenden Anfragen über seinen standardmäßigen 5-Tuple-Hash. Solange sich hier keine Ausgangswerte ändern, landen Sie mit dem gleichen Client immer wieder auf dem gleichen IIS-Server. Fahren wir aber zum Test einen Server herunter, sollte das der Health Probe erkennen und uns auf die zweite VM umleiten.
Täglich Know-how für IT-Pros mit unserem Newsletter
Marcel Küppers arbeitet seit über 25 Jahren in der IT, aktuell als Team Leader, zuvor als Consultant und Infrastructure Architect unter anderem für den japanischen Konzern JTEKT/TOYODA mit Verantwortung über die Europastandorte Krefeld und Paris.
Darüber hinaus wirkte er als Berater im EU-Projekt-Team für alle Lokationen des Konzerns mit und ist spezialisiert auf hochverfügbare virtualisierte Microsoft-Umgebungen plus Hybrid Cloud Solutions.
Zertifizierungen: MS Specialist und MCTS für Hyper-V/SCVMM, MCSE, MCITP, MCSA. Zusätzlich zertifiziert für PRINCE2 Projektmanagementmethode.
Ähnliche Beiträge
- Web-Anwendungen über Azure App Services (hochverfügbar) betreiben
- Verfügbarkeit von Azure-VMs: SLA abhängig von Disk-Typ und Availability Set
- Azure Load-Balancer: Lastverteilung für Cloud-Dienste und virtuelle Maschinen
- KEMP LoadMaster 2400: Lastverteilung zwischen Web-Servern
- Verfügbare Azure-VMs in einer Region mit PowerShell anzeigen
Weitere Links