使用 AWS Systems Manager 維護視窗自動停止和啟動 Amazon RDS 資料庫執行個體 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 AWS Systems Manager 維護視窗自動停止和啟動 Amazon RDS 資料庫執行個體

由阿希塔·德席爾瓦(AWS)創建

環境:生產

技術:管理與治理、成本管理、資料庫、雲端原生

AWS 服務:AWS Systems Manager;Amazon RDS

Summary

此模式示範如何使用 AWS Systems Manager 維護 Windows,按特定排程自動停止和啟動 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體 (例如,在工作時間以外關閉資料庫執行個體以降低成本)。

AWS Systems Manager Automation 提供停止AWS-StopRdsInstance和啟動 Amazon RDS 資料庫執行個體的操作手AWS-StartRdsInstance冊。這表示您不需要使用 AWS Lambda 函數撰寫自訂邏輯,也不需要建立 Amazon CloudWatch 事件規則。

AWS Systems Manager 提供兩種排程任務的功能:狀態管理員維護視窗。狀態管理器為您的 Amazon Web Services (AWS) 帳戶中的資源設定和維護所需的狀態組態一次或按特定排程。維護 Windows 會在特定時間範圍內,對帳戶中的資源執行工作。雖然您可以在狀態管理員或維護 Windows 中使用此模式的方法,但我們建議您使用維護 Windows,因為它可以根據指派的優先順序執行一或多個任務,也可以執行 AWS Lambda 函數和 AWS Step Functions 任務。如需狀態管理員和維護視窗的詳細資訊,請參閱 AWS Systems Manager 文件中的狀態管理員和維護視窗之間的選擇

此模式提供詳細步驟,以設定兩個使用 cron 運算式停止並啟動 Amazon RDS 資料庫執行個體的獨立維護時段。 

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 您想要按特定排程停止和啟動的現有 Amazon RDS 資料庫執行個體。

  • Cron 表達式為您所需的時間表。例如,(0 9 * * 1-5)cron 表示式會在星期一至星期五的早上 09:00 執行。

  • 熟悉 Systems Manager。

限制

  • Amazon RDS 資料庫執行個體一次最多可停止七天。7 天後,資料庫執行個體會自動重新啟動,以確保收到任何必要的維護更新。

  • 您無法停止僅供讀取複本或具有僅供讀取複本的資料庫執行個體。

  • 您無法在異地同步備份組態中停止 Amazon RDS for SQL Server 資料庫執行個體。

  • 服務配額適用於維護 Windows 和 Systems Manager 自動化。如需有關服務配額的詳細資訊,請參閱 AWS 一般參考文件中的 AWS Systems Manager 端點和配額。 

架構

下圖顯示自動停止和啟動 Amazon RDS 資料庫執行個體的工作流程。

工作流程包含下列步驟:

1. 建立維護時段,並使用 cron 運算式定義 Amazon RDS 資料庫執行個體的停止和開始排程。

2. 使用AWS-StopRdsInstanceAWS-StartRdsInstance runbook 將 Systems Manager 自動化工作註冊到維護視窗。

3. 為 Amazon RDS 資料庫執行個體使用以標籤為基礎的資源群組,在維護時段註冊目標。

技術, 堆

  • AWS CloudFormation

  • AWS Identity and Access Management (IAM)

  • Amazon RDS

  • Systems Manager

自動化和規模

您可以標記必要的 Amazon RDS 資料庫執行個體、建立包含所有標記資料庫執行個體的資源群組,並將此資源群組註冊為維護時段的目標,同時停止和啟動多個 Amazon RDS 資料庫執行個體。

工具

史诗

任務描述所需技能

設定系 Systems Manager 自動化的 IAM 服務角色。

登入 AWS 管理主控台,並為系統管理員自動化建立服務角色。您可以使用下列兩種方法之一來建立此服務角色:

系 Systems Manager 自動化工作流程會使用服務角色在 Amazon RDS 資料庫執行個體上執行啟動和停止動作來呼叫 Amazon RDS。

服務角色必須設定下列內嵌政策,該政策具有啟動和停止 Amazon RDS 資料庫執行個體的許可:

{     "Version": "2012-10-17",     "Statement": [         {             "Sid": "RdsStartStop",             "Effect": "Allow",             "Action": [                 "rds:StopDBInstance",                 "rds:StartDBInstance"             ],             "Resource": "<RDS_Instance_ARN>"                        },         {             "Sid": "RdsDescribe",             "Effect": "Allow",             "Action": "rds:DescribeDBInstances",             "Resource": "*"         }     ] }

請務必以 <RDS_Instance_ARN> Amazon RDS 資料庫執行個體的 Amazon 資源名稱 (ARN) 取代。

重要:請確定您已記錄服務角色的 ARN。

AWS 管理員
任務描述所需技能

標記 Amazon RDS 資料庫執行個體。

開啟 Amazon RDS 主控台,並標記要新增至資源群組的 Amazon RDS 資料庫執行個體。標籤是指派給 AWS 資源的中繼資料,由鍵值配對組成。我們建議您使用 Action 作為標籤鍵,並將StartStop其用作

如需有關此項目的詳細資訊,請參閱 Amazon RDS 文件中的新增、列出和移除標籤

AWS 管理員

為已標記的 Amazon RDS 資料庫執行個體建立資源群組。

開啟 AWS Resource Groups 主控台,並根據您為 Amazon RDS 資料庫執行個體建立的標籤建立資源群組。

在「分組準則」下,確定您選擇 AWS:: RDS:: DBInstance 做為資源類型,然後提供標籤的鍵值對 (例如,「動作-」)。StartStop這可確保服務僅檢查 Amazon RDS 資料庫執行個體,而不會檢查具有此標籤的其他資源。 請確定您已記錄資源群組的名稱。

如需詳細資訊和詳細步驟,請參閱 AWS Resource Groups 文件中的建立以標籤為基礎的查詢和建立群組。 

AWS 管理員
任務描述所需技能

建立維護時段。

  1. 開啟 AWS Systems Manager 主控台,選擇維護視窗,然後選擇 [建立維護時段]。提供維護時段的名稱 (例如,"StopRdsInstance「),輸入說明,然後取消核取 [允許未註冊的目標]。

  2. 選擇 CRON/ 速率運算式並提供排程運算式,以定義何時應停止 Amazon RDS 資料庫執行個體。輸入 1 做為「持續時間」,輸入 0 表示「停止啟動工作」。依預設,時區會顯示 UTC。您可以根據 cron 運算式中定義的時間戳記,變更時區以起始維護時段。

  3. 選擇 Create maintenance window (建立維護時段)。系統會返回維護時段頁面,且維護時段的狀態為「已啟用」。

重要事項:停止資料庫執行個體的工作幾乎會在啟動時立即執行,而且不會跨越整個維護時段的持續時間。此模式提供「持續時間」和「停止啟動」任務的最小值,因為它們是維護時段的必要參數。

如需詳細資訊和詳細步驟,請參閱 AWS Systems Manager 文件中的建立維護時段 (主控台)

AWS 管理員

將目標指派給維護時段。

  1. AWS Systems Manager 主控台上,選擇 [維護 Windows],選擇 [動作],然後選擇 [註冊目標]。

  2. 在 [目] 區域中,指定 [選擇資源群組],然後選擇帳號中現有資源群組的名稱。

  3. 對於資源類型,請選擇 AWS:: RDS:: 資料庫執行個體,然後選擇註冊目標。

如需詳細資訊和詳細步驟,請參閱 AWS Systems Manager 文件中的將目標指派到維護時段 (主控台)

AWS 管理員

將工作指派給維護時段。

  1. AWS Systems Manager 主控台上,選擇維護時段,然後選擇您的維護時段。選擇 [動作],然後選擇 [註冊自動化工作

  2. 對於「文件」,請選擇 AWS-StopRdsInstance

  3. 在「目標」段落中,選擇選取註冊的目標群組,然後選擇您在目前的維護時段註冊的維護時段目標。

  4. 針對「匯率」控制指定 100% 做為「並」與「錯誤」臨界值您可以根據工作並行和錯誤臨界值的需求,變更「比率」控制值。如需詳細資訊,請參閱 AWS Systems Manager 說明文件中的關於並行和錯誤閾值

  5. IAM 服務角色區段中,對於服務角色,請將此方塊保留空白或建立您自己的自訂角色。如果您將方塊保留空白,Systems Manager 會自動建立服務連結角色,AWSServiceRoleForAmazonSSM 然後將角色與工作產生關聯。若要建立您自己的自訂角色,請參閱為維護時段建立自訂服務角色 (主控台),然後將該自訂角色與工作產生關聯。

  6. 在「輸入參數」區段中,為 Runbook 指定下列參數:

    • InstanceId: {{RESOURCE_ID}}

    • AutomationAssumeRole:提供您為 Systems Manager 自動化建立之服務角色的 ARN。

    • 備註:對於 InstanceId,虛擬參數是用來從 ARN 擷取 Amazon RDS 資料庫資源識別碼。若要進一步了解虛擬參數,請參閱 AWS Systems Manager 文件中的關於虛擬參數

  7. 選擇註冊自動化工作

重要事項:服務角色」選項會定義維護時段執行工作所需的服務角色。不過,此角色與您先前針對 Systems Manager 自動化建立的服務角色並不相同。

如需詳細資訊和詳細步驟,請參閱 AWS Systems Manager 文件中的將任務指派到維護時段 (主控台)

AWS 管理員
任務描述所需技能

設定維護時段以啟動 Amazon RDS 資料庫執行個體。

重複設定維護時段中的步驟,停止 Amazon RDS 資料庫執行個體史詩,以設定另一個維護時段,以便在排定的時間啟動 Amazon RDS 資料庫執行個體。

重要事項:設定維護時段以啟動資料庫執行個體時,必須進行下列變更:

  • 為維護時段使用新名稱 (例如,"StartRdsInstance「)。

  • 將 cron 運算式取代為您要用來啟動資料庫執行個體的 cron 運算式。

  • AWS-StartRdsInstance在任務中AWS-StopRdsInstance用替換工作手冊。

AWS 管理員

相關資源