AWS的EC2提供了亚马逊的虚拟机服务,EC2是按照实际使用小时数来收费的,因此在有的时候,你会希望在EC2不需要的时候关闭它来节约费用,并且在需要的时候重新启动这个实例。如果需要对EC2 Instance进行定时的启动和关闭,有几种不同的方法,下面进行一下总结。
- EC2 Instance上创建Cron Job
这是一种比较简单的方式,即创建一个t2.micro或者类似的实例,然后在操作系统上安装AWS CLI,定义在特定时间执行相关的命令(Linux的Cron或者Windows的计划任务)。这样的坏处是这个实例需要24小时不间断的运行,而且还需要维护本身的操作系统,并对其进行监控。 - AWS Data Pipeline
AWS Data Pipeline可以在特定的时间执行特定的命令,其中我们可以执行AWS CLI命令对实例进行关机和开机的操作。但是AWS Data Pipeline的操作比较复杂,而且修改起来也非常麻烦。这种方式执行的时候,你会发现在EC2 Instance列表里会自动创建并启动一个t1.micro的实例,并且会在实例里面对AWS CLI进行更新,并且执行定义好的命令,之后会Terminate该实例。整个过程的耗时还是比较多的。
具体的操作过程,可以查看相关的AWS操作文档。 - AWS Lambda 计划性任务
Lambda是PaaS(platform as a service)平台,提供了对Node.js和Python的支持。Lambda也是和EC2类似的提供了计算的服务,但你不需要管理、监控计算的基础架构,只需要对你的代码进行管理和维护就可以了。这种方法非常便宜,在每天运行2次,并使用最小的128M内存的前提下,每个月的花费大概是0.0004美金。
具体的操作过程,可以查看相关的AWS操作文档。
如果对Lambda不太熟悉,也可以看看如何操作一个Lambda的“Hello World”。
挨踢小茶对比并使用了这些方法,还是第三种使用Lambda的方法比较实用,执行速度最快,并且最节省费用。
文章评论
用过,不过还是谢谢经验