Exercice - Activer le basculement automatique à l’aide du routage par priorité

Effectué

Supposons que votre application de musique en streaming a une distribution égale des utilisateurs dans l’Ouest des États-Unis et l’Ouest de l’Europe. Vous souhaitez avoir une version de basculement de l’application dans une région.

L’exemple d’application que nous allons utiliser pour cet exercice indique la région où l’application est exécutée. L’une des deux instances a une priorité plus élevée et constitue le point de terminaison principal. L’autre instance a une priorité moins élevée et représente le point de terminaison de basculement. La mise hors connexion du point de terminaison principal route automatiquement tout le trafic vers le point de terminaison de basculement.

Dans cet exercice, vous allez configurer Traffic Manager pour utiliser le point de terminaison situé aux États-Unis comme point principal, et basculer vers le point de terminaison situé en Europe en cas d’erreur.

Créer un profil Traffic Manager

  1. Exécutez la commande suivante dans Cloud Shell pour créer un nouveau profil Traffic Manager :

    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
    

    Vous utilisez ces paramètres dans la commande :

    • --routing-method Priority : crée le profil Traffic Manager à l’aide de la méthode de routage par priorité.
    • --unique-dns-name : crée le nom de domaine global unique <unique-dns-name>.trafficmanager.net. Nous utilisons la fonction Bash $RANDOM pour retourner un nombre entier aléatoire afin que le nom soit unique.

Déployer l’application web

  1. Exécutez la commande suivante pour déployer un modèle Resource Manager. Le modèle crée deux serveurs, un dans la région Europe Ouest et l’autre dans la région USA Ouest 2. Soyez patient, car le déploiement peut prendre plusieurs minutes.

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

Ajouter les points de terminaison au profil Traffic Manager

  1. Les applications web s’exécutent désormais sur des machines virtuelles. Exécutez les commandes suivantes pour ajouter les ressources d’adresse IP publique des machines virtuelles comme points de terminaison au profil Traffic Manager :

    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
    

    Le code obtient les ID de ressource des deux machines virtuelles. Ensuite, le code utilise ces ID pour les ajouter comme points de terminaison au profil Traffic Manager. Le code utilise l’indicateur --priority pour définir l’application déployée dans la région USA Ouest sur la priorité la plus élevée.

  2. Jetons un œil aux points de terminaison que nous avons configurés. Exécutez la commande suivante :

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

Tester l’application

  1. Examinons ce que montre DNS pour les applications web et pour notre profil Traffic Manager. Exécutez les commandes suivantes pour afficher les adresses IP de chacune des ressources que nous avons créées.

  2. Récupérez l’adresse de l’application web pour la région USA Ouest 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. Récupérez l’adresse de l’application web pour la région Europe Ouest :

    nslookup $(az network public-ip show \
            --resource-group "<rgn>[Sandbox resource group]</rgn>" \
            --name westeurope-vm-nic-pip \
            --query dnsSettings.fqdn \
            --output tsv)
    
  4. Récupérez l’adresse du profil Traffic Manager :

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

    L’adresse du profil Traffic Manager doit correspondre à l’adresse IP de l’IP publique westus2-vm-nic-pip affecté à la machine virtuelle westus2-vm.

  5. Exécutez la commande suivante pour accéder au nom de domaine complet (FQDN) du profil Traffic Manager. Votre requête est routée vers le point de terminaison qui répond avec la priorité la plus élevée.

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

    Le code affiche le nom de domaine complet dans Cloud Shell. Sélectionnez le nom de domaine complet pour ouvrir un nouvel onglet ou une nouvelle fenêtre de navigateur.

  6. Vérifiez que l’application fonctionne et que la localisation indiquée au bas de la page est USA Ouest 2 :

    Screenshot of the running West US web app.

  7. Exécutez la commande suivante pour désactiver le point de terminaison principal :

    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. Rejetons un œil à ce que montre DNS pour les applications web et pour notre profil Traffic Manager.

  9. Récupérez l’adresse de l’application web pour la région USA Ouest 2 :

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  10. Récupérez l’adresse de l’application web pour la région Europe Ouest :

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westeurope-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  11. Récupérez l’adresse du profil Traffic Manager :

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

    L’adresse pour le profil Traffic Manager doit maintenant correspondre à l’application web déployée dans la région Europe Ouest.

  12. Retestez l’application à partir de votre navigateur en actualisant la page web. Traffic Manager doit rediriger automatiquement le trafic vers le point de terminaison Europe Ouest. Selon votre navigateur, le délai d’expiration de l’adresse mise en cache localement est plus ou moins long. L’ouverture du site dans une fenêtre privée doit ignorer ce cache, pour vous permettre de voir le changement immédiatement.

    Screenshot of the running West Europe web app.