Übung: Aktivieren des automatischen Failovers mithilfe des prioritätsbasierten Routings
Angenommen, Ihre Musikstreaming-Anwendung hat eine gleiche Verteilung von Benutzern in den westlichen USA und Westeuropa. Sie möchten über eine Failoverversion der App in einer Region verfügen.
Die Beispielanwendung, die wir für diese Übung verwenden, zeigt den Bereich an, in dem sie ausgeführt wird. Eine der beiden Instanzen hat eine höhere Priorität und ist der primäre Endpunkt. Die andere Instanz hat eine niedrigere Priorität und ist der Failoverendpunkt. Wenn der primäre Endpunkt offline ist, wird automatisch der gesamte Datenverkehr an den Failoverendpunkt weitergeleitet.
In dieser Übung richten Sie Traffic Manager so ein, dass der Endpunkt der Vereinigten Staaten als primärer Endpunkt verwendet wird und im Fehlerfall auf den europäischen Endpunkt zurückgefallen wird.
Erstellen eines neuen Traffic Manager-Profils
Führen Sie den folgenden Befehl in Cloud Shell aus, um ein neues Traffic Manager-Profil zu erstellen:
az network traffic-manager profile create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --routing-method Priority \ --unique-dns-name TM-MusicStream-Priority-$RANDOM
Sie verwenden diese Parameter im Befehl:
- --routing-method Priority: Erstellt das Traffic Manager-Profil mithilfe der Prioritätsroutingmethode.
-
--unique-dns-name: Erstellt den global eindeutigen Domänennamen
<unique-dns-name>.trafficmanager.net
. Wir verwenden die$RANDOM
Bash-Funktion, um eine zufällige ganze Zahl zurückzugeben, um sicherzustellen, dass der Name eindeutig ist.
Bereitstellen der Webanwendungen
Führen Sie den folgenden Befehl aus, um eine Resource Manager-Vorlage bereitzustellen. Die Vorlage erstellt zwei Server, eine in der Region Westeuropa und eine in der Region West-USA 2. Seien Sie geduldig, da die Bereitstellung einige Minuten dauern kann.
az deployment group create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --template-uri https://raw.githubusercontent.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager/master/azuredeploy.json \ --parameters password="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
Hinzufügen der Endpunkte zum Traffic Manager
Die Webanwendungen werden jetzt auf virtuellen Computern ausgeführt. Führen Sie die folgenden Befehle aus, um die öffentlichen IP-Adressressourcen der virtuellen Computer als Endpunkte zum Traffic Manager-Profil hinzuzufügen:
WestId=$(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westus2-vm-nic-pip \ --query id \ --output tsv) az network traffic-manager endpoint create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --profile-name TM-MusicStream-Priority \ --name "Primary-WestUS" \ --type azureEndpoints \ --priority 1 \ --target-resource-id $WestId
WestId=$(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westeurope-vm-nic-pip \ --query id \ --output tsv) az network traffic-manager endpoint create \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --profile-name TM-MusicStream-Priority \ --name "Failover-WestEurope" \ --type azureEndpoints \ --priority 2 \ --target-resource-id $WestId
Der Code ruft die Ressourcen-IDs von beiden virtuellen Computern ab. Anschließend verwendet der Code die IDs, um sie als Endpunkte zum Traffic Manager-Profil hinzuzufügen. Der Code verwendet die
--priority
Kennzeichnung, um die West-US-App auf die höchste Priorität festzulegen.Sehen wir uns die von uns konfigurierten Endpunkte schnell an. Führen Sie den folgenden Befehl aus:
az network traffic-manager endpoint list \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --profile-name TM-MusicStream-Priority \ --output table
Testen der App
Sehen wir uns an, was DNS für die Web-Apps und unser Traffic Manager-Profil zeigt. Führen Sie die folgenden Befehle aus, um die IP-Adressen für jede der von uns erstellten Ressourcen anzuzeigen.
Abrufen der Adresse für die Web-App "West US 2":
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westus2-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Rufen Sie die Adresse für die Westeuropa-Web-App ab:
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westeurope-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Rufen Sie die Adresse für das Traffic Manager-Profil ab:
# Retrieve the address for the Traffic Manager profile nslookup $(az network traffic-manager profile show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --query dnsConfig.fqdn \ --output tsv)
Die Adresse für das Traffic Manager-Profil sollte mit der IP-Adresse für die öffentliche IP-Adresse "westus2-vm-nic-pip " übereinstimmen, die dem virtuellen Computer "westus2-vm " zugewiesen ist.
Führen Sie den folgenden Befehl aus, um zum vollqualifizierten Domänennamen (FQDN) des Traffic Manager-Profils zu wechseln. Ihre Anforderung wird an den Endpunkt weitergeleitet, der mit der höchsten Priorität antwortet.
echo http://$(az network traffic-manager profile show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --query dnsConfig.fqdn \ --output tsv)
Der Code druckt den FQDN in Cloud Shell aus. Wählen Sie den FQDN aus, um ein neues Browserfenster oder eine neue Registerkarte zu öffnen.
Vergewissern Sie sich, dass die Anwendung funktioniert und die Position, die unten auf der Seite angezeigt wird, west US 2 ist:
Führen Sie den folgenden Befehl aus, um den primären Endpunkt zu deaktivieren:
az network traffic-manager endpoint update \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name "Primary-WestUS" \ --profile-name TM-MusicStream-Priority \ --type azureEndpoints \ --endpoint-status Disabled
Sehen wir uns erneut an, was DNS für die Web-Apps und unser Traffic Manager-Profil zeigt.
Abrufen der Adresse für die Web-App "West US 2":
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westus2-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Rufen Sie die Adresse für die Westeuropa-Web-App ab:
nslookup $(az network public-ip show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name westeurope-vm-nic-pip \ --query dnsSettings.fqdn \ --output tsv)
Rufen Sie die Adresse für das Traffic Manager-Profil ab.
nslookup $(az network traffic-manager profile show \ --resource-group "<rgn>[Sandbox resource group]</rgn>" \ --name TM-MusicStream-Priority \ --query dnsConfig.fqdn \ --output tsv)
Die Adresse für das Traffic Manager-Profil sollte nun mit der Web-App in Westeuropa übereinstimmen.
Testen Sie die Anwendung erneut über Ihren Browser, indem Sie die Webseite aktualisieren. Traffic Manager sollte den Datenverkehr automatisch an den Endpunkt Westeuropa umleiten. Je nach Browser kann es einige Minuten dauern, bis die lokal zwischengespeicherte Adresse abläuft. Wenn Sie die Website in einem privaten Fenster öffnen, sollte der Cache umgangen werden, damit Sie die Änderung sofort sehen können.