La automatización del cierre de las máquinas virtuales de Azure subutilizadas se puede lograr a través de varios métodos, cada uno con sus propias ventajas y complejidades.
1. Característica de paso automático de Azure
El método más simple es utilizar la función de ajuste automático incorporada de Azure. Esto le permite establecer un tiempo específico para que su VM se apague, lo que puede ayudar a reducir los costos durante las horas de extracción. Para configurar esto:
- Inicie sesión en el portal de Azure.
- Navegue a la VM que desea configurar.
- En la sección Operaciones, seleccione Auto-Shutdown.
- Alterne el interruptor a encendido, establezca el tiempo de apagado deseado y opcionalmente configure notificaciones por correo electrónico o webhook [1] [9] [10].
Sin embargo, este método no reinicia automáticamente las máquinas virtuales ni maneja condiciones complejas como la utilización de la CPU.
2. Azure Automation
Para escenarios más complejos, como cerrar las máquinas virtuales basadas en la utilización de la CPU u otras condiciones, se puede utilizar la automatización de Azure. Esto implica crear un runbook que pueda detener las máquinas virtuales basadas en criterios específicos:
- Cree una cuenta de automatización de Azure: esto es necesario para ejecutar scripts que administran sus recursos de Azure [3].
- Cree un runbook: escriba un script PowerShell que verifique el estado de la VM y lo detenga si está subutilizado. Por ejemplo, puede verificar el uso de la CPU y detener la VM si está por debajo de cierto umbral [3] [4].
- Configure un horario: vincule el runbook a un horario para que se ejecute a intervalos regulares para verificar y potencialmente detener las máquinas virtuales subutilizadas [3].
3. Alertas de Azure y grupos de acción
Otro enfoque es usar Azure Monitor para crear alertas basadas en la utilización de la CPU u otras métricas. Cuando estas alertas se activan, pueden llamar a un grupo de acción que detiene la VM:
- Cree una regla de alerta: configure una alerta en Azure Monitor que se desencadene cuando la utilización de la CPU de una VM cae por debajo de un cierto umbral [4] [6].
- Configure un grupo de acción: configure un grupo de acción que incluya un webhook u otra acción para detener la VM cuando se active la alerta [2] [4].
4. Funciones de Azure
Las funciones de Azure también se pueden usar para automatizar las apagadas de VM. Puede crear una función que se ejecute en un cronograma o basado en desencadenantes y use las API de Azure para detener las máquinas virtuales:
- Cree una aplicación de función: desarrolle una función que verifique la utilización de VM y la detiene si es necesario [5].
- Programe la función: use las capacidades de programación de Azure para ejecutar la función en momentos o intervalos específicos [5].
Cada método tiene sus propias ventajas y se puede elegir en función de la complejidad de sus requisitos y la escala de su entorno.
Citas:
[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-automatics-when-idle-for-x-minute-a-step-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/undilized-virtual-machines-azure-alerts
[7] https://stackoverflow.com/questions/71391125/is-it-possible-to-automate-shutdown-in-azure-vms-to-save-costs
[8] https://developer.harness.io/docs/cloud-cost-management/use-ccm-cost-optimization/ccm-regommendations/azure-vm/
[9] https://impulztech.com/optimizing-azure-workloads-automate-vm-startup-and-shutdown/
[10] https://turbo360.com/blog/auto-shutdown-azure-vm-when-idle