Início Rápido: Criar um balanceador de carga interno para balancear a carga das VMs usando a CLI do Azure

Veja uma introdução ao Azure Load Balancer usando a CLI do Azure para criar um balanceador de carga interno e duas máquinas virtuais. Outros recursos incluem Azure Bastion, Gateway da NAT, uma rede virtual e as sub-redes necessárias.

Diagrama de recursos implantados para um balanceador de carga interno.

Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

  • Este guia de início rápido requer a versão 2.0.28 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a última versão já está instalada.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contêiner lógico no qual você implanta e gerencia os recursos do Azure.

Crie um grupo de recursos com az group create.

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

Quando você cria um balanceador de carga interno, uma rede virtual é configurada como a rede para o balanceador de carga.

Criar a rede virtual

Antes de implantar VMs e testar o balanceador de carga, crie a rede virtual e a sub-rede de suporte. A rede virtual e a sub-rede conterão os recursos implantados mais adiante neste artigo.

Crie uma rede virtual usando az network vnet create.

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

Criar um Azure Bastion host

Neste exemplo, você criará um host do Azure Bastion. O host do Azure Bastion será usado posteriormente neste artigo para gerenciar com segurança as máquinas virtuais e testar a implantação do balanceador de carga.

Importante

A cobrança por hora começa a partir do momento em que Bastion é implantado, independentemente do volume de dados de saída. Para saber mais, confira Preços e SKUs. Se você estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos que você exclua esse recurso depois de terminar de usá-lo.

Criar um endereço IP público do bastion

Use az network public-ip create para criar um endereço IP público para o Azure Bastion host.

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

Criar uma sub-rede de bastião

Use az network vnet subnet create para criar uma sub-rede.

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

Criar um bastion host

Use az network bastion create para criar um host.

az config set extension.use_dynamic_install=yes_without_prompt

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 \
    --location westus2 \
    --sku Basic \
    --only-show-errors \
    --no-wait

Levará alguns minutos para que o host do Azure Bastion seja implantado.

Criar o balanceador de carga

Esta seção fornece detalhes sobre como criar e configurar os componentes do balanceador de carga abaixo:

  • Um pool de IPs de front-end que recebe o tráfego de rede de entrada no balanceador de carga

  • Um pool de IPs de back-end ao qual o pool de front-end envia o tráfego de rede com a carga balanceada

  • Uma investigação de integridade que determina a integridade das instâncias de VM de back-end

  • Uma regra de balanceador de carga que define como o tráfego é distribuído para as VMs

Criar o recurso do balanceador de carga

Crie um balanceador de carga interno com az network lb create.

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

Criar a investigação de integridade

Uma sonda de integridade verifica todas as instâncias de máquinas virtuais para garantir que elas possam enviar tráfego de rede.

Uma máquina virtual com uma verificação de investigação com falha é removida do balanceador de carga. A máquina virtual será adicionada novamente ao balanceador de carga quando a falha for resolvida.

Crie uma investigação de integridade com 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

Criar uma regra de balanceador de carga

Uma regra de balanceador de carga define:

  • Configuração de IP de front-end para o tráfego de entrada

  • O pool de IPs do backend para receber o tráfego

  • As portas de origem e de destino necessárias

Crie uma regra de balanceador de carga com 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 \
    --idle-timeout 15 \
    --enable-tcp-reset true

Criar um grupo de segurança de rede

Para um Standard Load Balancer, as VMs no pool de back-end precisam ter adaptadores de rede que pertençam a um grupo de segurança de rede.

Para criar um grupo de segurança de rede, use az network nsg create.

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

Criar uma regra de grupo de segurança de rede

Para criar uma regra de grupo de segurança de rede, use 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

Criar servidores de back-end

Nesta seção, você cria:

  • Dois adaptadores de rede para as máquinas virtuais

  • Duas máquinas virtuais a serem usadas como servidores para o balanceador de carga

Criar interfaces de rede para as máquinas virtuais

Crie duas interfaces de rede com az network nic create.

  array=(lb-nic-vm1 lb-nic-vm2)
  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

Criar as máquinas virtuais

Crie as máquinas virtuais com az vm create.

  array=(1 2)
  for n in "${array[@]}"
  do
    az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-VM$n \
    --nics lb-nic-vm$n \
    --image win2022datacenter \
    --admin-username azureuser \
    --zone $n \
    --no-wait
  done

Pode levar alguns minutos para que as VMs sejam implantadas.

Observação

O Azure fornece um IP de acesso de saída padrão para VMs que não receberam um endereço IP público ou que estão no pool de back-end de um balanceador de carga do Azure básico interno. O mecanismo de IP de acesso de saída padrão fornece um endereço IP de saída que não é configurável.

O IP de acesso de saída padrão é desabilitado quando um dos seguintes eventos acontece:

  • Um endereço IP público é atribuído à VM.
  • A VM é colocada no pool de back-end de um balanceador de carga padrão, com ou sem regras de saída.
  • Um recurso Gateway NAT do Azure é atribuído à sub-rede da VM.

As VMs que você cria usando conjuntos de dimensionamento de máquinas virtuais no modo de orquestração flexível não têm acesso de saída padrão.

Para mais informações sobre conexões de saída no Azure, confira Acesso de saída padrão no Azure e Usar SNAT (conversão de endereços de rede de origem) para conexões de saída.

Adicionar máquinas virtuais ao pool de back-end

Adicione as máquinas virtuais ao pool de back-end com az network nic ip-config address-pool add.

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

Criar gateway NAT

Para fornecer acesso de Internet de saída aos recursos no pool de back-end, crie um gateway da NAT.

Criar um IP público

Use az network public-ip create para criar um único IP para a conectividade de saída.

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

Criar um recurso de gateway da NAT

Use az network nat gateway create para criar um recurso de gateway da NAT. O IP público criado na etapa anterior está associado ao gateway da 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

Associar o gateway da NAT à sub-rede

Configure a sub-rede de origem na rede virtual para usar um recurso de gateway da NAT específico com 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

Criar máquina virtual de teste

Crie a interface de rede com az network nic create.

  az network nic create \
    --resource-group load-balancer-cli-rg \
    --name lb-nic-testvm \
    --vnet-name lb-vnet \
    --subnet backend-subnet \
    --network-security-group lb-NSG

Crie a máquina virtual com az vm create.

  az vm create \
    --resource-group load-balancer-cli-rg \
    --name lb-TestVM \
    --nics lb-nic-testvm \
    --image Win2019Datacenter \
    --admin-username azureuser \
    --no-wait

Talvez seja necessário esperar alguns minutos para que a máquina virtual seja implantada.

Instalar o IIS

Use az vm extension set para instalar o IIS nas máquinas virtuais do back-end e definir o site padrão como o nome do computador.

  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

Testar o balanceador de carga

  1. Entre no portal do Azure.

  2. Na página de Visão geral, encontre o endereço IP privado para o balanceador de carga. No menu à esquerda, selecione Todos os serviços>Todos os recursos>do balanceador de carga.

  3. Na visão geral do balanceador de carga, copie o endereço ao lado do Endereço IP Privado. Se o endereço IP privado não estiver visível, selecione Ver mais.

  4. No menu à esquerda, selecione Todos os serviços>Todos os recursos. Na lista de recursos, no grupo de recursos load-balancer-cli-rg, selecione lb-TestVM.

  5. Na página Visão Geral, selecione Conectar>Bastion.

  6. Insira o nome de usuário e a senha que você inseriu quando criou a VM.

  7. Em lb-TestVM, abra Internet Explorer.

  8. Insira o endereço IP da etapa anterior na barra de endereços do navegador. A página padrão do servidor Web do IIS é mostrada no navegador.

    Captura de tela do endereço IP na barra de endereços do navegador.

Limpar os recursos

Quando os recursos deixarem de ser necessários, use o comando az group delete para remover o grupo de recursos, o balanceador de carga e todos os recursos relacionados.

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

Próximas etapas

Neste início rápido:

  • Você criou um balanceador de carga interno

  • Anexou duas máquinas virtuais

  • Configurou a regra de tráfego e a investigação de integridade do balanceador de carga

  • Testou o balanceador de carga

Para saber mais sobre o Azure Load Balancer, vá para: