Quickstart: Crie um balanceador de carga público para balancear VMs usando CLI do Azure

Comece com o Balanceador de Carga do Azure usando o 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 conta do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

  • Este quickstart requer a versão 2.0.28 ou posterior do CLI do Azure. Se você 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 contêiner lógico no qual você implanta e gerencia recursos do Azure.

Crie um grupo de recursos usando o az group create:

  az group create \
    --name load-balancer-cli-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 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

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 load-balancer-cli-rg \
    --name lb-frontend-ip \
    --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 load-balancer-cli-rg \
    --name lb-frontend-ip \
    --sku Standard \
    --zone 1

Criar um balanceador de carga

Esta secção explica como 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 sonda de saúde que determina a saúde das instâncias da VM backend

  • 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 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

Se criares um IP público zonal, especifica a zona ao criar o balanceador 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

Criar a sonda de saúde

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

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

Criar uma sonda de saúde 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 a regra de balanceamento de carga

Uma regra de balanceador de carga define:

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

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

  • A porta de origem e de destino necessária

Criar 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 \
    --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 load-balancer-cli-rg \
    --name lb-nsg

Criar uma regra de grupo de segurança de rede

Crie uma regra de um grupo de segurança de rede utilizando 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 um anfitrião do Bastion

Nesta seção, você cria os recursos para o Azure Bastion. Use o Azure Bastion para gerir de forma segura as máquinas virtuais no pool backend do balanceador de carga.

Importante

A faturação horária inicia-se no momento em que o Bastion é implantado, independentemente do uso de dados enviados. 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 anfitrião bastião utiliza o IP público para acesso seguro aos recursos da 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

Criar uma sub-rede de bastião

Use az network vnet subnet create para criar uma sub-rede Bastion. O host bastião usa a sub-rede bastião para aceder à rede 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

Criar servidor bastião

Use az network bastion create para criar um host bastion. O host bastion estabelece uma ligação segura aos recursos de máquina virtual que irá criar mais adiante neste artigo.

  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

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 para usar como servidores backend para o balanceador de carga

Criar interfaces de rede para as máquinas virtuais

Crie duas interfaces de rede utilizando 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

Criar máquinas virtuais

Crie as máquinas virtuais utilizando 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

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 Azure NAT Gateway é 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 backend utilizando 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

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 load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --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 load-balancer-cli-rg \
    --name nat-gw-public-ip \
    --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 load-balancer-cli-rg \
    --name lb-nat-gateway \
    --public-ip-addresses nat-gw-public-ip \
    --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 load-balancer-cli-rg \
    --vnet-name lb-vnet \
    --name backend-subnet \
    --nat-gateway lb-nat-gateway

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=(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

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 load-balancer-cli-rg \
    --name lb-frontend-ip \
    --query ipAddress \
    --output tsv

Captura de ecrã da janela do navegador a mostrar a página de teste do balanceador de carga.

Limpar recursos

Quando já não precisares dos recursos, usa 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óximos passos

Neste início rápido:

  • Criaste um balanceador de carga público padrão.

  • Ligaste duas máquinas virtuais.

  • Configuraste a regra de tráfego do balanceador de carga e a sonda de saúde.

  • Testaste o balanceador de carga.

Para saber mais sobre o Balanceador de Carga do Azure, continue:

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