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

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

使用 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-StopRdsInstanceAWS-StartRdsInstanceRunbook (Runbook) 來停止並啟動 Amazon RDS 資料庫執行個體。這表示您不需要使用 AWS Lambda 函數編寫自訂邏輯,也不需要建立 Amazon CloudWatch Events 規則。

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 資料庫執行個體一次最多可停止七天。七天後,資料庫執行個體會自動重新啟動,以確保其收到任何必要的維護更新。

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

Architecture

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

工作流程具有下列步驟:

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

2. 登錄 Systems Manager 自動化工作到維護視窗,藉由使用AWS-StopRdsInstanceAWS-StartRdsInstanceRunbook。

3. 使用 Amazon RDS 資料庫執行個體的標籤型資源群組,在維護期間註冊目標。

技術堆疊

  • AWS CloudFormation

  • AWS Identity and Access Management (IAM)

  • Amazon RDS

  • Systems Manager

自動化和擴充

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

Tools

  • AWS CloudFormation— AWS CloudFormation 是一項服務,可協助您為 AWS 資源建立模型並進行設定。

  • AWS Identity and Access Management (IAM)— IAM 是一種 Web 服務,可協助您安全地控制對 AWS 資源的存取。

  • Amazon RDS— Amazon Relational Database Service (Amazon RDS) 是一種 Web 服務,可以讓 AWS 雲端中關聯式資料庫的設定、操作和擴展更加簡單。

  • AWS Resource Groups— Resource Groups 可協助您將 AWS 資源組織成群組、標記資源,以及管理、監控和自動化已分組資源上的任務。

  • AWS Systems Manager-Systems Manager 是 AWS 服務,您可用來在 AWS 上檢視和控制基礎設施。

  • AWS Systems Manager Automation— Systems Manager 自動化可簡化 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和其他 AWS 資源常見的維護和部署任務。

  • AWS Systems Manager 維護時段-維護 Windows 可協助您定義何時執行可能會對執行個體造成破壞性動作的排程。

Epics

任務描述所需技能
設定 Systems Manager 自動化的 IAM 服務角色。

登入至 AWS 管理主控台並為 Systems Manager 自動化建立服務角色。您可以從下列兩種方法中使用其中一項來建立此服務角色:

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 Resource Name (ARN)。

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

AWS 管理員
任務描述所需技能
為 Amazon RDS 資料庫執行個體加上標記。

開啟 Amazon RDS 主控台並為您要新增至資源群組的 Amazon RDS 資料庫執行個體加上標籤。標籤是指派給 AWS 資源的中繼資料,並由金鑰/值對組所組成。建議您使用Action作為標籤鍵開始停止作為數值

如需此項目的詳細資訊,請參閱新增、列出及移除標籤在亞馬遜 RDS 文件中。

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

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

UNDER群組條件,請確定您選擇AWS::RDS::DBInstance做為資源類型,然後提供標籤的索引鍵值配對 (例如,「動作-開始停止」)。這可確保服務只會檢查 Amazon RDS 資料庫執行個體,而不會檢查具有此標籤的其他資源。 請確定您已記錄資源群組的名稱。

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

AWS 管理員
任務描述所需技能
建立維護時段。
  1. 開啟 AWS Systems Manager 主控台,選擇維護時段,然後選擇建立維護時段。提供維護時段的名稱 (例如,「停止執行個體」)、 輸入描述,然後取消勾選允許未註冊的目標

  2. 選擇(Cron/rate 表達式),並提供排程運算式以定義何時啟動 Amazon RDS 資料庫執行個體。Enter1(針對)Duration (持續時間)0for停止初始化 任務。根據預設,時區顯示 UTC。您可以根據 cron 表達式中定義的時間戳更改時區以啟動維護窗口。

  3. 選擇 Create maintenance window (建立維護時段)。系統會帶您回到維護時段頁面,而維護時段狀態為Enabled

重要:停止資料庫執行個體的工作在啟動時幾乎會立即執行,而且不會跨越整個維護期間。這種模式提供了Duration (持續時間)停止初始化任務因為它們是維護期間的必要參數。

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

AWS 管理員
將目標指定給維護時段。
  1. 在 AWS Systems Manager 主控台上,選擇維護時段中,選擇動作,然後選擇登記目標

  2. 在 中Targets (目標)區域指定選擇資源群組,然後在您帳戶中選擇現有資源群組的名稱。

  3. 適用於Resource types中,選擇AWS::RDS::DBInstance,然後選擇註冊目標。

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

AWS 管理員
將工作指派給維護時段。
  1. 在 AWS Systems Manager 主控台上,選擇維護時段,然後選擇您的維護時段。選擇動作,然後選擇註冊自動化任務。

  2. 適用於文件中,選擇AWS-StopRdsInstance 

  3. 在 中Targets (目標)區段中,選擇選取已註冊的目標群組,然後選擇您在目前維護時段註冊的維護時段目標。

  4. 適用於速率控制指定 100%並行數量錯誤閾值。您無法變更Rate control (比率控制)值,根據您對任務並發和錯誤閾值的要求。如需此項目的詳細資訊,請參閱關於並行和錯誤閾值(在 AWS Systems Manager 文件中)。

  5. 在 IAM 服務角色區域中,您可以選擇建立並使用 Systems Manager 的服務連結角色或選擇Use a custom service role (使用自訂服務角色)

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

    • InstanceId {{RESOURCE_ID}}

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

    • 請注意:適用於InstanceId,則會使用虛擬參數從 ARN 擷取 Amazon RDS 資料庫資源識別碼。要進一步了解偽參數,請參閱有關虛擬參數(在 AWS Systems Manager 文件中)。

  7. 選擇 Register Automation task (註冊自動化任務)

Important (重要)所以此服務角色選項會定義維護時段執行工作所需的服務角色。不過,這個角色與您先前為 Systems Manager 自動化建立的服務角色不相同。

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

AWS 管理員
任務描述所需技能
設定維護時段以啟動 Amazon RDS 資料庫執行個體。

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

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

  • 為維護時段使用新名稱 (例如,「開始執行個體」)

  • 用要用來啟動數據庫實例的 cron 表達式替換 cron 表達式

  • 取代AWS-StopRdsInstanceRunbook 與AWS-StartRdsInstance中的任務

AWS 管理員

相關資源