Globaler Datenverkehr benötigt regionale Verteilung? Konfiguriere einen regionsübergreifenden Load Balancer
Die CloudTrips-Webebene übersteht jetzt den Ausfall einer VM. Beide Backend-VMs und ihr regionaler Load Balancer befinden sich jedoch in Westeuropa. Ein regionaler Ausfall könnte den gesamten öffentlichen Endpunkt unerreichbar machen.
Füge eine kleine Bereitstellung in Nordeuropa hinzu und platziere beide regionalen öffentlichen Load Balancer hinter einem Azure Global Load Balancer, auch Cross-Region Load Balancer genannt.
Globale öffentliche IP
|
Global Load Balancer
|-----------------------------|
Regionaler LB Westeuropa Regionaler LB Nordeuropa
| |
WEB01 und WEB02 WEB01
Der Backend Pool des Global Load Balancers enthält die Frontend-IP- Konfigurationen der regionalen Load Balancer und nicht deren VMs. Jeder regionale Load Balancer wählt danach eine gesunde VM aus seinem eigenen Pool.
Dieser Trip baut auf Eine Webanwendung benötigt Traffic-Verteilung? Erstelle einen Load Balancer auf. Behalte Load Balancer, öffentliche IP, Regel, Probe und beide Web-VMs in Westeuropa. Starte beide VMs, bevor du fortfährst.
Der frühere Global-Peering-Trip erstellte
vnet-cloudtrips-dr-test-neu und snet-dr in Nordeuropa. Verwende sie
erneut. VNet Peering ist für den Global Load Balancer nicht erforderlich: Die
globale Ebene verbindet die öffentlichen Frontends der regionalen Load
Balancer.
Dieses Lab fügt einen regionalen Load Balancer, eine öffentliche IP, eine NSG, eine VM, einen Datenträger und einen Global Load Balancer hinzu. Führe den Test zeitnah durch und bereinige danach die Ressourcen.
Das Nordeuropa-Subnetz vorbereiten
Erstelle nsg-cloudtrips-web-test-neu in
rg-cloudtrips-network-test-weu mit North Europe als Region. Füge diese
Inbound-Regel hinzu:
Source: Service Tag
Source service tag: Internet
Destination: IP Addresses
Destination IP addresses/CIDR ranges: 10.50.1.0/24
Service: HTTP
Action: Allow
Priority: 100
Name: Allow-HTTP-LoadBalancer
Ordne die NSG vnet-cloudtrips-dr-test-neu/snet-dr zu. Ihre Standardregel
AllowAzureLoadBalancerInBound erlaubt Azure Health Probes.
Den regionalen Nordeuropa Load Balancer erstellen
Suche nach Load balancers und wähle Create > Standard Load Balancer. Konfiguriere:
Subscription: CloudTrips TEST
Resource group: rg-cloudtrips-network-test-weu
Name: lb-cloudtrips-web-test-neu
Region: North Europe
SKU: Standard
Type: Public
Tier: Regional
Füge das Frontend hinzu:
Name: fe-cloudtrips-web-test-neu
IP version: IPv4
Public IP: Create new
Public IP name: pip-cloudtrips-lb-test-neu
SKU: Standard
Availability zone: Zone-redundant
Routing preference: Microsoft network
Füge einen leeren NIC-basierten Backend Pool hinzu:
Name: be-cloudtrips-web-test-neu
Virtual network: vnet-cloudtrips-dr-test-neu
Backend pool configuration: NIC
Füge eine Load-Balancing-Regel hinzu:
Name: rule-http-80
Frontend: fe-cloudtrips-web-test-neu
Backend pool: be-cloudtrips-web-test-neu
Protocol: TCP
Frontend port: 80
Backend port: 80
Health probe: Create new
Probe name: probe-tcp-80
Probe protocol: TCP
Probe port: 80
Session persistence: None
TCP reset: Enabled
Floating IP: Disabled
Wähle Review + create und danach Create.
Ein Nordeuropa-Backend hinzufügen
Erstelle eine kostenbewusste Test-VM:
Name: vm-cloudtrips-web01-test-neu
Resource group: rg-cloudtrips-network-test-weu
Region: North Europe
Availability options: No infrastructure redundancy required
Security type: Standard
Image: Ubuntu Server 24.04 LTS - x64 Gen2
Size: Standard_D2s_v3
Public inbound ports: None
Virtual network: vnet-cloudtrips-dr-test-neu
Subnet: snet-dr
Public IP: None
NIC network security group: None
Load balancing option: Azure load balancer
Load balancer: lb-cloudtrips-web-test-neu
Backend pool: be-cloudtrips-web-test-neu
Aktiviere die Löschung von NIC und Betriebssystemdatenträger zusammen mit der VM. Dieses Lab verwendet zur Kostenbegrenzung nur eine Nordeuropa-VM. In der Produktion wären mindestens zwei Instanzen über Fehlerdomänen verteilt.
Öffne nach der Bereitstellung Operations > Run command > RunShellScript und führe aus:
sudo mkdir -p /opt/cloudtrips-web
printf '%s\n' 'CloudTrips response from NORTH EUROPE' | sudo tee /opt/cloudtrips-web/index.html >/dev/null
printf '%s\n' \
'[Unit]' \
'Description=CloudTrips test web server' \
'After=network.target' \
'' \
'[Service]' \
'ExecStart=/usr/bin/python3 -m http.server 80 --bind 0.0.0.0 --directory /opt/cloudtrips-web' \
'Restart=always' \
'' \
'[Install]' \
'WantedBy=multi-user.target' \
| sudo tee /etc/systemd/system/cloudtrips-web.service >/dev/null
sudo systemctl daemon-reload
sudo systemctl enable --now cloudtrips-web
curl --silent http://127.0.0.1
Öffne lb-cloudtrips-web-test-neu und bestätige die VM-NIC im Backend Pool.
Teste danach die regionale öffentliche IP von deinem Mac:
curl http://<north-europe-regional-public-ip>
Die Antwort sollte CloudTrips response from NORTH EUROPE lauten.

Den Global Load Balancer erstellen
Erstelle einen weiteren Standard Load Balancer:
Subscription: CloudTrips TEST
Resource group: rg-cloudtrips-network-test-weu
Name: lb-cloudtrips-web-global
Region: West Europe
SKU: Standard
Type: Public
Tier: Global
Westeuropa ist die Home Region des Global Load Balancers. Sie speichert die Azure-Ressource, zwingt Benutzer jedoch nicht durch Westeuropa. Das globale Frontend ist eine statische Anycast-IP, die an vielen Azure-Standorten angekündigt wird. Dadurch kann der Datenverkehr nahe beim Client in das Microsoft-Netzwerk eintreten.
Füge das globale Frontend hinzu:
Name: fe-cloudtrips-web-global
IP version: IPv4
Public IP: Create new
Public IP name: pip-cloudtrips-lb-global
Public IP tier: Global
Füge den Backend Pool be-cloudtrips-regions-global hinzu. Füge unter Load
balancers diese regionalen Frontends hinzu:
lb-cloudtrips-web-test-weu / fe-cloudtrips-web-test-weu
lb-cloudtrips-web-test-neu / fe-cloudtrips-web-test-neu

Füge die globale Regel hinzu:
Name: rule-http-80-global
Frontend IP: fe-cloudtrips-web-global
Backend pool: be-cloudtrips-regions-global
Protocol: TCP
Frontend port: 80
Backend port: 80
Session persistence: None
Idle timeout: 15 minutes
TCP reset: Enabled
Floating IP: Disabled
Der globale Backend-Port muss dem Frontend-Port beider regionaler Regeln entsprechen. Hier wird kein eigener Probe ausgewählt. Der Global Load Balancer prüft automatisch die von den regionalen Load Balancern gemeldete Verfügbarkeit.
Wähle Review + create und danach Create. Notiere die globale öffentliche IP-Adresse.

Regionales Routing und Failover testen
Sende von deinem Mac mehrere Anfragen an die globale IP:
for request in {1..5}; do
curl --connect-timeout 10 http://<global-load-balancer-public-ip>
done
Der Global Load Balancer verwendet geografische Nähe und keine strikte Abwechslung. Von Österreich kommt die normale Antwort wahrscheinlich aus Westeuropa; die genaue Auswahl ist nicht garantiert.

Gib jetzt beide Westeuropa-Backends frei:
az vm deallocate --resource-group rg-cloudtrips-network-test-weu --name vm-cloudtrips-web01-test-weu
az vm deallocate --resource-group rg-cloudtrips-network-test-weu --name vm-cloudtrips-web02-test-weu
Die regionalen Probes melden schließlich keine gesunden Westeuropa-Backends mehr. Der Global Load Balancer prüft die regionale Verfügbarkeit alle fünf Sekunden und nimmt das ungesunde regionale Frontend aus der Rotation. Teste die globale IP bis zu einer Minute erneut:
for request in {1..12}; do
curl --connect-timeout 10 http://<global-load-balancer-public-ip>
sleep 5
done
Die Antwort sollte wechseln zu:
CloudTrips response from NORTH EUROPE

Damit ist regionales Failover auf Layer 4 bewiesen. Anwendungsdaten werden nicht zwischen Regionen repliziert; die Anwendung muss das separat lösen.
Die Cross-Region-Erweiterung bereinigen
Die folgenden Application-Gateway-Trips benötigen nur die Westeuropa-Web-VMs. Starte sie wieder:
az vm start --resource-group rg-cloudtrips-network-test-weu --name vm-cloudtrips-web01-test-weu
az vm start --resource-group rg-cloudtrips-network-test-weu --name vm-cloudtrips-web02-test-weu
Behalte den ursprünglichen regionalen Westeuropa Load Balancer.
Lösche die temporären regionsübergreifenden Ressourcen:
lb-cloudtrips-web-global
pip-cloudtrips-lb-global
lb-cloudtrips-web-test-neu
pip-cloudtrips-lb-test-neu
vm-cloudtrips-web01-test-neu mit NIC und Datenträger
nsg-cloudtrips-web-test-neu
Behalte vnet-cloudtrips-dr-test-neu für spätere Network-Manager- und
regionale Networking-Übungen.