本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 AWS Systems Manager 维护窗口自动停止和启动 Amazon RDS 数据库实例
由 Ashita Dsilva 创作 () AWS
摘要
此模式演示如何使用 AWS Systems Manager 维护时段按特定计划自动停止和启动 Amazon Relational Database Service (AmazonRDS) 数据库实例(例如,在工作时间以外关闭数据库实例以降低成本)。
AWS Systems Manager Automation 提供了用于停止AWS-StopRdsInstance
和启动 Amazon RDS 数据库实例的和AWS-StartRdsInstance
运行手册。这意味着您无需使用 AWS Lambda 函数编写自定义逻辑或创建 Amazon Ev CloudWatch ents 规则。
Systems Manager 提供两种调度任务的功能:状态管理器和维护窗口。State Manager 一次性或按特定计划设置和维护您的 Amazon Web Services (AWS) 账户中资源所需的状态配置。Maintenance Windows 在特定时间段内对账户资源运行任务。尽管您可以将此模式的方法用于状态管理器或维护窗口,但我们建议您使用维护窗口,因为它可以根据分配的优先级运行一个或多个任务,也可以运行 AWS Lambda 功能和 AWS Step Functions 任务。有关状态管理器和维护窗口的更多信息,请参阅 Systems Manager 文档中的在状态管理器和维护窗口之间进行选择。
此模式提供了配置两个单独的维护窗口的详细步骤,这两个窗口使用 cron 表达式停止然后启动 Amazon RDS 数据库实例。
先决条件和限制
先决条件
活跃 AWS 账户的.
您想要按特定计划停止和启动的现有 Amazon RDS 数据库实例。
适用于所需计划的 Cron 表达式。例如,表达式在每个星期一、星期二、星期三、星期四和星期五的 09:00
cron(0 9 ? * MON-FRI *)
运行任务。有关更多信息,请参阅 System s Manager 文档中的维护时段的 Cron 和费率表达式。熟悉 Systems Manager。
启动和停止RDS实例的权限。欲了解更多信息,请参阅 Epics 部分。
限制
Amazon RDS 数据库实例一次最多可以停止七天。七天后,数据库实例将自动重启,以确保其收到所有必要维护更新。
您无法停止具有只读副本或作为只读副本的数据库实例。
您无法在多可用区配置中停止 Amazon RDS for SQL Server 数据库实例。
服务限额适用于 Maintenance Windows 和 Systems Manager Automation。有关服务配额的更多信息,请参阅 AWS 一般参考 文档中的AWS Systems Manager 终端节点和配额。
有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性,请参阅AWS 服务 按地区划分
。有关特定终端节点,请参阅服务终端节点和配额页面,然后选择服务的链接。
架构
下图显示了自动停止和启动 Amazon RDS 数据库实例的工作流程。
工作流程由以下步骤组成:
1. 创建维护时段并使用 cron 表达式来定义您的 Amazon RDS 数据库实例的停止和启动计划。
2. 使用 AWS-StopRdsInstance
或 AWS-StartRdsInstance
运行手册将 Systems Manager 自动化任务注册至维护时段。
3. 使用基于标签的资源组为您的 Amazon RDS 数据库实例在维护时段注册目标。
技术堆栈
AWS CloudFormation
AWS Identity and Access Management (IAM)
Amazon RDS
Systems Manager
自动化和扩缩
您可以同时停止和启动多个 Amazon RDS 数据库实例,方法是标记所需的 Amazon RDS 数据库实例,创建包含所有已标记数据库实例的资源组,并将此资源组注册为维护时段的目标。
工具
AWS CloudFormation是一项可帮助您建模和设置 AWS 资源的服务。
AWS Identity and Access Management (IAM) 是一项 Web 服务,可帮助您安全地控制对 AWS 资源的访问。
Amazon Relational Database Service (AmazonRDS) 是一项网络服务,可以更轻松地在中设置、操作和扩展关系数据库 AWS Cloud。
AWS Resource Groups可帮助您将 AWS 资源分组、标记资源以及管理、监控和自动执行分组资源上的任务。
AWS Systems Manager可以 AWS 服务 用来查看和控制您的基础架构 AWS。此模式使用 Systems Manager 的以下功能:
AWS Systems Manager 自动化简化了亚马逊弹性计算云 (AmazonEC2) 实例和其他 AWS 资源的常见维护和部署任务。
AWS Systems Manager 维护窗口可帮助您定义何时对实例执行可能造成中断的操作的时间表。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
配置 Systems Manager 自动化的IAM服务角色。 | 登录 AWS Management Console 并创建 Systems Manager 自动化的服务角色。您可以使用以下两种方法之一创建此服务角色: Systems Manager Automation 工作流程RDS通过使用服务角色在亚马逊RDS数据库实例上执行启动和停止操作来调用亚马逊。 必须使用以下内联策略配置服务角色,该策略有权启动和停止 Amazon RDS 数据库实例:
请务必 如果您不熟悉使用IAM策略和角色,请按照 “计划 Amazon RDS 停止并开始使用 重要请务必记录服务角色ARN的内容。 | AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
RDS为 Amazon 数据库实例添加标签。 | 打开 Amazon RDS 控制台 有关这方面的更多信息,请参阅 Amazon RDS 文档中的添加、列出和移除标签。 | AWS 管理员 |
为您标记的 Amazon RDS 数据库实例创建资源组。 | 打开AWS Resource Groups 控制台 在 “分组条件” 下,确保DBInstance为资源类型选择AWSRDS:::,然后提供标签的键值对(例如,“Action-StartStop”)。这样可以确保该服务仅检查是否存在 Amazon RDS 数据库实例,而不检查带有此标签的其他资源。 确保记录资源组的名称。 有关更多信息和详细步骤,请参阅 AWS Resource Groups 文档中的生成基于标签的查询并创建群组。 | AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
创建维护时段。 |
重要停止数据库实例的任务在启动时几乎立即运行,并且不会跨越整个维护时段。此模式提供了持续时间和停止启动任务的最小值,因其为维护时段的必需参数。 有关更多信息和详细步骤,请参阅 Systems Manager 文档中的创建维护窗口(控制台)。 | AWS 管理员 |
为维护时段分配目标。 |
有关更多信息和详细步骤,请参阅 Systems Manager 文档中的将目标分配给维护窗口(控制台)。 | AWS 管理员 |
为维护时段分配任务。 |
重要服务角色选项定义了维护时段运行任务所需的服务角色。但是,该角色不同于您之前为 Systems Manager Automation 创建的服务角色。 有关更多信息和详细步骤,请参阅 Systems Manager 文档中的向维护窗口(控制台)分配任务。 | AWS 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
配置维护时段以启动 Amazon RDS 数据库实例。 | 重复配置维护窗口中的步骤,停止 Amazon RDS 数据库实例 epic,配置另一个维护时段,在计划的时间启动 Amazon RDS 数据库实例。 重要在配置维护时段以启动数据库实例时,必须进行以下更改:
| AWS 管理员 |
相关资源
使用 Systems Manager 自动化文档来管理实例并削减非工作时间成本
(AWS 博客文章)