Ejercicio: Habilitación de la conmutación automática por error con enrutamiento por prioridad

Completado

Supongamos que su aplicación de música en streaming tiene una distribución equitativa de usuarios en el oeste de Estados Unidos y el oeste de Europa. Le gustaría tener una versión de conmutación por error de la aplicación en una de las regiones.

La aplicación de ejemplo que se usa en este ejercicio muestra la región en la que se ejecuta. Una de las dos instancias tiene mayor prioridad y es el punto de conexión principal. La otra instancia tiene una prioridad más baja y es el punto de conexión de conmutación por error. Si se desconecta el punto de conexión principal, todo el tráfico se enruta automáticamente al punto de conexión de conmutación por error.

En este ejercicio, configurará Traffic Manager para usar el punto de conexión de Estados Unidos como principal, y este conmutará por error al punto de conexión de Europa si se produce algún error.

Creación de un perfil de Traffic Manager

  1. Ejecute el comando siguiente en Cloud Shell para crear un nuevo perfil de 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
    

    En el comando se usan estos parámetros:

    • --routing-method Priority: crea el perfil de Traffic Manager mediante el método de enrutamiento por prioridad.
    • --unique-dns-name: crea el nombre de dominio único global <unique-dns-name>.trafficmanager.net. Se usa la función de Bash $RANDOM para devolver un número entero aleatorio a fin de garantizar que el nombre sea único.

Implementación de las aplicaciones web

  1. Ejecute el siguiente comando para implementar una plantilla de Resource Manager. La plantilla crea dos servidores, uno en la región Oeste de Europa y otro en la región Oeste de EE. UU. 2. Tenga paciencia, ya que la implementación puede tardar unos minutos.

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

Adición de los puntos de conexión a Traffic Manager

  1. Ahora las aplicaciones web se ejecutan en máquinas virtuales. Ejecute los comandos siguientes para agregar los recursos de dirección IP pública de las máquinas virtuales como puntos de conexión al perfil de 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
    

    El código obtiene los identificadores de recursos de las dos máquinas virtuales. Después, usa los identificadores para agregarlos como puntos de conexión al perfil de Traffic Manager. Asimismo, el código usa la marca --priority para establecer la aplicación de Oeste de EE. UU. en la prioridad más alta.

  2. Echemos un vistazo rápido a los puntos de conexión que hemos configurado. Ejecute el siguiente comando:

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

Prueba de la aplicación

  1. A continuación se verá lo que muestra DNS para las aplicaciones web y el perfil de Traffic Manager. Ejecute los comandos siguientes para mostrar las direcciones IP de cada uno de los recursos que se han creado.

  2. Recupere la dirección de la aplicación web para el Oeste de EE. UU. 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. Recupere la dirección de la aplicación web de la región Oeste de Europa:

    nslookup $(az network public-ip show \
            --resource-group "<rgn>[Sandbox resource group]</rgn>" \
            --name westeurope-vm-nic-pip \
            --query dnsSettings.fqdn \
            --output tsv)
    
  4. Recupere la dirección del perfil de 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)
    

    La dirección del perfil de Traffic Manager debe coincidir con la dirección IP de la dirección IP pública westus2-vm-nic-pip asignada a la máquina virtual westus2-vm.

  5. Ejecute el comando siguiente para ir al nombre de dominio completo (FQDN) del perfil de Traffic Manager. La solicitud se enruta al punto de conexión que responde con la prioridad más alta.

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

    El código imprime el FQDN en Cloud Shell. Seleccione el FQDN para abrir una nueva ventana o pestaña del explorador.

  6. Compruebe que la aplicación funciona y que la ubicación que se muestra en la parte inferior de la página es Oeste de EE. UU. 2:

    Screenshot of the running West US web app.

  7. Ejecute el comando siguiente para deshabilitar el punto de conexión 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. Veamos de nuevo lo que muestra DNS para las aplicaciones web y para nuestro perfil de Traffic Manager.

  9. Recupere la dirección de la aplicación web para el Oeste de EE. UU. 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. Recupere la dirección de la aplicación web de la región Oeste de Europa:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westeurope-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  11. Recupere la dirección del perfil de 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)
    

    La dirección del perfil de Traffic Manager debe coincidir ahora con la aplicación web de la región Oeste de Europa.

  12. Actualice la página web del explorador para volver a probar la aplicación. Traffic Manager debe redirigir automáticamente el tráfico al punto de conexión de la región Oeste de Europa. Según el explorador, es posible que la dirección almacenada en la caché local tarde unos minutos en expirar. La apertura del sitio en una ventana privada debería sortear la caché y permitir ver el cambio de inmediato.

    Screenshot of the running West Europe web app.