Oefening: automatische failover inschakelen met behulp van prioriteitsroutering

Voltooid

Stel dat uw toepassing voor muziekstreaming een gelijke verdeling heeft van gebruikers in west-Verenigde Staten en West-Europa. U wilt een failoverversie van de app in één regio hebben.

In de voorbeeldtoepassing die we voor deze oefening gebruiken, wordt de regio weergegeven waarin deze wordt uitgevoerd. Een van de twee instanties heeft een hogere prioriteit en is het primaire eindpunt. Het andere exemplaar heeft een lagere prioriteit en is het failover-eindpunt. Als u het primaire eindpunt offline haalt, wordt al het verkeer automatisch gerouteerd naar het failover-eindpunt.

In deze oefening stelt u Traffic Manager in om het eindpunt van de Verenigde Staten te gebruiken als primair, waarbij u een failover naar het Europese eindpunt uitvoert als er fouten optreden.

Een nieuw Traffic Manager-profiel maken

  1. Voer de volgende opdracht uit in Cloud Shell om een nieuw Traffic Manager-profiel te maken:

    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
    

    U gebruikt deze parameters in de opdracht:

    • --routing-method Priority: Hiermee maakt u het Traffic Manager-profiel met behulp van de prioriteitsrouteringsmethode.
    • --unique-dns-name: hiermee maakt u de wereldwijd unieke domeinnaam <unique-dns-name>.trafficmanager.net. We gebruiken de $RANDOM Bash-functie om een willekeurig geheel getal te retourneren om ervoor te zorgen dat de naam uniek is.

De webtoepassingen implementeren

  1. Voer de volgende opdracht uit om een Resource Manager-sjabloon te implementeren. Met de sjabloon worden twee servers gemaakt, één in de regio Europa - west en één in de regio VS - west 2. Wees geduldig, omdat de implementatie enkele minuten kan duren.

    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)"
    

De eindpunten toevoegen aan Traffic Manager

  1. De webtoepassingen worden nu uitgevoerd op virtuele machines. Voer de volgende commando's uit om de openbare IP-adresresources van de virtuele machines als eindpunten toe te voegen aan het Traffic Manager-profiel:

    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
    

    Met de code worden de resource-id's opgehaald van beide virtuele machines. Vervolgens gebruikt de code de id's om ze toe te voegen als eindpunten aan het Traffic Manager-profiel. De code gebruikt de vlag --priority om de app VS - west in te stellen op de hoogste prioriteit.

  2. Laten we eens kijken naar de eindpunten die we hebben geconfigureerd. Voer de volgende opdracht uit:

    az network traffic-manager endpoint list \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --output table
    

De app testen

  1. Laten we eens kijken wat DNS laat zien voor de web-apps en voor ons Traffic Manager-profiel. Voer de volgende opdrachten uit om de IP-adressen weer te geven voor elk van de resources die we hebben gemaakt.

  2. Haal het adres op voor de web-app West VS 2.

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  3. Haal het adres op voor de web-app Europa - west:

    nslookup $(az network public-ip show \
            --resource-group "<rgn>[Sandbox resource group]</rgn>" \
            --name westeurope-vm-nic-pip \
            --query dnsSettings.fqdn \
            --output tsv)
    
  4. Haal het adres voor het Traffic Manager-profiel op:

    # 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)
    

    Het adres voor het Traffic Manager-profiel moet overeenkomen met het IP-adres voor de westus2-vm-nic-pip openbare IP die is toegewezen aan de westus2-vm virtuele machine.

  5. Voer de volgende opdracht uit om naar de FQDN (Fully Qualified Domain Name) van het Traffic Manager-profiel te gaan. Uw aanvraag wordt doorgestuurd naar het eindpunt dat reageert met de hoogste prioriteit.

    echo http://$(az network traffic-manager profile show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name TM-MusicStream-Priority \
        --query dnsConfig.fqdn \
        --output tsv)
    

    De code drukt de FQDN af in Cloud Shell. Selecteer de FQDN om een nieuw browservenster of tabblad te openen.

  6. Controleer of de toepassing werkt en of de locatie onderaan de pagina West US 2 is.

    Schermopname van de web-app die draait in West-VS.

  7. Voer de volgende opdracht uit om het primaire eindpunt uit te schakelen:

    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
    
  8. Laten we eens kijken wat DNS weergeeft voor de web-apps en voor ons Traffic Manager-profiel.

  9. Haal het adres op voor de West US 2 webapp.

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  10. Haal het adres op voor de web-app Europa - west.:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westeurope-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  11. Haal het adres voor het Traffic Manager-profiel op:

    nslookup $(az network traffic-manager profile show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name TM-MusicStream-Priority \
                --query dnsConfig.fqdn \
                --output tsv)
    

    Het adres voor het Traffic Manager-profiel moet nu overeenkomen met de web-app Europa - west.

  12. Test de toepassing opnieuw vanuit uw browser door de webpagina te vernieuwen. Traffic Manager moet het verkeer automatisch omleiden naar het eindpunt europa - west. Afhankelijk van uw browser kan het enkele minuten duren voordat het lokaal in de cache opgeslagen adres verloopt. Als u de site opent in een privévenster, moet de cache worden overgeslagen, zodat u de wijziging direct kunt zien.

    Schermopname van de actieve web-app Europa - west.