AWS Instance Scheduler使用指南

AWS提供按需付费的支付模式,如果在不使用实例的情况下关闭实例,将能节省很多成本,AWS Instance Scheduler是一个AWS实现定时自动开关机的解决方案,支持EC2和RDS。


image.png

原理:

AWS CloudFormation模板按客户定义的时间间隔设置Amazon CloudWatch事件。此事件将调用Instance Scheduler AWS Lambda函数。在配置期间,用户定义AWS区域和账户以及自定义标签实例计划程序将用于将计划与适用的Amazon EC2和Amazon RDS实例相关联。这些值存储在Amazon DynamoDB中,并且Lambda函数每次运行时都会检索它们。然后,客户将自定义标签应用于适用的实例。是通过资源标签实现控制资源的启动和停止(不是终止)。

场景:

如测试环境和开发环境,在夜间不使用的时候可以将资源自动关闭,如早上9:00开机,晚上9点关机。这样一来资源费用直接节省一半。
此解决方案会用到资源lambda和dynamoDB,每月成本大概在5$左右。还是非常便宜的。

现在就开始部署

image.png
  • 1 使用模板创建CloudFormation
    https://s3.amazonaws.com/solutions-reference/aws-instance-scheduler/latest/instance-scheduler.template
  • 2
    堆栈名称:Schedule
    Instance Scheduler tag name:Schedule
    Service(s) to schedule:Both
    Schedule Aurora Clusters:根据需要填写
    Create RDS instance snapshot:是否要在停止之前创建快照
    Region(s):如果留空,则应用在本region
    Default time zone:选择正确的时区 Asia/shanghai
    Cross-account roles:如需跨账户部署,选填
    Started tags:Scheduler=started
    Stopped tags:Scheduler=stopped
    其他参数默认即可


    image.png

    等待一段时间直到状态栏显示:CREAT_COMPLETE就算部署成功,接下来继续后面的部署


    image.png

    接下来的部署操作,我将采用CLI的方式演示,因为我觉得这种方式比较直观易懂。
    先决条件:
    1必须安装Python2 ,python3无法工作
    2有足够权限的aws 凭证,并在CLI配置完成
    image.png

3下载并安装
在scheduler-cli目录中,运行 setupPython脚本:
sudo python setup.py install
安装成功后 scheduler-cli --help应该有如下输出

image.png

接下来只需要配置这几个方面即可完成部署
1创建周期
scheduler-cli create-period --name "weekdays" --begintime 09:00 --endtime 18:00 --weekdays mon-fri --stack Schedule
image.png

2创建时间表
scheduler-cli create-schedule --name TianjinOfficeHours --periods weekdays --timezone Asia/shanghai --stack Schedule

image.png

***附:删除周期和时间表
$ scheduler-cli delete-period --name weekdays --stack Schedule

$ scheduler-cli delete-schedule --name TianjinOfficeHours --stack Schedule

最后一步将需要应用此方案的资源打上标签即可大功告成


image.png

如果要暂时停掉这个方案只需在CloudFormation中创建更改集并应用即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容