Inicio rápido: Creación de un equilibrador de carga público para equilibrar la carga de máquinas virtuales mediante CLI de Azure

Empiece a trabajar con Azure Load Balancer mediante CLI de Azure para crear un equilibrador de carga público y dos máquinas virtuales. Junto con estos recursos, implementará Azure Bastion, NAT Gateway, una red virtual y las subredes necesarias.

Diagrama de recursos implementados para un equilibrador de carga público estándar.

Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.

Requisitos previos

  • Este inicio rápido requiere la versión 2.0.28 o posterior de CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.

Crear un grupo de recursos

Un grupo de recursos Azure es un contenedor lógico en el que se implementan y administran recursos Azure.

Cree un grupo de recursos mediante az group create:

  az group create \
    --name load-balancer-cli-rg \
    --location eastus

Creación de una red virtual

Antes de implementar las VM y probar el equilibrador de carga, cree los recursos de red virtual auxiliares y la subred.

Use az network vnet create para crear una red virtual. La red virtual y la subred contienen los recursos implementados más adelante en este artículo.

  az network vnet create \
    --resource-group load-balancer-cli-rg \
    --location eastus \
    --name lb-vnet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name backend-subnet \
    --subnet-prefixes 10.1.0.0/24

Crear una dirección IP pública

Para obtener acceso a la aplicación web en Internet, necesita una dirección IP pública para el equilibrador de carga.

Utiliza az network public-ip create para crear la dirección IP pública para la interfaz del equilibrador de carga.

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name lb-frontend-ip \
    --sku Standard \
    --zone 1 2 3

Para crear una dirección IP pública de zona en la zona 1, utilice el comando siguiente:

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name lb-frontend-ip \
    --sku Standard \
    --zone 1

Creación de un equilibrador de carga

En esta sección se explica cómo crear y configurar los siguientes componentes del equilibrador de carga:

  • Un grupo de direcciones IP de front-end que recibe el tráfico de red entrante en el equilibrador de carga

  • Un grupo de direcciones IP de back-end al que el grupo de servidores front-end envía el tráfico de red de carga equilibrada

  • Sondeo de estado que determina el estado de las instancias de máquina virtual de back-end

  • Una regla de equilibrador de carga que define cómo se distribuye el tráfico a las VM

Creación del recurso del equilibrador de carga

Cree un equilibrador de carga público con az network lb create:

  az network lb create \
    --resource-group load-balancer-cli-rg \
    --name load-balancer \
    --sku Standard \
    --public-ip-address lb-frontend-ip \
    --frontend-ip-name lb-frontend \
    --backend-pool-name lb-backend-pool

Si crea una dirección IP pública zonal, especifique la zona al crear el equilibrador de carga público.

  az network lb create \
    --resource-group load-balancer-cli-rg \
    --name load-balancer \
    --sku Standard \
    --public-ip-address lb-frontend-ip \
    --frontend-ip-name lb-frontend \
    --public-ip-zone 1 \
    --backend-pool-name lb-backend-pool

Creación del sondeo de estado

Los sondeos de estado comprueban todas las instancias de máquina virtual para asegurarse de que pueden enviar tráfico de red.

Una máquina virtual con una comprobación de sondeo fallida se elimina del equilibrador de carga. La máquina virtual se agrega de nuevo al equilibrador de carga cuando se resuelve el error.

Cree una sonda de salud con az network lb probe create:

  az network lb probe create \
    --resource-group load-balancer-cli-rg \
    --lb-name load-balancer \
    --name lb-health-probe \
    --protocol tcp \
    --port 80

Crea la regla del equilibrador de carga

Una regla de equilibrador de carga define:

  • Configuración de IP del frontend para el tráfico entrante

  • El pool de IP de backend para recibir el tráfico

  • Los puertos de origen y de destino requeridos

Cree una regla de equilibrador de carga con az network lb rule create:

  az network lb rule create \
    --resource-group load-balancer-cli-rg \
    --lb-name load-balancer \
    --name lb-HTTP-rule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name lb-frontend \
    --backend-pool-name lb-backend-pool \
    --probe-name lb-health-probe \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

Crear un grupo de seguridad de red

En el caso de un equilibrador de carga estándar, las interfaces de red de las VM del grupo de back-end deberán pertenecer a un grupo de seguridad de red.

Use az network nsg create para crear el grupo de seguridad de red:

  az network nsg create \
    --resource-group load-balancer-cli-rg \
    --name lb-nsg

Creación de una regla de grupo de seguridad de red

Cree una regla de grupo de seguridad de red mediante az network nsg rule create.

  az network nsg rule create \
    --resource-group load-balancer-cli-rg \
    --nsg-name lb-nsg \
    --name lb-nsg-rule \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

Creación de un host de Bastion

En esta sección, creará los recursos para Azure Bastion. Use Azure Bastion para administrar de forma segura las máquinas virtuales del grupo de back-end del equilibrador de carga.

Importante

La facturación por hora comienza a partir del momento en que se implementa Bastion, independientemente del uso de datos salientes. Para más información, consulte Precios y SKU. Si va a implementar Bastion como parte de un tutorial o prueba, se recomienda eliminar este recurso una vez que haya terminado de usarlo.

Crear una dirección IP pública

Use az network public-ip create para crear una dirección IP pública para el host bastión. El host bastión usa la dirección IP pública para el acceso seguro a los recursos de la máquina virtual.

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name lb-vnet-bastion-ip \
    --sku Standard \
    --zone 1 2 3

Creación de una subred de Bastion

Use az network vnet subnet create para crear una subred bastión. El host de bastión usa la subred de bastión para acceder a la red virtual.

  az network vnet subnet create \
    --resource-group load-balancer-cli-rg \
    --name AzureBastionSubnet \
    --vnet-name lb-vnet \
    --address-prefixes 10.1.1.0/27

Creación de un host bastión

Use az network bastion create para crear un host bastión. El host bastión se conecta de forma segura a los recursos de máquina virtual que se crean más adelante en este artículo.

  az network bastion create \
    --resource-group load-balancer-cli-rg \
    --name lb-vnet-bastion \
    --public-ip-address lb-vnet-bastion-ip \
    --vnet-name lb-vnet \
    --sku Basic \
    --location eastus

El host de Azure Bastion tarda unos minutos en implementarse.

Creación de servidores back-end

En esta sección, creas:

  • Dos interfaces de red para las máquinas virtuales

  • Dos máquinas virtuales que se usarán como servidores back-end para el equilibrador de carga

Creación de interfaces de red para las máquinas virtuales

Cree dos interfaces de red con az network nic create:

  array=(lb-VM1-nic lb-VM2-nic)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group load-balancer-cli-rg \
        --name $vmnic \
        --vnet-name lb-vnet \
        --subnet backend-subnet \
        --network-security-group lb-nsg
  done

Creación de máquinas virtuales

Cree las máquinas virtuales mediante az vm create:

  az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-VM1 \
    --nics lb-VM1-nic \
    --image Win2022AzureEditionCore \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --zone 1 \
    --no-wait
  az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-VM2 \
    --nics lb-VM2-nic \
    --image Win2022AzureEditionCore \
    --size Standard_D2s_v3 \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

Puede que las máquinas virtuales tarden unos minutos en implementarse. Puede continuar con los pasos siguientes mientras se crean las máquinas virtuales.

Nota:

Azure proporciona una dirección IP de acceso de salida predeterminada para las máquinas virtuales que no tienen asignada una dirección IP pública o están en el grupo back-end de un equilibrador de carga de Azure básico interno. El mecanismo de dirección IP de acceso de salida predeterminado proporciona una dirección IP de salida que no se puede configurar.

La dirección IP de acceso de salida predeterminada está deshabilitada cuando se produce uno de los siguientes eventos:

  • Se asigna una dirección IP pública a la máquina virtual.
  • La máquina virtual se coloca en el grupo de fondo de un balanceador de carga estándar, con o sin reglas de salida.
  • Se asigna un recurso de Azure NAT Gateway a la subred de la máquina virtual.

Las máquinas virtuales creadas mediante conjuntos de escalado de máquinas virtuales en modo de orquestación flexible no tienen acceso de salida predeterminado.

Para más información sobre las conexiones de salida en Azure, vea Acceso de salida predeterminado en Azure y Uso de traducción de direcciones de red (SNAT) de origen para conexiones de salida.

Adición de máquinas virtuales al grupo de back-end del equilibrador de carga

Agregue las máquinas virtuales al grupo de back-end mediante el comando az network nic ip-config address-pool add:

  array=(lb-VM1-nic lb-VM2-nic)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool lb-backend-pool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group load-balancer-cli-rg \
     --lb-name load-balancer
  done

Creación de una instancia de NAT Gateway

Para proporcionar acceso saliente a Internet para los recursos del grupo de backend, cree una puerta de enlace NAT.

Creación de una IP pública

Use az network public-ip create para crear una única dirección IP para la conectividad saliente.

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --sku Standard \
    --zone 1 2 3

Para crear una dirección IP pública de zona en la zona 1, utilice el comando siguiente:

  az network public-ip create \
    --resource-group load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --sku Standard \
    --zone 1

Creación de un recurso de puerta de enlace de NAT

Uso de az network nat gateway create para crear el recurso de puerta de enlace NAT. La dirección IP pública creada en el paso anterior está asociada a la puerta de enlace NAT.

  az network nat gateway create \
    --resource-group load-balancer-cli-rg \
    --name lb-nat-gateway \
    --public-ip-addresses nat-gw-public-ip \
    --idle-timeout 10

Asociación de una puerta de enlace NAT a una subred

Configure la subred de origen de la red virtual para usar un recurso de puerta de enlace NAT concreto con az network vnet subnet update.

  az network vnet subnet update \
    --resource-group load-balancer-cli-rg \
    --vnet-name lb-vnet \
    --name backend-subnet \
    --nat-gateway lb-nat-gateway

Instalación de IIS

Utilice az vm extension set para instalar IIS en las máquinas virtuales y establecer el nombre del equipo como sitio web predeterminado.

  array=(lb-VM1 lb-VM2)
    for vm in "${array[@]}"
    do
     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name $vm \
       --resource-group load-balancer-cli-rg \
       --settings '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
  done

Prueba del equilibrador de carga

Para obtener la dirección IP pública del equilibrador de carga, use az network public-ip show.

Copie la dirección IP pública y péguela en la barra de direcciones del explorador.

  az network public-ip show \
    --resource-group load-balancer-cli-rg \
    --name lb-frontend-ip \
    --query ipAddress \
    --output tsv

Captura de pantalla de la ventana del explorador que muestra la página de prueba del equilibrador de carga.

Limpieza de recursos

Cuando ya no necesite los recursos, use el comando az group delete para quitar el grupo de recursos, el equilibrador de carga y todos los recursos relacionados.

  az group delete \
    --name load-balancer-cli-rg

Pasos siguientes

En esta guía de inicio rápido:

  • Ha creado un equilibrador de carga público estándar.

  • Ha conectado dos máquinas virtuales.

  • Ha configurado la regla de tráfico del equilibrador de carga y la sonda de estado.

  • Ha probado el equilibrador de carga.

Para más información sobre Azure Load Balancer, vaya a: