Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Πώς μπορώ να αυτοματοποιήσω το κλείσιμο των ανεπαρκώς χρησιμοποιούμενων VM


Πώς μπορώ να αυτοματοποιήσω το κλείσιμο των ανεπαρκώς χρησιμοποιούμενων VM


Η αυτοματοποίηση του τερματισμού των ανεπαρκώς χρησιμοποιούμενων Azure VMs μπορεί να επιτευχθεί με διάφορες μεθόδους, το καθένα με τα δικά του πλεονεκτήματα και πολυπλοκότητες.

1.

Η απλούστερη μέθοδος είναι να χρησιμοποιήσετε το ενσωματωμένο χαρακτηριστικό Auto-ShutDown της Azure. Αυτό σας επιτρέπει να ορίσετε μια συγκεκριμένη ώρα για να κλείσετε το VM σας, το οποίο μπορεί να βοηθήσει στη μείωση του κόστους κατά τη διάρκεια των ωρών εκτός αιχμής. Για να διαμορφώσετε αυτό:

- Συνδεθείτε στην πύλη Azure.
- Μεταβείτε στο VM που θέλετε να διαμορφώσετε.
- Στην ενότητα Operations, επιλέξτε Auto-ShutDown.
- Εναλλαγή του διακόπτη σε ενεργοποίηση, ρυθμίστε τον επιθυμητό χρόνο διακοπής λειτουργίας και προαιρετικά διαμορφώστε τις ειδοποιήσεις μέσω ηλεκτρονικού ταχυδρομείου ή webhook [1] [9] [10].

Ωστόσο, αυτή η μέθοδος δεν επανεκκινεί αυτόματα VM ή χειρίζεται σύνθετες συνθήκες όπως η χρήση της CPU.

2. Azure Automation

Για πιο περίπλοκα σενάρια, όπως το κλείσιμο των VMS με βάση τη χρήση της CPU ή άλλες συνθήκες, μπορεί να χρησιμοποιηθεί αυτοματοποίηση Azure. Αυτό περιλαμβάνει τη δημιουργία ενός runbook που μπορεί να σταματήσει τα VM με βάση συγκεκριμένα κριτήρια:

- Δημιουργήστε έναν λογαριασμό Azure Automation: Αυτό είναι απαραίτητο για τη λειτουργία σεναρίων που διαχειρίζονται τους πόρους Azure [3].
- Δημιουργήστε ένα runbook: Γράψτε ένα σενάριο PowerShell που ελέγχει την κατάσταση του VM και το σταματάει εάν δεν χρησιμοποιείται. Για παράδειγμα, μπορείτε να ελέγξετε τη χρήση της CPU και να σταματήσετε το VM εάν είναι κάτω από ένα συγκεκριμένο όριο [3] [4].
- Ρυθμίστε ένα χρονοδιάγραμμα: Συνδέστε το runbook σε ένα πρόγραμμα, ώστε να λειτουργεί σε τακτά χρονικά διαστήματα για να ελέγξετε και ενδεχομένως να σταματήσετε τα ανεπιθύμητα VMS [3].

3. Azure Ειδοποιήσεις και ομάδες δράσης

Μια άλλη προσέγγιση είναι η χρήση του Azure Monitor για τη δημιουργία ειδοποιήσεων με βάση τη χρήση της CPU ή άλλες μετρήσεις. Όταν αυτές οι ειδοποιήσεις ενεργοποιούν, μπορούν να καλέσουν μια ομάδα δράσης που σταματά το VM:

- Δημιουργήστε έναν κανόνα ειδοποίησης: Ρυθμίστε μια ειδοποίηση στην οθόνη Azure που ενεργοποιεί όταν η χρήση CPU της VM πέφτει κάτω από ένα συγκεκριμένο όριο [4] [6].
- Ρύθμιση μιας ομάδας δράσης: Ρύθμιση μιας ομάδας δράσης που περιλαμβάνει ένα webhook ή άλλη ενέργεια για να σταματήσει το VM όταν ενεργοποιείται η ειδοποίηση [2] [4].

4. Λειτουργίες Azure

Οι λειτουργίες Azure μπορούν επίσης να χρησιμοποιηθούν για την αυτοματοποίηση των διακοπών VM. Μπορείτε να δημιουργήσετε μια λειτουργία που εκτελείται σε ένα πρόγραμμα ή βασίζεται σε σκανδάλες και χρησιμοποιεί API της Azure για να σταματήσει τα VMS:

- Δημιουργήστε μια εφαρμογή λειτουργίας: Ανάπτυξη μιας συνάρτησης που ελέγχει τη χρήση VM και την σταματάει εάν είναι απαραίτητο [5].
- Προγραμματίστε τη λειτουργία: Χρησιμοποιήστε τις δυνατότητες προγραμματισμού του Azure για να εκτελέσετε τη λειτουργία σε συγκεκριμένους χρόνους ή διαστήματα [5].

Κάθε μέθοδος έχει τα δικά της πλεονεκτήματα και μπορεί να επιλεγεί με βάση την πολυπλοκότητα των απαιτήσεών σας και την κλίμακα του περιβάλλοντος σας.

Αναφορές:
[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-automatication-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/underutilized-virtual-machines-azure-alerts
[7] https://stackoverflow.com/questions/71391125/is-it-possible-to-automate-swutdown-in-azure-vms-to-saves
[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-shutdown/
[10] https://turbo360.com/blog/auto-shutdown-azure-vm-when-idle