Guia de início rápido: criar um balanceador de carga público para balancear a carga de VMs usando a CLI do Azure

Comece a usar o Balanceador de Carga do Azure usando a CLI do Azure para criar um balanceador de carga público e duas máquinas virtuais. Junto com esses recursos, você implanta o Azure Bastion, o NAT Gateway, uma rede virtual e as sub-redes necessárias.

Diagrama de recursos implantados para um balanceador de carga público padrão.

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

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

  • Este início rápido requer a versão 2.0.28 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.

Crie um grupo de recursos com az group create:

  az group create \
    --name CreatePubLBQS-rg \
    --location eastus

Criar uma rede virtual

Antes de implantar VMs e testar seu balanceador de carga, crie a rede virtual e a sub-rede de suporte.

Crie uma rede virtual usando az network vnet create. A rede virtual e a sub-rede contêm os recursos implantados posteriormente neste artigo.

  az network vnet create \
    --resource-group CreatePubLBQS-rg \
    --location eastus \
    --name myVNet \
    --address-prefixes 10.1.0.0/16 \
    --subnet-name myBackendSubnet \
    --subnet-prefixes 10.1.0.0/24

Crie um endereço IP público

Para aceder à sua aplicação Web na Internet, precisa de um endereço IP público para o balanceador de carga.

Use az network public-ip create para criar o IP público para o frontend do balanceador de carga.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1 2 3

Para criar um endereço IP público zonal na Zona 1, use o seguinte comando:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --sku Standard \
    --zone 1

Criar um balanceador de carga

Esta secção descreve como pode criar e configurar os seguintes componentes do balanceador de carga:

  • Um pool de IP frontend que recebe o tráfego de rede de entrada no balanceador de carga

  • Um pool de IP de back-end onde o pool de front-end envia o tráfego de rede com balanceamento de carga

  • 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 público com az network lb create:

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool

Se o IP público criado for zonal, a zona especificada precisará ser definida ao criar o balanceador de carga público.

  az network lb create \
    --resource-group CreatePubLBQS-rg \
    --name myLoadBalancer \
    --sku Standard \
    --public-ip-address myPublicIP \
    --frontend-ip-name myFrontEnd \
    --public-ip-zone 1 \
    --backend-pool-name myBackEndPool

Criar a sonda de estado de funcionamento

Uma investigação de integridade verifica todas as instâncias da máquina virtual para garantir que elas possam enviar tráfego de rede.

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

Criar uma sonda de integridade com az network lb probe criar:

  az network lb probe create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHealthProbe \
    --protocol tcp \
    --port 80

Criar a regra de balanceador de carga

Uma regra de balanceador de carga define:

  • Configuração de IP frontend para o tráfego de entrada

  • O pool de IP de back-end para receber o tráfego

  • A porta de origem e de destino necessária

Criar uma regra de balanceador de carga com a regra az network lb criar:

  az network lb rule create \
    --resource-group CreatePubLBQS-rg \
    --lb-name myLoadBalancer \
    --name myHTTPRule \
    --protocol tcp \
    --frontend-port 80 \
    --backend-port 80 \
    --frontend-ip-name myFrontEnd \
    --backend-pool-name myBackEndPool \
    --probe-name myHealthProbe \
    --disable-outbound-snat true \
    --idle-timeout 15 \
    --enable-tcp-reset true

Criar um grupo de segurança de rede

Para um balanceador de carga padrão, as VMs no pool de back-end precisam ter interfaces de rede que pertençam a um grupo de segurança de rede.

Use az network nsg create para criar o grupo de segurança de rede:

  az network nsg create \
    --resource-group CreatePubLBQS-rg \
    --name myNSG

Criar uma regra de grupo de segurança de rede

Criar uma regra de grupo de segurança de rede usando az network nsg regra criar:

  az network nsg rule create \
    --resource-group CreatePubLBQS-rg \
    --nsg-name myNSG \
    --name myNSGRuleHTTP \
    --protocol '*' \
    --direction inbound \
    --source-address-prefix '*' \
    --source-port-range '*' \
    --destination-address-prefix '*' \
    --destination-port-range 80 \
    --access allow \
    --priority 200

Criar um anfitrião do Bastion

Nesta seção, você cria os recursos para o Azure Bastion. O Azure Bastion é usado para gerenciar com segurança as máquinas virtuais no pool de back-end do balanceador de carga.

Importante

O preço por hora começa a partir do momento em que o Bastion é implantado, independentemente do uso de dados de saída. Para obter mais informações, consulte Preços e SKUs. Se você estiver implantando o Bastion como parte de um tutorial ou teste, recomendamos excluir esse recurso depois de terminar de usá-lo.

Crie um endereço IP público

Use az network public-ip create para criar um endereço ip público para o host bastion. O IP público é usado pelo host bastion para acesso seguro aos recursos da máquina virtual.

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionIP \
    --sku Standard \
    --zone 1 2 3

Criar uma sub-rede bastião

Use az network vnet subnet create para criar uma sub-rede bastion. A sub-rede bastion é usada pelo host bastion para acessar a rede virtual.

  az network vnet subnet create \
    --resource-group CreatePubLBQS-rg \
    --name AzureBastionSubnet \
    --vnet-name myVNet \
    --address-prefixes 10.1.1.0/27

Criar host bastião

Use az network bastion create para criar um host bastion. O host bastion é usado para se conectar com segurança aos recursos da máquina virtual criados posteriormente neste artigo.

  az network bastion create \
    --resource-group CreatePubLBQS-rg \
    --name myBastionHost \
    --public-ip-address myBastionIP \
    --vnet-name myVNet \
    --location eastus

Pode levar alguns minutos para o host do Azure Bastion implantar.

Criar servidores de back-end

Nesta seção, você cria:

  • Duas interfaces de rede para as máquinas virtuais

  • Duas máquinas virtuais a serem usadas como servidores back-end 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=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic create \
        --resource-group CreatePubLBQS-rg \
        --name $vmnic \
        --vnet-name myVNet \
        --subnet myBackEndSubnet \
        --network-security-group myNSG
  done

Criar máquinas virtuais

Crie as máquinas virtuais com az vm create:

  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM1 \
    --nics myNicVM1 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 1 \
    --no-wait
  az vm create \
    --resource-group CreatePubLBQS-rg \
    --name myVM2 \
    --nics myNicVM2 \
    --image win2019datacenter \
    --admin-username azureuser \
    --zone 2 \
    --no-wait

Pode levar alguns minutos para que as VMs sejam implantadas. Você pode continuar para as próximas etapas enquanto as VMs estão criando.

Nota

O Azure fornece um IP de acesso de saída padrão para VMs que não recebem um endereço IP público ou estão no pool de back-end de um balanceador de carga básico interno do Azure. O mecanismo 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 é desativado 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 do Gateway NAT do Azure é atribuído à sub-rede da VM.

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

Para obter mais informações sobre conexões de saída no Azure, consulte Acesso de saída padrão no Azure e Usar SNAT (Conversão de Endereço de Rede de Origem) para conexões de saída.

Adicionar máquinas virtuais ao pool de back-end do balanceador de carga

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

  array=(myNicVM1 myNicVM2)
  for vmnic in "${array[@]}"
  do
    az network nic ip-config address-pool add \
     --address-pool myBackendPool \
     --ip-config-name ipconfig1 \
     --nic-name $vmnic \
     --resource-group CreatePubLBQS-rg \
     --lb-name myLoadBalancer
  done

Criar um NAT gateway

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

Criar 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 CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1 2 3

Para criar um endereço IP público redundante zonal na Zona 1, use o seguinte comando:

  az network public-ip create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgatewayIP \
    --sku Standard \
    --zone 1

Criar recurso de gateway NAT

Use az network nat gateway create para criar o recurso de gateway NAT. O IP público criado na etapa anterior está associado ao gateway NAT.

  az network nat gateway create \
    --resource-group CreatePubLBQS-rg \
    --name myNATgateway \
    --public-ip-addresses myNATgatewayIP \
    --idle-timeout 10

Associar gateway NAT à sub-rede

Configure a sub-rede de origem na rede virtual para usar um recurso de gateway NAT específico com az network vnet subnet update.

  az network vnet subnet update \
    --resource-group CreatePubLBQS-rg \
    --vnet-name myVNet \
    --name myBackendSubnet \
    --nat-gateway myNATgateway

Instalar o IIS

Use az vm extension set para instalar o IIS nas máquinas virtuais e defina o site padrão para o nome do computador.

  array=(myVM1 myVM2)
    for vm in "${array[@]}"
    do
     az vm extension set \
       --publisher Microsoft.Compute \
       --version 1.8 \
       --name CustomScriptExtension \
       --vm-name $vm \
       --resource-group CreatePubLBQS-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

Para obter o endereço IP público do balanceador de carga, utilize az network public-ip show.

Copie o endereço IP público e cole-o na barra de endereço do browser.

  az network public-ip show \
    --resource-group CreatePubLBQS-rg \
    --name myPublicIP \
    --query ipAddress \
    --output tsv

Testar o balanceador de carga

Clean up resources (Limpar recursos)

Quando não for mais necessário, 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 CreatePubLBQS-rg

Próximos passos

Neste início rápido:

  • Você criou um balanceador de carga público padrão

  • Duas máquinas virtuais anexadas

  • Configurada a regra de tráfego do balanceador de carga e a sonda de integridade

  • Testou o balanceador de carga

Para saber mais sobre o Azure Load Balancer, continue:

What is Azure Load Balancer? (O que é o Balanceador de Carga do Azure?)