Tutorial: Criar e gerenciar um Conjunto de Dimensionamento de Máquinas Virtuais usando o Azure PowerShell

Um Conjunto de Dimensionamento de Máquinas Virtuais permite implantar e gerenciar um conjunto de máquinas virtuais. Durante todo o ciclo de vida de um Conjunto de Dimensionamento de Máquinas Virtuais, você poderá precisar executar uma ou mais tarefas de gerenciamento. Neste tutorial, você aprenderá a:

  • Criar um grupo de recursos
  • Crie um conjunto de dimensionamento de máquinas virtuais
  • Escalar horizontalmente
  • Parar, iniciar e reiniciar instâncias de VM

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

Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador. É possível usar o bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada no seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Link
Selecione Experimentar no canto superior direito de um bloco de código ou de comando. Selecionar Experimentar não copia automaticamente o código nem o comando para o Cloud Shell. Captura de tela que mostra um exemplo de Experimente para o Azure Cloud Shell.
Acesse https://shell.azure.com ou selecione o botão Iniciar o Cloud Shell para abri-lo no navegador. Botão para iniciar o Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. Captura de tela que mostra o botão Cloud Shell no portal do Azure

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou o comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux, ou selecionando Cmd+Shift+V no macOS.

  4. Pressione Enter para executar o código ou comando.

Criar um grupo de recursos

Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Você deve criar um grupo de recursos antes de criar um Conjunto de Dimensionamento de Máquinas Virtuais. Crie um grupo de recursos com o comando New-AzResourceGroup. Neste exemplo, um grupo de recursos denominado myResourceGroup é criado na região EastUS.

New-AzResourceGroup -ResourceGroupName "myResourceGroup" -Location "EastUS"

O nome do grupo de recursos é especificado quando você cria ou modifica um conjunto de dimensionamento ao longo deste tutorial.

Crie um conjunto de dimensionamento de máquinas virtuais

Primeiro, defina o nome de usuário e a senha de um administrador para as instâncias de VM com Get-Credential:

$cred = Get-Credential

Agora crie um conjunto de dimensionamento de máquinas virtuais com New-AzVmss. Para distribuir o tráfego para as instâncias de VM individuais, um balanceador de carga também é criado. O balanceador de carga inclui regras para distribuir o tráfego na porta TCP 80 e permite o tráfego de área de trabalho remota na porta TCP 3389 e a comunicação remota do PowerShell na porta TCP 5985:

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure serão padrão para o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve executar, acesse Alteração Interruptiva para Clientes PowerShell/CLI de VMSS – Hub de Comunidade da Microsoft

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -Location "EastUS" `
  -Credential $cred

Leva alguns minutos para criar e configurar todos os recursos e as instâncias de VM do conjunto de dimensionamento. Para distribuir o tráfego para as instâncias de VM individuais, um balanceador de carga também é criado.

Exibir as instâncias de VM em um conjunto de dimensionamento

Para exibir uma lista de instâncias de VM em um conjunto de dimensionamento, use Get-AzVM da seguinte forma:

Get-AzVM -ResourceGroupName "myResourceGroup"

A saída de exemplo abaixo mostra duas instâncias de VM no conjunto de dimensionamento:

ResourceGroupName                Name Location          VmSize  OsType      ProvisioningState 
-----------------                ---- --------          ------  ------       ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows         Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows         Succeeded     

Para exibir informações adicionais sobre uma instância de VM específica, use Get-AzVM e especifique o nome da VM.

Get-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1" 
ResourceGroupName      : myresourcegroup
Id                     : /subscriptions/resourceGroups/myresourcegroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_instance1
VmId                   : d27b5fde-d469-4087-b08f-87d0bd8df786
Name                   : myScaleSet_instance1
Type                   : Microsoft.Compute/virtualMachines
Location               : eastus
Tags                   : {}
HardwareProfile        : {VmSize}
NetworkProfile         : {NetworkInterfaces}
OSProfile              : {ComputerName, AdminUsername, WindowsConfiguration, Secrets, AllowExtensionOperations, RequireGuestProvisionSignal}
ProvisioningState      : Succeeded
StorageProfile         : {ImageReference, OsDisk, DataDisks}
VirtualMachineScaleSet : {Id}
TimeCreated            : 11/16/2022 11:02:02 PM

Criar um conjunto de dimensionamento com um tamanho de instância de VM específico

Quando você criou um conjunto de dimensionamento no início do tutorial, um SKU de VM padrão Standard_D1_v2 foi fornecido para as instâncias de VM. Você pode especificar um tamanho de instância de VM diferente com o parâmetro -VMSize para especificar um tamanho de instância de VM de Standard_F1.

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -VMScaleSetName "myScaleSet" `
  -OrchestrationMode "Flexible" `
  -VMSize "Standard_F1" `
  -Location "EastUS" `
  -Credential $cred

Alterar a capacidade de um conjunto de dimensionamento

Quando você criou um conjunto de dimensionamento, duas instâncias de VM foram implantadas por padrão. Para aumentar ou diminuir o número de instâncias de VM no conjunto de dimensionamento, você pode alterar a capacidade manualmente. O conjunto de dimensionamento cria ou remove o número necessário de instâncias de VM e configura o balanceador de carga para distribuir o tráfego.

Primeiro, crie um objeto de conjunto de dimensionamento com Get-AzVmss, em seguida, especifique um novo valor para sku.capacity. Para aplicar a alteração de capacidade, use Update-AzVmss. O seguinte exemplo aumenta o número de instâncias de VM no conjunto de dimensionamento para 3:

# Get current scale set
$vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

# Set and update the capacity of your scale set
$vmss.sku.capacity = 3
Update-AzVmss -ResourceGroupName "myResourceGroup" -Name "myScaleSet" -VirtualMachineScaleSet $vmss 

São necessários alguns minutos para atualizar a capacidade de seu conjunto de dimensionamento. Para exibir o número de instâncias que você tem agora no conjunto de dimensionamento, use Get-Az:

Get-AzVm -ResourceGroupName "myResourceGroup" 

A seguinte saída de exemplo mostra que a capacidade do conjunto de dimensionamento agora é 3:

ResourceGroupName                Name Location          VmSize  OsType    ProvisioningState 
-----------------                ---- --------          ------  ------    ----------------- 
myResourceGroup   myScaleSet_instance1   eastus Standard_DS1_v2 Windows       Succeeded     
myResourceGroup   myScaleSet_instance2   eastus Standard_DS1_v2 Windows       Succeeded     
myResourceGroup   myScaleSet_instance3   eastus Standard_DS1_v2 Windows       Succeeded   

Parar e desalocar instâncias de VM em um conjunto de dimensionamento

Para interromper instâncias de VM individuais, use Stop-AzVm e especifique os nomes de instância.

Stop-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Por padrão, as VMs paradas são desalocadas e não geram encargos de computação. Se desejar que a VM permaneça em um estado de provisionamento quando interrompido, adicione o parâmetro -StayProvisioned ao comando anterior. VMs paradas que permanecem provisionadas incorrem em encargos de computação regulares.

Iniciar instâncias de VM em um conjunto de dimensionamento

Para iniciar todas as instâncias de VM em um conjunto de dimensionamento, use Start-AzVmss.

Start-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet" 

Para iniciar uma instância de VM individual em um conjunto de dimensionamento, use Start-AzVM e especifique o nome da instância.

Start-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Reiniciar instâncias de VM em um conjunto de dimensionamento

Para reiniciar todas as VMs em um conjunto de dimensionamento, use Restart-AzVmss.

Restart-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myScaleSet"

Para reiniciar uma instância individual, use [Restart-AzVM] e especifique o nome da instância.

Restart-AzVM -ResourceGroupName "myResourceGroup" -name "myScaleSet_instance1"

Limpar os recursos

Quando você excluir um grupo de recursos, todos os recursos contidos, como as instâncias de VM, as rede virtuais e os discos, também serão excluídos. O parâmetro -Force confirma que você deseja excluir os recursos sem um prompt extra para fazer isso. O parâmetro -AsJob retorna o controle ao prompt sem aguardar a conclusão da operação.

Remove-AzResourceGroup -Name "myResourceGroup" -Force -AsJob

Próximas etapas

Neste tutorial, você aprendeu a executar algumas tarefas básicas de criação e gerenciamento do conjunto de dimensionamento com o Azure PowerShell:

  • Criar um grupo de recursos
  • Criar um conjunto de escala
  • Exibir e usar tamanhos específicos de VM
  • Dimensionar manualmente um conjunto de dimensionamento
  • Executar tarefas comuns de gerenciamento de conjunto de dimensionamento, como parar, iniciar e reiniciar seu conjunto de dimensionamento

Acesse o próximo tutorial para saber como se conectar a suas instâncias de conjunto de dimensionamento.