Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Come posso automatizzare l'arresto delle VM sottoutilizzate


Come posso automatizzare l'arresto delle VM sottoutilizzate


L'automazione dell'arresto delle VM azure sottoutilizzate può essere ottenuta attraverso diversi metodi, ciascuno con i propri vantaggi e complessità.

1. Funzione Azure Auto-Shutdown

Il metodo più semplice è utilizzare la funzione di shut-shut di Azure integrata. Ciò consente di impostare un tempo specifico per l'arresto della VM, il che può aiutare a ridurre i costi durante le ore di punta. Per configurare questo:

- Accedi al portale di Azure.
- Passare alla VM che si desidera configurare.
- Nell'ambito della sezione Operazioni, selezionare Auto-Shutdown.
- Attiva il passaggio su ON, impostare il tempo di spegnimento desiderato e opzionalmente configurare le notifiche tramite e -mail o webhook [1] [9] [10].

Tuttavia, questo metodo non riavvia automaticamente VMS né gestisce condizioni complesse come l'utilizzo della CPU.

2. Azure Automation

Per scenari più complessi, come chiusura delle macchine virtuali in base all'utilizzo della CPU o ad altre condizioni, è possibile utilizzare l'automazione di Azure. Ciò comporta la creazione di un Runbook che può fermare le VM in base a criteri specifici:

- Crea un account di automazione di Azure: questo è necessario per l'esecuzione di script che gestiscono le risorse di Azure [3].
- Crea un Runbook: scrivi uno script PowerShell che controlla lo stato della VM e lo ferma se è sottoutilizzato. Ad esempio, è possibile controllare l'utilizzo della CPU e fermare la VM se è al di sotto di una determinata soglia [3] [4].
- Imposta un programma: collega il Runbook a un programma in modo che funzioni a intervalli regolari per controllare e potenzialmente interrompere le macchine virtuali sottoutilizzate [3].

3. Alert Azure e gruppi di azione

Un altro approccio è quello di utilizzare Azure Monitor per creare avvisi in base all'utilizzo della CPU o ad altre metriche. Quando questi avvisi si innescano, possono chiamare un gruppo di azioni che interrompe la VM:

- Crea una regola di avviso: impostare un avviso in Azure Monitor che attiva quando l'utilizzo della CPU di una VM scende al di sotto di una certa soglia [4] [6].
- Configurare un gruppo di azioni: impostare un gruppo di azioni che include un Webhook o altra azione per fermare la VM quando viene attivato l'avviso [2] [4].

4. Funzioni di Azure

Le funzioni di Azure possono anche essere utilizzate per automatizzare gli arresti VM. È possibile creare una funzione che funziona su un programma o in base a Trigger e utilizza le API di Azure per fermare le VM:

- Crea un'app di funzione: sviluppare una funzione che controlla l'utilizzo della VM e la interrompa se necessario [5].
- Pianifica la funzione: utilizzare le funzionalità di pianificazione di Azure per eseguire la funzione in momenti o intervalli specifici [5].

Ogni metodo ha i suoi vantaggi e può essere scelto in base alla complessità delle tue esigenze e alla scala del proprio ambiente.

Citazioni:
[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-hutdown-your-azure-virtual-machine-automaticamente-when-idle-for-x-minute-a-step-by-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-automato-shutdown-in-azure-vms-to-save-costs
[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-andshutdown/
[10] https://turbo360.com/blog/auto-shutdown-azure-vm-when-idle