Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Ao criar um conjunto de dimensionamento, o número de instâncias de VM que você deseja executar é definido. À medida que seu aplicativo precisar de alterações, você poderá aumentar ou diminuir automaticamente o número de instâncias de VM. A capacidade de autoescala permite acompanhar a demanda do cliente ou reagir a alterações de desempenho do aplicativo durante todo o ciclo de vida do aplicativo. Neste tutorial, você aprenderá a:
- Usar o dimensionamento automático com um conjunto de dimensionamento
- Criar e usar regras de dimensionamento automático
- Simular a carga da CPU para disparar regras de dimensionamento automático
- Monitorar ações de dimensionamento automático conforme a demanda muda
Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Introdução ao Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para saber mais, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para obter outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar e gerenciar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Este tutorial requer a versão 2.0.32 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.
Criar um conjunto de escala
Crie um grupo de recursos com az group create.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export REGION="WestUS2"
export MY_RESOURCE_GROUP_NAME="myResourceGroup$RANDOM_SUFFIX"
az group create --name $MY_RESOURCE_GROUP_NAME --___location $REGION
Crie um Conjunto de Dimensionamento de Máquinas Virtuais com az vmss create. O exemplo a seguir cria um conjunto de dimensionamento com uma contagem de instâncias de 2, gera chaves SSH se elas não existem e usa uma imagem válida Ubuntu2204.
export MY_SCALE_SET_NAME="myScaleSet$RANDOM_SUFFIX"
az vmss create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys
Definir um perfil de autoescala
Para habilitar o dimensionamento automático em um conjunto de dimensionamento, primeiro você define um perfil de dimensionamento automático. Esse perfil define a capacidade padrão, mínima e máxima do conjunto de dimensionamento. Esses limites permitem controlar o custo ao não criar instâncias de VM de forma contínua e equilibra o desempenho aceitável com um número mínimo de instâncias que permanecem em um evento de redução. Crie um perfil de dimensionamento automático com az monitor autoscale create. O exemplo a seguir define a capacidade padrão e mínima de 2 instâncias de VM e um máximo de 10:
az monitor autoscale create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--resource $MY_SCALE_SET_NAME \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--name autoscale \
--min-count 2 \
--max-count 10 \
--count 2
Criar uma regra de dimensionamento automático para aumento
Se a demanda do aplicativo aumentar, a carga em instâncias de VM no seu conjunto de dimensionamento também aumentará. Se esse aumento de carga for consistente, em vez de apenas uma breve demanda, você poderá configurar regras de dimensionamento automático para aumentar o número de instâncias de VM. Quando essas instâncias são criadas e seu aplicativo é implantado, o conjunto de dimensionamento começa a distribuir o tráfego para elas por meio do balanceador de carga. Você controla quais métricas monitorar, por quanto tempo a carga deve atender a um determinado limite e quantas instâncias de VM adicionar.
Crie uma regra com az monitor autoscale rule create que aumenta o número de instâncias de VM quando a carga média da CPU for maior que 70% em um período de 5 minutos. Quando a regra é disparada, a quantidade de instâncias de VM aumenta por três.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 3
Criar uma regra de dimensionamento automático para redução
Quando a demanda do aplicativo diminui, a carga nas instâncias da máquina virtual diminui. Se essa carga reduzida persistir durante um período de tempo, você poderá configurar regras de dimensionamento automático para diminuir o número de instâncias de VM no conjunto de dimensionamento. Essa ação de dimensionamento ajuda a reduzir os custos executando apenas o número necessário de instâncias necessárias para atender à demanda atual.
Crie outra regra com az monitor autoscale rule create que diminui o número de instâncias de VM quando a carga média da CPU cai abaixo de 30% em um período de 5 minutos. O exemplo a seguir aumenta o número de instâncias de VM em uma.
az monitor autoscale rule create \
--resource-group $MY_RESOURCE_GROUP_NAME \
--autoscale-name autoscale \
--condition "Percentage CPU < 30 avg 5m" \
--scale in 1
Simular carga de CPU em conjunto de escala
Para testar as regras de dimensionamento automático, você precisa simular uma carga de CPU sustentada nas instâncias de VM no conjunto de dimensionamento. Nessa abordagem minimalista, evitamos a instalação de pacotes adicionais usando o comando interno yes para gerar a carga da CPU. O comando a seguir inicia três processos em segundo plano que geram dados continuamente para /dev/null por 60 segundos e, em seguida, os encerra.
for i in {1..3}; do
yes > /dev/null &
done
sleep 60
pkill yes
Esse comando simula a carga da CPU sem introduzir erros de instalação do pacote.
Monitorar as regras de dimensionamento automático ativas
Para monitorar o número de instâncias de VM em seu conjunto de dimensionamento, use o watch comando. Pode levar até 5 minutos para que as regras de dimensionamento automático iniciem o processo de expansão em resposta à carga da CPU. No entanto, depois que isso acontecer, você poderá sair do modo de observação com CTRL + C.
Nesse momento, o conjunto de escalonamento aumentará automaticamente o número de instâncias de VM para atender à demanda. O comando a seguir mostra a lista de instâncias de VM no conjunto de escalas:
az vmss list-instances \
--resource-group $MY_RESOURCE_GROUP_NAME \
--name $MY_SCALE_SET_NAME \
--output table
Assim que o limite de CPU for atingido, as regras de dimensionamento automático aumentam o número de instâncias de VM no conjunto de dimensionamento. A saída mostrará a lista de instâncias de VM à medida que novas são criadas.
InstanceId LatestModelApplied Location Name ProvisioningState ResourceGroup VmId
------------ -------------------- ---------- --------------- ------------------- -------------------- ------------------------------------
1 True WestUS2 myScaleSet_1 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2 True WestUS2 myScaleSet_2 Succeeded myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
4 True WestUS2 myScaleSet_4 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
5 True WestUS2 myScaleSet_5 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
6 True WestUS2 myScaleSet_6 Creating myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Depois que a carga da CPU diminui, a carga média da CPU retorna ao normal. Após mais 5 minutos, as regras de dimensionamento automático reduzem horizontalmente o número de instâncias de VM. As ações de redução removem primeiro as instâncias de VM com os IDs mais altos. Quando um conjunto de dimensionamento usa Conjuntos de Disponibilidade ou Zonas de Disponibilidade, as ações de scale-in são distribuídas uniformemente entre as instâncias da VM. O exemplo de saída a seguir mostra uma instância de VM sendo excluída à medida que o conjunto de dimensionamento é dimensionado automaticamente:
6 True WestUS2 myScaleSet_6 Deleting myResourceGroupxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Limpar os recursos
Para remover o conjunto de dimensionamento e os recursos associados, exclua manualmente o grupo de recursos usando seu método preferencial.
Próximas etapas
Neste tutorial, você aprendeu como dimensionar automaticamente ou reduzir horizontalmente um conjunto de dimensionamento com a CLI do Azure:
- Usar o dimensionamento automático com um conjunto de dimensionamento
- Criar e usar regras de dimensionamento automático
- Simular a carga da CPU para disparar regras de dimensionamento automático
- Monitorar ações de dimensionamento automático conforme a demanda muda