方法一: 使用aws lambda + cloudwatch服务
使用aws lambda, 将trigger/event source设置为CloudWatch Events - Schedule , 再把启动或者关闭服务的函数放到handler里, 这样的话就可以定时触发instance的启动和关闭了,另外在cloudwatch可以看到详细日志流和调用成功率和延时的dashboard,方便调试排障和了解概况。
这个方法的优点是:
操作简单, 稳定性好(由lambda服务自身保证高可用), 无需启用新的实例,或者占用额外资源,且几乎是免费的方案,因为目前lambda服务前100万次的运算是免费的。
方法二: 使用aws data pipeline
大致实现是使用data pipeline运行aws cli命令。 需要单独起一台ec2实例来运行data pipeline
参考How do I stop and start Amazon EC2 Instances at scheduled intervals with AWS Data Pipeline?</