การปิดการปิดเครื่อง Azure VMS ที่ไม่ได้ใช้งานโดยอัตโนมัติสามารถทำได้ด้วยวิธีการหลายวิธีโดยแต่ละวิธีมีข้อดีและความซับซ้อนของตัวเอง
1. ฟีเจอร์ Azure Auto-Shutdown
วิธีที่ง่ายที่สุดคือการใช้คุณสมบัติการตัดอัตโนมัติในตัวของ Azure สิ่งนี้ช่วยให้คุณสามารถกำหนดเวลาที่กำหนดให้ VM ของคุณปิดตัวลงซึ่งสามารถช่วยลดค่าใช้จ่ายในช่วงเวลานอกเวลา เพื่อกำหนดค่าสิ่งนี้:
- เข้าสู่ระบบพอร์ทัล Azure
- นำทางไปยัง VM ที่คุณต้องการกำหนดค่า
- ภายใต้ส่วนการดำเนินงานให้เลือกการปิดอัตโนมัติ
- สลับสวิตช์เป็นเปิดตั้งเวลาปิดระบบที่ต้องการและกำหนดค่าการแจ้งเตือนทางอีเมลหรือ webhook [1] [9] [10]
อย่างไรก็ตามวิธีนี้ไม่ได้รีสตาร์ท VMS โดยอัตโนมัติหรือจัดการกับเงื่อนไขที่ซับซ้อนเช่นการใช้ CPU
2. Azure Automation
สำหรับสถานการณ์ที่ซับซ้อนมากขึ้นเช่นการปิด VMS ตามการใช้งาน CPU หรือเงื่อนไขอื่น ๆ สามารถใช้ Azure Automation ได้ สิ่งนี้เกี่ยวข้องกับการสร้าง runbook ที่สามารถหยุด VMS ตามเกณฑ์เฉพาะ:
- สร้างบัญชี Azure Automation: นี่เป็นสิ่งจำเป็นสำหรับการเรียกใช้สคริปต์ที่จัดการทรัพยากร Azure ของคุณ [3]
- สร้าง Runbook: เขียนสคริปต์ PowerShell ที่ตรวจสอบสถานะของ VM และหยุดมันหากมันด้อยโอกาส ตัวอย่างเช่นคุณสามารถตรวจสอบการใช้งาน CPU และหยุด VM หากอยู่ต่ำกว่าเกณฑ์ที่กำหนด [3] [4]
- ตั้งค่ากำหนดการ: ลิงค์ runbook ไปยังตารางเวลาเพื่อให้มันทำงานเป็นระยะเพื่อตรวจสอบและอาจหยุด VMs ที่ไม่ได้ใช้งาน [3]
3. การแจ้งเตือน Azure และกลุ่มการกระทำ
อีกวิธีหนึ่งคือการใช้ Azure Monitor เพื่อสร้างการแจ้งเตือนตามการใช้งาน CPU หรือตัวชี้วัดอื่น ๆ เมื่อทริกเกอร์การแจ้งเตือนเหล่านี้พวกเขาสามารถเรียกกลุ่มแอ็คชั่นที่หยุด VM:
- สร้างกฎการแจ้งเตือน: ตั้งค่าการแจ้งเตือนใน Azure Monitor ที่กระตุ้นเมื่อการใช้ 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-automatically-when-idle-for-x-minute-a-step-by-step-guide -24jn
[4] https://learn.microsoft.com/en-us/azure/virtual-machines/cost-optimization-bractices
[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-poss-poss-to-automate-shutdown-in-azure-vms-to-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-and-hutdown/
[10] https://turbo360.com/blog/auto-shutdown-azure-vm-when-idle