Ejercicio: Configuración de un equilibrador de carga público

Completado

Puede configurar Azure Load Balancer mediante Azure Portal, PowerShell o la CLI de Azure.

En la organización de atención sanitaria, quiere equilibrar la carga del tráfico de cliente para proporcionar una respuesta coherente en función del estado de los servidores web del portal de pacientes. Dispone de dos máquinas virtuales en un conjunto de disponibilidad configuradas para que actúen como aplicación web del portal de atención sanitaria.

Aquí, crea un recurso de equilibrador de carga y lo usa para distribuir una carga entre las máquinas virtuales.

Implementación de la aplicación web del portal de pacientes

En primer lugar, implemente la aplicación del portal de pacientes en dos máquinas virtuales en un solo conjunto de disponibilidad. Para ahorrar tiempo, primero se ejecutará un script para crear esta aplicación. El script:

  • Crea una red virtual y una infraestructura de red para las máquinas virtuales.
  • Crea dos máquinas virtuales en esta red virtual.

Para implementar la aplicación web del portal de pacientes:

  1. Ejecute el comando git clone siguiente en Azure Cloud Shell. El comando clona el repositorio que contiene el origen de la aplicación y ejecuta el script de instalación desde GitHub. Después, cambia al directorio del repositorio clonado.

    git clone https://github.com/MicrosoftDocs/mslearn-improve-app-scalability-resiliency-with-load-balancer.git
    cd mslearn-improve-app-scalability-resiliency-with-load-balancer
    
  2. Como su nombre indica, el script genera dos máquinas virtuales en un solo conjunto de disponibilidad. Se tarda unos dos minutos en ejecutarse.

    bash create-high-availability-vm-with-sets.sh <rgn>[sandbox resource group name]</rgn>
    
  3. Cuando finalice el script, en el menú de Azure Portal o la página Inicio, seleccione Grupos de recursos y luego el grupo de recursos [nombre del grupo de recursos del espacio aislado]. Revise los recursos creados por el script.

Creación de un equilibrador de carga

Ahora vamos a crear el equilibrador de carga.

  1. En el menú de Azure Portal o la página Inicio, en Servicios de Azure, seleccione Crear un recurso. Aparecerá el panel Crear un recurso.

  2. En el cuadro de búsqueda Servicios de búsqueda y Marketplace, escriba Load Balancer y presione Entrar.

  3. En la lista siguiente, seleccione Load Balancer - Microsoft y, después Crear.

    Cree una instancia de Load Balancer en Azure Portal.

  4. En la pestaña Aspectos básicos, escriba los valores siguientes para cada opción:

    Configuración Valor
    Detalles del proyecto
    Subscription Su suscripción
    Resource group Seleccione [nombre del grupo de recursos del espacio aislado]
    Detalles de instancia
    Nombre Escriba un nombre único. Por ejemplo, Pub-LB-PatientsPortal.
    Region Seleccione la ubicación donde se han creado las máquinas virtuales.
    SKU Estándar
    Tipo Public
    Nivel Regional

    Captura de pantalla que muestra la pestaña Aspectos básicos de la pantalla Crear un equilibrador de carga en Azure Portal.

Adición de una configuración de dirección IP de front-end

  1. Seleccione Siguiente: Configuración de IP de front-end.

  2. Seleccione + Agregar una configuración de IP de front-end. Aparece el panel Agregar una configuración de IP de front-end.

  3. Escriba los valores siguientes para cada opción.

    Configuración Value
    Nombre Escriba un nombre único para la configuración de IP de front-end. Por ejemplo, myFrontendIP
    Versión de la dirección IP Seleccione IPv4.
    Tipo de IP Seleccione Dirección IP.
    Dirección IP pública Seleccione Crear nuevo y, después, asigne un nombre a la dirección IP y elija Guardar.
    Equilibrador de carga de puerta de enlace Selecciona Ninguno.

    Captura de pantalla que muestra los valores completados de Agregar una configuración de IP de front-end.

  4. Para cerrar el cuadro de diálogo, seleccione Guardar. Vuelve a aparecer el panel Crear equilibrador de carga.

Adición de un grupo de back-end

  1. Seleccione Siguiente: Grupos de back-end.

  2. Seleccione + Agregar un grupo de back-end. Aparece el panel Agregar grupo de back-end.

  3. Escriba los valores siguientes para cada opción.

    Configuración Value
    Nombre Escriba un nombre único para el grupo de back-end. Por ejemplo, bepool-http.
    Red virtual Confirme que bePortalVnet esté seleccionado.
  4. En Configuraciones IP, seleccione Añadir. Aparece el panel Agregar configuraciones de IP al grupo de back-end.

  5. En Máquina virtual, seleccione las máquinas virtuales webVM1 y webVM2 y seleccione Agregar.

    Captura de pantalla que muestra la configuración del panel Agregar configuraciones de IP al grupo de back-end.

  6. Vuelve a aparecer la pantalla Agregar un grupo de back-end. En Configuraciones de IP, seleccione las máquinas virtuales webVM1 y webVM2 y seleccione Guardar. Vuelve aparecer la pantalla Crear equilibrador de carga.

    Captura de pantalla que muestra la configuración completada en la pantalla Agregar un grupo de back-end.

Adición de una regla de equilibrio de carga

Por último, se creará una regla para el equilibrador de carga.

  1. Seleccione Siguiente: Reglas de entrada.

  2. En la sección Regla de equilibrio de carga, seleccione + Agregar una regla de equilibrio de carga. Aparece el panel Agregar regla de equilibrio de carga.

  3. Escriba los valores siguientes para cada opción.

    Configuración Value
    Nombre Nombre de la regla de equilibrio de carga. Por ejemplo, lbrule-http.
    Versión de la dirección IP IPv4
    Dirección IP del front-end Seleccione la dirección IP de front-end que llamó anteriormente.
    Grupo back-end Seleccione el grupo de back-end que denominó anteriormente. Por ejemplo, bepool-http.
    Protocolo TCP
    Port Escriba 80 (valor predeterminado).
    Puerto back-end Escriba 80 (valor predeterminado).
    Sondeo de mantenimiento Seleccione el vínculo Crear nuevo. Aparece el cuadro de diálogo Agregar sondeo de estado.
  4. Escriba los valores siguientes para cada opción.

    Configuración Value
    Nombre nombre del sondeo de estado. Por ejemplo, healthprobe-http.
    Protocolo TCP
    Port Escriba 80 (valor predeterminado).
    Intervalo Especifique 5 (valor predeterminado). Este valor es la cantidad de tiempo entre sondeos.
  5. Seleccione Guardar para cerrar el cuadro de diálogo. Vuelve a aparecer el panel Agregar regla de equilibrio de carga.

  6. Continúe escribiendo los valores siguientes para cada opción.

    Configuración Valor
    Persistencia de la sesión* Ninguna (valor predeterminado)
    Tiempo de espera de inactividad (minutos) Seleccione 4 (valor predeterminado). Este valor es el tiempo que se mantiene abierta una conexión de Protocolo de control de transmisión (TCP) o HTTP sin depender de los clientes para el envío de mensajes a fin de mantener activa la conexión.
    Dirección IP flotante Deshabilitado (predeterminado).

    Agregar una nueva regla de equilibrio de carga.

  7. Seleccione Guardar para completar la configuración de la regla de equilibrio de carga.

  8. Vuelve aparecer la pantalla Crear equilibrador de carga. Seleccione Revisar + crear.

  9. Cuando se supera la validación, seleccione Crear. Cuando finalice la implementación, seleccione Ir al recurso.

  10. En la página Información general, copie y guarde la Dirección IP pública. Es posible que tenga que seleccionar Ver más... para ver la dirección IP pública.

Creación de direcciones IP

En primer lugar, se necesita una dirección IP pública para el equilibrador de carga.

  1. En Cloud Shell, inicie PowerShell mediante la ejecución de este comando:

    pwsh
    
  2. En PowerShell, cree una nueva dirección IP pública:

    $Location = $(Get-AzureRmResourceGroup -ResourceGroupName <rgn>[sandbox resource group name]</rgn>).Location
    
    $publicIP = New-AzPublicIpAddress `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Location $Location `
      -AllocationMethod "Static" `
      -Name "myPublicIP"
    
  3. Cree una dirección IP de front-end con el cmdlet New-AzLoadBalancerFrontendIpConfig. En el código siguiente, se crea una configuración de IP de front-end llamada myFrontEnd y se asocia a la dirección myPublicIP:

    $frontendIP = New-AzLoadBalancerFrontendIpConfig `
      -Name "myFrontEnd" `
      -PublicIpAddress $publicIP
    

Creación del equilibrador de carga

Si usa PowerShell para configurar un equilibrador de carga, tendrá que crear el grupo de direcciones de back-end, el sondeo de estado y la regla antes de crear el equilibrador.

  1. Cree un grupo de direcciones de back-end ejecutando el cmdlet New-AzLoadBalancerBackendAddressPoolConfig. En los pasos finales, va a conectar las máquinas virtuales a este grupo de back-end. En el siguiente ejemplo se crea un grupo de direcciones de back-end denominado myBackEndPool:

    $backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
    
  2. Cree un sondeo de estado para permitir que el equilibrador de carga supervise el estado del portal de atención sanitaria. El sondeo de estado agrega o quita máquinas virtuales de la rotación del equilibrador de carga dinámicamente en función de su respuesta a las comprobaciones de estado.

    $probe = New-AzLoadBalancerProbeConfig `
      -Name "myHealthProbe" `
      -Protocol http `
      -Port 80 `
      -IntervalInSeconds 5 `
      -ProbeCount 2 `
      -RequestPath "/"
    
  3. Ahora, necesita una regla de equilibrador de carga para definir cómo se distribuye el tráfico en las máquinas virtuales. Se define la configuración de IP front-end para el tráfico entrante y el grupo IP de back-end para recibir el tráfico, junto con el puerto de origen y destino requeridos. Para asegurarse de que solo las máquinas virtuales correctas reciben el tráfico, también se define el sondeo de estado que se va a usar.

    $lbrule = New-AzLoadBalancerRuleConfig `
      -Name "myLoadBalancerRule" `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Protocol Tcp `
      -FrontendPort 80 `
      -BackendPort 80 `
      -Probe $probe
    
  4. Ahora puede crear el equilibrador de carga básico ejecutando el cmdlet New-AzLoadBalancer:

    $lb = New-AzLoadBalancer `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name 'MyLoadBalancer' `
      -Location $Location `
      -FrontendIpConfiguration $frontendIP `
      -BackendAddressPool $backendPool `
      -Probe $probe `
      -LoadBalancingRule $lbrule
    
  5. Para conectar las máquinas virtuales al grupo de back-end, actualice las interfaces de red que ha creado el script con la información del grupo de back-end.

    $nic1 = Get-AzNetworkInterface -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "webNic1"
    $nic2 = Get-AzNetworkInterface -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name "webNic2"
    
    $nic1.IpConfigurations[0].LoadBalancerBackendAddressPools = $backendPool
    $nic2.IpConfigurations[0].LoadBalancerBackendAddressPools = $backendPool
    
    Set-AzNetworkInterface -NetworkInterface $nic1 -AsJob
    Set-AzNetworkInterface -NetworkInterface $nic2 -AsJob
    
  6. Ejecute el siguiente comando para obtener la dirección IP pública del equilibrador de carga y la dirección URL del sitio web:

    Write-Host http://$($(Get-AzPublicIPAddress `
      -ResourceGroupName <rgn>[sandbox resource group name]</rgn> `
      -Name "myPublicIP").IpAddress)
    

Creación de un equilibrador de carga

Usaremos la CLI de Azure para crear el equilibrador de carga y sus recursos asociados.

  1. Cree una dirección IP pública.

    az network public-ip create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --allocation-method Static \
      --name myPublicIP
    
  2. Cree el equilibrador de carga.

    az network lb create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --name myLoadBalancer \
      --public-ip-address myPublicIP \
      --frontend-ip-name myFrontEndPool \
      --backend-pool-name myBackEndPool
    
  3. Cree un sondeo de estado que permita que el equilibrador de carga supervise el estado del portal de atención sanitaria. El sondeo de estado agrega o quita máquinas virtuales de la rotación del equilibrador de carga dinámicamente en función de su respuesta a las comprobaciones de estado.

    az network lb probe create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHealthProbe \
      --protocol tcp \
      --port 80  
    
  4. Ahora, necesitará una regla de equilibrador de carga para definir cómo se distribuye el tráfico en las máquinas virtuales. Se define la configuración de IP front-end para el tráfico entrante y el grupo IP de back-end para recibir el tráfico, junto con el puerto de origen y destino requeridos. Para asegurarse de que solo las máquinas virtuales correctas reciben el tráfico, también se define el sondeo de estado que se va a usar.

    az network lb rule create \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --lb-name myLoadBalancer \
      --name myHTTPRule \
      --protocol tcp \
      --frontend-port 80 \
      --backend-port 80 \
      --frontend-ip-name myFrontEndPool \
      --backend-pool-name myBackEndPool \
      --probe-name myHealthProbe
    
  5. Para conectar las máquinas virtuales al grupo de back-end, actualice las interfaces de red que ha creado el script con la información del grupo de back-end.

    az network nic ip-config update \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --nic-name webNic1 \
      --name ipconfig1 \
      --lb-name myLoadBalancer \
      --lb-address-pools myBackEndPool
    
    az network nic ip-config update \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --nic-name webNic2 \
      --name ipconfig1 \
      --lb-name myLoadBalancer \
      --lb-address-pools myBackEndPool
    
  6. Ejecute el siguiente comando para obtener la dirección IP pública del equilibrador de carga y la dirección URL del sitio web:

    echo http://$(az network public-ip show \
                    --resource-group <rgn>[sandbox resource group name]</rgn> \
                    --name myPublicIP \
                    --query ipAddress \
                    --output tsv)
    

Prueba de la configuración del equilibrador de carga

A continuación probará la configuración del equilibrador de carga para mostrar cómo puede controlar los problemas de disponibilidad y estado de forma dinámica.

  1. En una nueva pestaña del explorador, vaya a la dirección IP pública que ha anotado. En el explorador, se muestra una respuesta de una de las máquinas virtuales.

  2. Presione Ctrl + F5 varias veces para intentar "forzar una actualización" y ver que la respuesta se devuelve de forma aleatoria desde ambas máquinas virtuales.

  3. En el menú de Azure Portal o la página Inicio, seleccione Todos los recursos. Posteriormente, seleccione webVM1 y seleccione Detener.

  4. Vuelva a la pestaña en la que se muestra el sitio web y fuerce una actualización de la página web. Todas las solicitudes se devuelven desde webVM2.