[AWS Technical Support Note] วิธีทดสอบ CloudWatch Alarm ที่กำหนดค่าไว้
ปัญหาที่เกิดขึ้น
ต้องการตรวจสอบว่า CloudWatch Alarm ที่ตั้งค่าไว้เพื่อเป็นส่วนนึ่งของการทดสอบความล้มเหลวสามารถทำงานได้จริงหรือเปล่า
วิธีแก้ปัญหา
มี 2 วิธีในการรัน Alarm ให้ทำงาน
- เปลี่ยนค่าให้แตกต่างจากค่าเดิมโดยให้ Alarm ทำงานทันที
-
บังคับเปลี่ยนสถานะของ Alarm โดยใช้ AWS CLI คำสั่ง
set-alarm-state
ของ cloudwatch
อีกวิธีหนึ่งคือการการสร้างสถานการณ์ให้ตรงกับเงื่อนไขการทำงานของ Alarm
ซึ่งสามารถจำลองได้โดยใช้คำสั่งสำหรับ Metric เช่น CPUUtilization ของ EC2 แต่อย่างไรก็ตามก็มีบาง Metric ที่ต้องใช้เวลาและค่าใช้จ่ายในการทำให้เกิดขึ้นจริงเช่นกัน
ทั้งนี้ยังมี Metric ที่ไม่สามารถควบคุมได้จากผู้ใช้งาน เช่น การตรวจสอบสถานะ (Status check)
ซึ่งอาจไม่สมจริงนักในบางกรณี
วิธีในข้อ 1 สามารถทำงานได้จริงกับเคสหลายๆเคสแต่ก็มีความเสี่ยงที่จะเกิดข้อผิดพลาดในการคืนค่าดั้งเดิม ดังนั้นในบทความนี้เราจะแนะนำวิธีที่ 2 ที่ใช้ CLI ครับ
สร้าง Alarm
สมมุติว่าเรามี Alarm ตามด้านล่างนี้ ที่ตั้งค่าให้แจ้งเตือนทางอีเมลเมื่อเกิด Alarm
เปลี่ยน status
ป้อนชื่อ Alarm และ สถานะที่ต้องการเปลี่ยน(ALARM)เพื่อให้เริ่มการทำงาน จากข้อมูลอ้างอิง
$ aws cloudwatch set-alarm-state --alarm-name blog-alarm-test_1 --state-value ALARM --state-reason "test"
ตรวจสอบการทำงาน
บน console สถานะ CloudWatch Alarm จะแสดงเป็น In alarm
และอีเมลที่มีการตั้งค่าไว้ใน Actions ก็ได้รับแจ้งเตือนเช่นกัน
บทความอ้างอิง
- Create a CPU usage alarm - Amazon CloudWatch (English)
- set-alarm-state (English)
- แนะนำการใช้งาน Dashboard ใน CloudWatch และตรวจสอบว่าสามารถทำอะไรได้บ้าง | DevelopersIO
- การเพิ่ม Monitoring ของ EC2 Instance ไปยัง CloudWatch Dashboard | DevelopersIO
- AWS CloudWatch คืออะไร? การแนะนำฟังก์ชันของ AWS CloudWatch ในปี 2023 | DevelopersIO