

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Managed Services 资源调度器
<a name="ams-resource-scheduler"></a>

使用 AWS Managed Services (AMS) 资源计划程序安排账户中 AutoScaling 群组、Amazon EC2 实例和 RDS 实例的自动启动和停止。在资源本来不打算全天候运行的情况下，这有助于降低基础设施成本。该解决方案建立在[实例调度器之上 AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler/)，但包含特定于 AMS 需求的其他功能和自定义设置。

**注意**  
默认情况下，AMS 资源调度器不与不属于 AWS CloudFormation 堆栈的资源进行交互。资源必须是以 “stack-”、“sc-” 或 “SC-” 开头的堆栈的一部分。要计划不属于 CloudFormation 堆栈的资源，可以将资源调度器堆栈参数更新`ScheduleNonStackResources`为`Yes`。

AMS 资源调度器使用周期和计划：
+ *周期*定义资源调度器运行的时间，例如开始时间、结束时间和当月中的几天。
+ *计划*包含您定义的时间段以及其他配置，例如 SSM 维护窗口、时区、休眠设置等；并根据配置的时间段规则指定资源何时运行。

您可以使用 AMS 资源计划程序的自动更改类型（CTs）来配置这些时间段和计划。

有关 AMS 资源调度器可用设置的完整详细信息，请参阅[解决方案](https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/components.html)组件中的相应 AWS 实例计划程序文档。有关解决方案的架构视图，请参阅 Architecture [overview.html](https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/architecture-overview.html) 上的相应 AWS 实例调度器文档。

# 部署 AMS 资源调度器
<a name="res-sched-deploying"></a>

要部署 AMS 资源调度器，请使用自动更改类型 (CT)：部署 \$1 AMS 资源调度器 \$1 解决方案 \$1 部署 (ct-0ywnhc8e5k9z5) 提出 RFC，然后在您的账户中部署解决方案。执行 RFC 后，包含默认配置的 AMS 资源调度器资源的 CloudFormation 堆栈将自动配置到您的账户中。有关资源调度器更改类型的更多信息，请参阅 [AMS 资源调度](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-ams-resource-scheduler-section.html)器。

**注意**  
**要了解您的账户中是否已部署 AMS 资源调度器，请查看该账户的 Lamb AWS da 控制台并查找计划程序函数AMSResource。**

在您的账户中配置 AMS 资源调度器后，我们建议您查看默认配置，并在需要时根据自己的偏好自定义配置，例如标签密钥、时区、计划服务等。有关推荐的自定义项的详细信息[自定义 AMS 资源调度器](res-sched-customize.md)，请参阅 “下一步”。

要进行自定义配置，或者只是确认资源调度器配置，

# 自定义 AMS 资源调度器
<a name="res-sched-customize"></a>

我们建议您使用更新的 AMS 资源计划程序更改类型自定义 AMS 资源调度器的以下属性，请参阅 [AMS 资源](https://docs.aws.amazon.com/managedservices/latest/ctref/management-ams-resource-scheduler-section.html)调度器。
+ **标签名称**：资源调度器将用于将实例计划与资源关联的标签的名称。默认值为 “计划”。
+ **定时服务**：以逗号分隔的资源调度器可以管理的服务列表。默认值为 “ec2、rds、自动缩放”。有效值为 “ec2”、“rds” 和 “自动缩放”
+ **默认时区**：指定资源调度器要使用的默认时区。默认值为 UTC。
+ **使用 CMK**：以逗号分隔的 Amazon KMS 客户托管密钥 (CMK) 列表 ARNs ，可以向资源计划程序授予权限。
+ **使用 LicenseManager**：以逗号分隔的 AWS 许可证管理器列表，可以 ARNs 向该资源调度器授予权限。

**注意**  
AMS 可能会不时发布功能和修复程序，以使您的账户中的 AMS 资源调度器保持最新状态。发生这种情况时，您对 AMS 资源调度器所做的任何自定义都将保留。

# 使用 AMS 资源调度器
<a name="res-sched-using"></a>

要在解决方案部署后配置 AMS 资源调度器，请使用自动资源调度器 CTs 创建、删除、更新和描述（获取有关）AMS 资源调度器周期（资源调度器运行的时间）和计划（配置的时间段和其他选项）。有关使用 AMS 资源计划程序更改类型的示例，请参阅 [AMS 资源计划程序](https://docs.aws.amazon.com/managedservices/latest/ctref/management-ams-resource-scheduler-section.html)。

要选择由 AMS 资源调度器管理的资源，在创建部署和计划后，您可以使用 AMS 标签创建 CTs 来标记 Auto Scaling 组、Amazon RDS 堆栈和 Amazon EC2 资源，使用您在部署期间提供的标签密钥和定义的时间表作为标签值。标记资源后，将根据您定义的资源计划程序计划安排资源启动或停止。

使用 AMS 资源调度器不会产生额外费用。但是，该解决方案会使用多个资源， AWS 服务 并且您需要为这些资源的使用付费。有关更多详细信息，请参阅[架构概述](https://docs.aws.amazon.com/solutions/latest/instance-scheduler-on-aws/architecture-overview.html)。

要选择退出 AMS 资源调度器，请执行以下操作：
+ 对于临时选择退出或禁用：使用自动管理 \$1 AMS 资源调度器 \$1 状态 \$1 禁用更改类型 (ct-14v49adibs4db) 提交 RFC
+ 要永久移除：提交管理层 \$1 其他 \$1 其他 \$1 更新（需要审核）(ct-0xdawir96cy7k) RFC 请求从资源调度器发布自动化系统中删除

# AMS 资源调度器成本估算器
<a name="resource-scheduler-cost-est"></a>

为了跟踪成本节省情况，AMS 资源调度器具有一个组件，该组件每小时计算由计划程序管理的 Amazon EC2 和 RDS 资源的估计成本节约。然后，这些成本节省数据将作为 CloudWatch 指标 (`AMS/ResourceScheduler`) 发布，以帮助您对其进行跟踪。成本节省估算器仅估算实例运行时间节省的时间。它不考虑任何其他成本，例如与资源相关的数据传输成本。

使用资源调度器启用了成本节约估算器。它每小时运行一次，并从中 AWS Cost Explorer检索成本和使用数据。它根据该数据计算出每种实例类型的平均每小时成本，然后预测在未计划的情况下运行一整天的成本。节省的成本是给定日期的预计成本与Cost Explorer的实际报告成本之间的差额。

例如，如果实例 A 的资源调度器配置为从上午 9 点到下午 5 点运行，则在给定一天中运行八个小时。Cost Explorer 将成本报告为 1 美元，使用量报告为 8。因此，每小时的平均成本为0.125美元。如果实例未使用资源调度器进行计划，则该实例将在当天运行 24 小时。在这种情况下，成本将为24x0.125 = 3美元。资源调度器帮助您节省了2美元的成本。

为了使成本节省估算器仅检索由 Cost Explorer 中的资源调度器管理的资源的成本和使用量，需要在账单控制面板中激活资源调度器用于定位资源的标签密钥作为**成本分配**标签。如果该账户属于某个组织，则需要在该组织的管理账户中激活标签密钥。有关执行此操作的信息，请参阅[激活用户定义的成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html)和[用户定义的成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html)

将标签密钥激活为成本分配标签后， AWS 计费开始跟踪资源调度器管理的资源的成本和使用情况，在这些数据可用之后，成本节省估算器开始计算节省的成本并将数据发布在中的`AMS/ResourceScheduler`指标命名空间下。 CloudWatch

# 成本估算器提示
<a name="resource-scheduler-cost-est-faqs"></a>

Cost Savings Estimator 在计算时不考虑预留实例、储蓄计划等折扣。估算器从 Cost Explorer 中提取使用成本，然后计算资源每小时的平均成本。有关更多详细信息，请参阅 “[了解您的 AWS 成本数据集：备忘单](https://aws.amazon.com/blogs/aws-cost-management/understanding-your-aws-cost-datasets-a-cheat-sheet/)”

为了使成本节省估算器仅检索由 Cost Explorer 中的资源调度器管理的资源的成本和使用量，需要在账单控制面板中激活资源调度器用于定位资源的标签密钥作为**成本分配**标签。如果该账户属于某个组织，则需要在该组织的管理账户中激活标签密钥。有关执行此操作的信息，请参阅[用户定义的成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html)。如果未激活成本分配标签，则即使启用了该指标，估算器也无法计算节省的费用并发布该指标。

# AMS 资源调度器最佳实践
<a name="resource-scheduler-bp"></a>

**计划 Amazon EC2 实例**
+ 实例关闭行为必须设置为`stop`，而不是设置为`terminate`。`stop`对于使用 AMS Amazon Create 自动更改类型 (ct-14027q0sjyt1h) EC2 创建的实例，通过将属性设置为，可以为通过摄取创建的 EC2 亚马逊实例将其设置为。 AWS CloudFormation `InstanceInitiatedShutdownBehavior` `stop`如果实例的关闭行为设置为`terminate`，则当资源调度器停止实例并且调度器无法启动它们时，实例就会结束。
+ 作为 Auto Scaling 组一部分的 Amazon EC2 实例不会由 AMS 资源计划程序单独处理，即使它们已被标记。
+ 如果目标实例根卷使用 KMS 客户主密钥 (CMK) 加密，则需要向您的资源调度器 IAM 角色添加额外的`kms:CreateGrant`权限，以便计划程序能够启动此类实例。为了提高安全性，默认情况下不会将此权限添加到角色中。如果您需要此权限，请使用管理 \$1 AMS 资源计划程序 \$1 解决方案 \$1 更新更改类型提交 RFC，并指定以逗号分隔的 KMS 列表。 ARNs CMKs

**安排 Auto Scaling 群组**
+ AMS 资源调度器启动或停止 Auto Scaling 组的自动扩展，而不是组中的单个实例。也就是说，调度器恢复 Auto Scaling 组的大小（开始）或将大小设置为 0（停止）。
+ 使用指定标签标记 AutoScaling 组，而不是该组中的实例。
+ 在停止期间，AMS 资源调度器会存储 Auto Scaling 组的最小、所需和最大容量值，并将最小和所需容量设置为 0。在启动期间，调度器会将 Auto Scaling 组的大小恢复为停止时的状态。因此，Auto Scaling 组实例必须使用适当的容量配置，这样实例的终止和重新启动就不会影响在 Auto Scaling 组中运行的任何应用程序。
+ 如果在运行期间修改 Auto Scaling 组（最小或最大容量），则计划程序会存储新的 Auto Scaling 组大小，并在停止计划结束时恢复该组时使用该大小。

**安排 Amazon RDS 实例**
+ 调度器可以在停止 RDS 实例之前拍摄快照（不适用于 Aurora 数据库集群）。默认情况下，此功能处于开启状态，**创建 RDS 实例快照** CloudFormation 模板参数设置为 **true**。快照将一直保留到下次停止 Amazon RDS 实例并创建新快照为止。

  调度器可以是属于集群或 start/stop Amazon RDS Aurora 数据库或多可用区（多可用区）配置的 Amazon RDS 实例。但是，当计划程序无法停止 Amazon RDS 实例（尤其是多可用区实例）时，请检查 Amazon RDS 限制。要安排 Aurora 集群的启动或停止，请使用**安排 Aurora 集群**模板参数（默认为 t **rue**）。Aurora 集群（不是集群中的单个实例）必须使用初始配置期间定义的标签键进行标记，并将计划名称作为标签值来调度该集群。

  每个 Amazon RDS 实例都有一个每周维护时段，在此期间会应用任何系统更改。在维护时段内，Amazon RDS 将自动启动已停止超过七天的实例以进行维护。请注意，维护事件完成后，Amazon RDS 不会停止实例。

  计划程序允许指定是否将 Amazon RDS 实例的首选维护时段作为运行时段添加到其计划中。如果没有其他运行周期指定实例应运行，并且维护事件已完成，则解决方案将在维护时段开始时启动实例，并在维护时段结束时停止该实例。

  如果维护事件在维护时段结束时仍未完成，则该实例将一直运行到维护事件完成后的计划间隔。

**注意**  
调度程序不验证资源是否已启动或停止。它调用 API 并继续前进。如果 API 调用失败，它会记录错误以供调查。