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. Crear un nuevo grupo de recursos. En el paso 3, sustituya [nombre del grupo de recursos del espacio aislado] por su propio nombre de grupo de recursos.

  2. 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
    
  3. 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>
    
  4. 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. Después, seleccione Crear.

    Create a Load Balancer instance in the Azure portal.

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

    Configuración Value
    Detalles del proyecto
    Subscription Su suscripción
    Resource group Seleccione el grupo de recursos. Por ejemplo, learn-ts-loadbalancer-rg
    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

    Screenshot that shows the Basics tab of the Create a Load Balancer screen in the 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
    Virtual Network Seleccione bePortalVnet
    Subnet Seleccione bePortalSubnet
    Cesión Seleccione Dinámica.

    Screenshot that shows the completed settings for the Add frontend IP configuration.

  4. Para cerrar el cuadro de diálogo, seleccione Añadir. 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.

    Screenshot that shows the settings on the Add IP configurations to backend pool pane.

  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.

    Screenshot that shows the settings completed on the Add backend pool screen.

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 TCP o HTTP sin depender de los clientes para el envío de mensajes para mantener activa la conexión.
    Dirección IP flotante Deshabilitado (predeterminado).

    Add a new load balancing rule.

  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, 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. Para que el equilibrador de carga supervise el estado del portal de atención sanitaria, cree un sondeo de estado. 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 en el script para usar 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 se 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.