A automação do desligamento das VMs do Azure subutilizado pode ser alcançado através de vários métodos, cada um com suas próprias vantagens e complexidades.
1. Recurso do Azure Auto-Shutdown
O método mais simples é usar o recurso interno de retirada automática do Azure. Isso permite que você defina um tempo específico para a sua VM desligar, o que pode ajudar a reduzir custos durante o horário de pico. Para configurar isso:
- Faça login no portal do Azure.
- Navegue até a VM que você deseja configurar.
- Na seção de operações, selecione Shutdown automaticamente.
- Ative o interruptor, defina o tempo de desligamento desejado e, opcionalmente, configure notificações por e -mail ou webhook [1] [9] [10].
No entanto, esse método não reinicia automaticamente as VMs ou lida com condições complexas, como a utilização da CPU.
2. Automação do Azure
Para cenários mais complexos, como desligar as VMs com base na utilização da CPU ou em outras condições, a automação do Azure pode ser usada. Isso envolve a criação de um runbook que pode interromper as VMs com base em critérios específicos:
- Crie uma conta de automação do Azure: é necessário para executar scripts que gerenciem seus recursos do Azure [3].
- Crie um runbook: escreva um script do PowerShell que verifique o status da VM e o interrompa se for subutilizado. Por exemplo, você pode verificar o uso da CPU e interromper a VM se estiver abaixo de um certo limite [3] [4].
- Configure um cronograma: vincule o runbook a um cronograma para que ele seja executado em intervalos regulares para verificar e potencialmente interromper as VMs subutilizadas [3].
3. Alertas do Azure e grupos de ação
Outra abordagem é usar o Azure Monitor para criar alertas com base na utilização da CPU ou em outras métricas. Quando esses alertas acionam, eles podem chamar um grupo de ação que interrompe a VM:
- Crie uma regra de alerta: configure um alerta no monitor do Azure que aciona quando a utilização da CPU de uma VM cair abaixo de um certo limite [4] [6].
- Configure um grupo de ação: configure um grupo de ação que inclua um webhook ou outra ação para interromper a VM quando o alerta for acionado [2] [4].
4. Funções do Azure
As funções do Azure também podem ser usadas para automatizar os desligamentos da VM. Você pode criar uma função que é executada em um cronograma ou com base em gatilhos e usa as APIs do Azure para interromper as VMs:
- Crie um aplicativo de função: desenvolva uma função que verifique a utilização da VM e a interrompe, se necessário [5].
- Programe a função: use os recursos de agendamento do Azure para executar a função em horários ou intervalos específicos [5].
Cada método tem suas próprias vantagens e pode ser escolhido com base na complexidade de seus requisitos e na escala do seu ambiente.
Citações:
[1] https://learn.microsoft.com/en-us/azure/virtual-machines/auto-shutdown-vm
[2] https://www.brentmcconnell.com/2021/04/26/autoshutdown
[3] https://dev.to/rajeshkumaryadavdotcom/how-to-shutdown-your-azure- virtual-machine-automaticaticatics-when-idle-for-x-minute-a-step-sty-step-guide-24jn
[4] https://learn.microsoft.com/en-us/azure/virtual-machines/cost-optimization-best-practices
[5] https://www.reddit.com/r/azure/comments/xtdaa4/automating_stopping_vms/
[6] https://stackoverflow.com/questions/57897996/underutilized-virtual-machines-azure-alerts
[7] https://stackoverflow.com/questions/71391125/is-it-possible-to-automate shutdown-in-azure-vms-to-salas
[8] https://developer.harness.io/docs/cloud-cost-management/use-ccm-cost-optimization/ccm-recommendations/azure-vm/
[9] https://impulztech.com/optimizing-azure-workloads-automate-vm-startup-and-hutdown/
[10] https://turbo360.com/blog/auto-hutdown-azure-vm-when-idle