[AWS Technical Support Note] วิธีทดสอบ CloudWatch Alarm ที่กำหนดค่าไว้

มี 2 วิธีในการรัน Alarm ให้ทำงานคือ 1.เปลี่ยนค่าให้แตกต่างจากค่าเดิมโดยให้ Alarm ทำงานทันที 2. บังคับเปลี่ยนสถานะของ Alarm โดยใช้ AWS CLI คำสั่ง set-alarm-state ของ cloudwatch

ปัญหาที่เกิดขึ้น

ต้องการตรวจสอบว่า CloudWatch Alarm ที่ตั้งค่าไว้เพื่อเป็นส่วนนึ่งของการทดสอบความล้มเหลวสามารถทำงานได้จริงหรือเปล่า

วิธีแก้ปัญหา

มี 2 วิธีในการรัน Alarm ให้ทำงาน

  1. เปลี่ยนค่าให้แตกต่างจากค่าเดิมโดยให้ Alarm ทำงานทันที

  2. บังคับเปลี่ยนสถานะของ 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 ก็ได้รับแจ้งเตือนเช่นกัน

บทความอ้างอิง

บทความต้นฉบับ

  • 設定した CloudWatch Alarm をテストする方法 | DevelopersIO (Japanese)