在 State Manager 與 Maintenance Windows 之間進行選擇 - AWS Systems Manager

在 State Manager 與 Maintenance Windows 之間進行選擇

State Manager 和 Maintenance Windows (AWS Systems Manager 的功能) 可以在受管節點上執行某些類似的更新。您選擇哪一項,取決於您是否需要在指定的期間內自動化系統合規,或執行高優先順序、時間敏感的任務。

State Manager 和 Maintenance Windows:關鍵使用案例

State Manager (AWS Systems Manager 的功能),會為受管節點和 AWS 帳戶 中的 AWS 資源設定和維護所需的狀態組態。您可以將組態和目標的組合定義為關聯物件。State Manager 如果您希望將帳戶中的所有受管節點維持為一致狀態、使用 Amazon EC2 Auto Scaling 產生新節點,或對帳戶中受管節點設定嚴格的合規報告需求,則建議使用此功能。

主要使用案例 State Manager 如下所示:

  • Auto Scaling 案例:State Manager 可以手動或透過 Auto Scaling 群組監控帳戶內啟動的所有新節點。如果帳戶中有任何針對該新節點的關聯 (透過標籤或所有節點),則該特定關聯會自動套用至新節點。

  • 合規報告:State Manager 可以推動帳戶中資源所需狀態的合規報告。

  • 支援所有節點:State Manager 可以鎖定指定帳戶內的所有節點。

維護時段會在指定的時段內執行一或多個 AWS 資源。您可以定義包含開始和結束時間的單一維護時段。您可以指定要在此維護時段內執行的多個任務。使用 Maintenance Windows (AWS Systems Manager 的功能),如果您的高優先順序操作包括修補受管節點、在更新期間在節點上執行多種類型的工作,或控制何時可以在節點上執行更新作業。

主要使用案例 Maintenance Windows 如下所示:

  • 執行多個文件:維護時段可以執行多個工作。每個任務都可以使用不同的文件類型。因此,您可以在單一維護時段內使用不同的任務來建置複雜的工作流程。

  • 修補程式:維護時段可以針對標記特定標記或資源群組的帳戶內所有受管節點提供修補支援。由於修補通常涉及停止節點 (例如,從負載平衡器移除節點)、修補和後續處理 (將節點放回生產環境),因此其可以在指定的修補程式時段內做為一系列任務來完成修補。

  • 時段動作:維護時段可讓一或多組動作在特定時段內啟動。維護時段不會在該時段之外啟動。已啟動的動作會繼續進行直到完成為止,即使它們在該時段外完成也是如此。

下表會比較 State Manager 和 Maintenance Windows 的主要功能。

功能 State Manager Maintenance Windows

AWS CloudFormation 整合

AWS CloudFormation 範本支援 State Manager 關聯。

AWS CloudFormation 範本支援維護時段、時段目標和時段任務。

合規

每個 State Manager 關聯會報告與目標資源所需狀態相關的合規。您可以使用合規儀表板來彙總和檢視報告的合規。

不適用.

組態管理整合

State Manager 支援外部所需的狀態解決方案,例如 Microsoft PowerShell Desired State Configuration (DSC)、Ansible playbooks 和 Chef recipes。您可以使用 State Manager 關聯來測試組態管理解決方案是否正常運作,並在您準備就緒時將其組態變更套用至您的節點。

不適用.

文件

State Manager 組態可以定義為政策文件 (用於收集庫存資訊)、適用於 AWS 的 Automation Runbook,例如 Amazon Simple Storage Service (Amazon S3) 儲存貯體,或受管節點的 Systems Manager 命令文件 (SSM 文件)。

Maintenance Windows 組態可以定義為自動化文件 (具有選用核准工作流程的多步驟動作) 或 SSM 文件 (受管節點的所需狀態)。

監控

State Manager 會監控節點組態、關聯或狀態的變更 (例如,即將上線的新節點)。當 State Manager 偵測到這些變更時,指定的關聯會重新套用至最初以該關聯為目標的節點。

不適用.

任務中的優先順序

不適用.

維護時段內的任務可以獲指派優先順序。具有相同優先順序的所有任務都會平行執行。優先順序較低的工作會在具有較高優先順序的工作達到最終狀態之後執行。無法有條件地執行任務。優先順序較高的任務達到其最終狀態後,不論先前工作的狀態為何,都會執行下一個優先順序工作。

安全控制

在跨大型機群部署組態時,State Manager 支援兩種安全控制。您可以使用最大並行性來定義應套用組態的並行節點或資源數目。如果整個機群發生特定數量或百分比的錯誤,您可以定義一個可用於暫停 State Manager 關聯的最大錯誤率。

在跨大型機群部署組態時,維護時段支援兩種安全控制。您可以使用最大並行性來定義應套用組態的並行節點或資源數目。如果整個機群發生特定數量或百分比的錯誤,您可以定義一個可用於暫停維護時段內的動作的最大錯誤率。

排程

您可以隨需執行 State Manager 關聯,以特定的 Cron 間隔,以給定的速率,或者在建立時。如果您想要以一致且及時的方式維持所需的資源狀態,該方法非常有用。

維護時段支援多種排程選項,包括 at 表達式 (例如 "at(2021-07-07T13:15:30)")、cron 和 rate 表達式、帶偏移量的 cron、應執行維護時段的開始和結束時間,以及指定在給定時段內何時停止排程的截止時間。

目標鎖定

State Manager 關聯可以使用節點 ID、標籤或資源群組鎖定一個或多個節點。State Manager 可以鎖定指定帳戶內的所有受管節點。

維護時段可以使用節點 ID、標籤或資源群組來鎖定一個或多個節點。

維護時段內的任務

不適用.

維護時段可以支援一個或多個任務,其中每個任務以特定自動化 Runbook 或命令文件動作為目標。除非為不同的任務設定了不同的優先順序,否則維護時段內的所有任務都會平行執行。

整體而言,維護時段支援執行四種任務類型:

  • AWS Systems Manager Run Command 命令

  • AWS Systems Manager 自動化工作流程

  • AWS Lambda 函式

  • AWS Step Functions 任務