REL06-BP04 自動化回應 (即時處理和警示) - 可靠性支柱

REL06-BP04 自動化回應 (即時處理和警示)

偵測到事件時,使用自動化以採取動作,例如取代故障的元件。

實作警示的自動即時處理,以便系統可以採取快速的糾正措施,並嘗試在觸發警示時防止故障或服務降級。對警示的自動回應可能包括替換故障元件、調整運算容量、將流量重新導向到運作狀態良好的主機、可用區域或其他區域,以及操作人員通知。

預期成果:識別即時警示,並設定警示的自動處理,以調用採取的適當動作,維護服務水準目標和服務水準協議 (SLA)。自動化的範圍從單一元件的自我修復活動到全站點的容錯移轉。

常見的反模式:

  • 針對關鍵的即時警示沒有清晰的清單或目錄。

  • 對關鍵警示沒有自動回應 (例如,當運算資源即將耗盡時,發生自動擴展)。

  • 矛盾的警示回應動作。

  • 操作人員在收到提醒通知時沒有可以遵循的標準作業程序 (SOP)。

  • 未監控組態變更,因為未偵測到的組態變更可能會導致工作負載停機。

  • 沒有復原意外組態變更的策略。

建立此最佳實務的優勢:自動化警示處理可改善系統復原能力。系統會自動採取糾正措施,減少人為介入時容易出錯的手動活動。工作負載運作符合可用性目標,並減少服務中斷。

未建立此最佳實務時的曝險等級:

實作指引

為了有效管理提醒並自動化其回應,請根據提醒的重要性和影響來進行分類,記錄回應程序,並在為任務排名前規劃好回應。

識別需要特定動作的任務 (通常會在執行手冊中詳細說明),並檢查所有執行手冊和程序手冊以確定哪些任務可以自動化。可以定義的動作通常也可以自動化。如果動作無法自動化,請在 SOP 中記錄手動步驟,並對操作人員進行相關培訓。持續挑戰手動程序以尋求自動化機會,以便您可以建立和維護用來自動化提醒回應的計畫。

實作步驟

  1. 建立警示清單:若要取得所有警示的清單,可以透過 Amazon CloudWatch 命令 describe-alarms 來使用 AWS CLI。視設定的警示數量而定,您可能必須使用分頁來擷取每個呼叫的警示子集,或者也可以使用 AWS SDK 透過 API 呼叫來取得警示。

  2. 記錄所有警報動作:更新執行手冊與所有警示及其動作,無論其為手動還是自動。AWS Systems Manager 可提供預先定義的執行手冊。如需有關執行手冊的詳細資訊,請參閱 Working with runbooks。如需有關如何檢視執行手冊內容的詳細資訊,請參閱檢視執行手冊內容

  3. 設定和管理警示動作:對於任何需要動作的警示,請使用 CloudWatch SDK 指定自動化動作。例如,您可以建立和啟用警示的動作,或停用警示的動作,以根據 CloudWatch 警示自動變更 Amazon EC2 執行個體的狀態。

    也可使用 Amazon EventBridge 來自動回應系統事件,例如應用程式可用性問題或資源變動。您可建立規則來指示您在意的事件,以及當事件符合規則時執行的動作。可以自動啟動的動作包括調用 AWS Lambda 函數、調用 Amazon EC2 Run Command、將事件轉送至 Amazon Kinesis Data Streams 以及查看使用 EventBridge 自動化 Amazon EC2

  4. 標準操作程序 (SOP):根據您的應用程式元件,AWS Resilience Hub 會建議多個 SOP 範本。您可以使用這些 SOP 記錄在發出提醒時操作員應遵循的所有程序。也可以根據 Resilience Hub 建議來建構 SOP,其中您需要具有相關彈性政策的 Resilience Hub 應用程式,以及針對該應用程式的歷史彈性評估。SOP 的建議會由彈性評估產生。

    Resilience Hub 與 Systems Manager 合作,透過提供許多 SSM 文件作為這些 SOP 的基礎來自動執行 SOP 的步驟。例如,Resilience Hub 可能會建議使用 SOP 來根據現有的 SSM 自動化文件新增磁碟空間。

  5. 使用 Amazon DevOps Guru 執行自動化動作:可使用 Amazon DevOps Guru 來自動監控應用程式資源,以偵測異常行為並提供目標建議,以縮短問題識別和矯正時間。使用 DevOps Guru,可以近乎即時地監控多個來源的操作資料串流,包括 Amazon CloudWatch 指標、AWS ConfigAWS CloudFormationAWS X-Ray。也可以使用 DevOps Guru 在 OpsCenter 中自動建立 OpsItems,並將事件傳送至 EventBridge 以實現額外的自動化

資源

相關的最佳實務:

相關文件:

相關影片:

相關範例: