【教學】如何自動修復 AWS 上故障的 EC2 實例



只要是管理 AWS 多年的維運人員,多多少少都會遇到 AWS (Amazon Web Services) 底層主機故障的問題,這問題會造成 CPU異常、網路不通,等等奇怪現象。而唯一解決辦法就是關閉實例( EC2 ),並再次開啟,讓實例從異常底層轉移到正常主機。


雖然這問題發生的機率不大,處理起來也相當迅速輕鬆,但令人擔憂的是,維運人員通常不會只管少量主機,大多都是一大批或一整群,一旦數量增加,發生這問題的機率也會直線上升,而且,如果運氣不好,發生的時間點又剛好都是在半夜,那可真的要人命。


好在,這也不是沒解決方案的。AWS 裡面其實有個內建小功能,可以再偵測到問題時就自動修復,本章節就是教大家如何在 EC2 實例上建置警報( Alarm ),並在觸發警報時,自動修復主機,進而達到工作量減輕的功效 !

環境

  • 雲平台: AWS


設定步驟

Step 1. 進入 AWS EC2 後台



Step 2. 找到要設定的主機

右鍵選擇 Monitor and troubleshoot => Manage CloudWatch alarm




Step 3. 設定 Alarm thresholds 欄位

修改 Type of data to sampleStatus check failed: eitherPeriod 就依自身環境需求下去做設定,想要敏感一點,數值就短一點,想要誤判減少就拉長 Consecutive PeriodPeriod 的數值




Step 4. 啟用 Alarm action 欄位

找到 Alarm action 並啟用,在下拉欄選擇 Recover

使用這設定後,AWS 會在觸發 Alarm thresholds 後,執行 Recover 的動作,具體 AWS 會做什麼事,可以參考 AWS 的 Recover your instance 文件 ,通常就是關閉損壞的實例 ( EC2 ) ,然後在健康的 Host 主機上啟動實例



Step 5. 確認設定,按下 Create ,完成收工 !






留言