示例计划
AWS 实例计划程序可让您自动启动和停止 Amazon Elastic Compute Cloud(Amazon EC2)与 Amazon Relational Database Service(Amazon RDS)实例。以下部分提供了一些示例计划,这些计划可进行调整以用于多种常见使用案例。
标准的 9-5 工作时段
此计划展示了如何在伦敦的工作日上午 9 点至下午 5 点运行实例。
时段
此时段将在工作日(周一至周五)上午 9 点启动实例,并在下午 5 点停止实例。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
计划
计划名称提供了必须应用于实例的标签值以及将使用的时区。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
实例标签
要将此计划应用于实例,您必须为实例添加 Schedule=london-working-hours 标签。如果您在 AWS CloudFormation 实例计划程序标签名称参数中更改了默认标签名称,则您的标签也会发生相应的变化。例如,如果您输入 Sked 作为标签名称,则您的标签将是 Sked=london-working-hours。有关更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的标记资源。
计划程序 CLI
要使用实例计划程序 CLI 配置上述计划,请使用以下命令:
scheduler-cli create-period --stack <stackname> --name weekdays-9-5 --weekdays mon-fri --begintime 9:00 --endtime 16:59 scheduler-cli create-schedule --stack <stackname> --name london-working-hours --periods weekdays-9-5 --timezone Europe/London Europe/London
自定义资源
以下 CloudFormation 模板将使用计划自定义资源创建上述计划。
要部署此模板,您需要提供可在 AWS CloudFormation 控制台中找到的 ServiceInstanceScheduleServiceToken ARN,方法是选择之前部署的实例计划程序中心堆栈,然后选择输出。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
ServiceInstanceScheduleServiceTokenARN:
Type: String
Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
'AWS::CloudFormation::Designer': {}
Resources:
LondonWorkingWeek:
Type: 'Custom::ServiceInstanceSchedule'
Properties:
NoStackPrefix: 'True'
Name: london-working-hours
Description: run instances from 9am to 5pm in London on weekdays
ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
Timezone: Europe/London
Periods:
- Description: 9am to 5pm on weekdays
BeginTime: '09:00'
EndTime: '16:59'
WeekDays: mon-fri
在下午 5 点之后停止实例
实例可在一天中的任何时间随意启动,此计划将确保在每天下午 5 点(ET)自动向实例发送停止命令。
时段
此时段将在每天下午 5 点停止实例。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
计划
计划名称提供了必须应用于实例的标签值以及将使用的时区。
| 字段 | 值 | |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
实例标签
要将此计划应用于实例,您必须为实例添加 Schedule=stop-at-5-new-york 标签。如果您在 AWS CloudFormation 实例计划程序标签名称参数中更改了默认标签名称,则您的标签也会发生相应的变化。例如,如果您输入 Sked 作为标签名称,则您的标签将是 Sked=stop-at-5-new-york。有关更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的标记资源。
计划程序 CLI
要使用实例计划程序 CLI 配置上述计划,请使用以下命令:
scheduler-cli create-period --stack <stackname> --name stop-at-5 --endtime 16:59 scheduler-cli create-schedule --stack <stackname> --name stop-at-5-new-york --periods stop-at-5 --timezone America/New_York
自定义资源
以下 CloudFormation 模板将使用计划自定义资源创建上述计划。
要部署此模板,您需要提供可在 AWS CloudFormation 控制台中找到的 ServiceInstanceScheduleServiceToken ARN,方法是单击之前部署的实例计划程序中心堆栈,然后选择输出。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
ServiceInstanceScheduleServiceTokenARN:
Type: String
Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
'AWS::CloudFormation::Designer': {}
Resources:
StopAfter5:
Type: 'Custom::ServiceInstanceSchedule'
Properties:
NoStackPrefix: 'True'
Name: stop-at-5-new-york
Description: stop instances at 5pm ET every day
ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
Timezone: America/New_York
Periods:
- Description: stop at 5pm
EndTime: '16:59'
在周末停止实例
此计划展示了如何让实例从星期一上午 9 点(ET)运行至星期五下午 5 点(ET)。由于星期一和星期五并非完整天数,该计划包含三个时段以分别对应星期一、星期二至星期四、星期五。
时段
第一个时段会在星期一上午 9 点启动已标记的实例,并在午夜停止实例。此时段包含以下字段和值。
| 字段 | 类型 | 值 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
第二个时段会让已标记的实例在周二至周四全天运行。此时段包含以下字段和值。
| 字段 | 值 | |
|---|---|---|
|
|
|
|
|
|
|
|
第三个时段会在星期五下午 5 点停止已标记的实例。此时段包含以下字段和值。
| 字段 | 值 | |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
计划
此计划将这三个时段整合,形成适用于已标记实例的计划。该计划包含以下字段和值。
| 字段 | 值 | |
|---|---|---|
|
|
|
mon-9am-fri-5pm |
|
|
|
mon-start-9am、tue-thu-full-day、fri-stop-5pm |
|
|
|
America/New_York |
实例标签
要将此计划应用于实例,您必须为实例添加 Schedule=mon-9am-fri-5pm 标签。请注意,如果您在 AWS CloudFormation 实例计划程序标签名称参数中更改了默认标签名称,则您的标签也会发生相应的变化。例如,如果您输入 Sked 作为标签名称,则您的标签将是 Sked=mon-9am-fri-5pm。有关更多信息,请参阅《Amazon Elastic Compute Cloud 用户指南》中的标记资源。
计划程序 CLI
要使用实例计划程序 CLI 配置上述计划,请使用以下命令:
scheduler-cli create-period --stack <stackname> --name mon-start-9am --weekdays mon --begintime 9:00 --endtime 23:59 scheduler-cli create-period --stack <stackname> --name tue-thu-full-day --weekdays tue-thu scheduler-cli create-period --stack <stackname> --namefri-stop-5pm --weekdays fri --begintime 0:00 --endtime 17:00 scheduler-cli create-schedule --stack <stackname> --name mon-9am-fri-5pm --periods mon-start-9am,tue-thu-full-day,fri-stop-5pm -timezone America/New_York
自定义资源
以下 CloudFormation 模板将使用计划自定义资源创建上述计划。
要部署此模板,您需要提供可在 AWS CloudFormation 控制台中找到的 ServiceInstanceScheduleServiceToken ARN,方法是选择之前部署的实例计划程序中心堆栈,然后选择输出。
AWSTemplateFormatVersion: 2010-09-09
Parameters:
ServiceInstanceScheduleServiceTokenARN:
Type: String
Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
'AWS::CloudFormation::Designer': {}
Resources:
StopOnWeekends:
Type: 'Custom::ServiceInstanceSchedule'
Properties:
NoStackPrefix: 'True'
Name: mon-9am-fri-5pm
Description: start instances at 9am on monday and stop them at 5pm on friday
ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
Timezone: America/New_York
Periods:
- Description: 9am monday start
BeginTime: '09:00'
EndTime: '23:59'
WeekDays: mon
- Description: all day tuesday-thursday
WeekDays: tue-thu
- Description: 5pm friday stop
BeginTime: '00:00'
EndTime: '16:59'
WeekDays: fri
解决方案资源
以下资源作为 AWS 实例计划程序堆栈的一部分创建。
| 资源名称 | 类型 | 描述 |
|---|---|---|
|
Main |
|
AWS 实例计划程序 Lambda 函数。 |
|
计划程序配置帮助程序 |
|
将全局配置设置存储在 Amazon DynamoDB 中。 |
|
计划程序调用权限 |
|
允许 Amazon CloudWatch Events 调用实例计划程序的 AWS Lambda 函数。 |
|
计划程序日志 |
|
实例计划程序的 CloudWatch 日志组。 |
|
计划程序策略 |
|
允许计划程序执行启动和停止操作、更改 Amazon EC2 实例属性、设置标签和访问计划程序资源的策略。 |
|
计划程序规则 |
|
用于调用计划程序的 Lambda 函数的 Amazon EventBridge 事件规则。 |
|
配置指标事件规则 |
|
用于定期调用配置描述匿名指标函数的 Amazon EventBridge 事件规则。当匿名指标处于禁用状态时,此事件规则也会被禁用。 |
|
状态表 |
|
用于存储实例上次所需状态的 DynamoDB 表。 |
|
配置表 |
|
用于存储全局配置、计划和时段数据的 DynamoDB 表。 |
|
实例计划程序 SNS 主题 |
|
用于向订阅的电子邮件地址发送警告和错误消息。 |