我有一个脚本需要每天运行一次,需要大量内存。我想在专用的亚马逊盒子上运行它。
是否有一些自动化的方法来构建一个盒子,下载所有必需的软件(如 ruby),然后运行我的脚本。脚本运行后,我想关闭盒子。
我能想到的两个选择是:
- 我正在考虑破解 EMR 来做到这一点。(我的脚本是针对空目录的映射器)
- Chef - 对于一个简单的脚本来说,这似乎太多了。
我有一个脚本需要每天运行一次,需要大量内存。我想在专用的亚马逊盒子上运行它。
是否有一些自动化的方法来构建一个盒子,下载所有必需的软件(如 ruby),然后运行我的脚本。脚本运行后,我想关闭盒子。
我能想到的两个选择是:
您可以使用官方 Ubuntu AMI、官方 Amazon Linux AMI 和任何其他支持用户数据脚本概念的 AMI 在启动时完成设置新的 EC2 实例。
创建一个脚本(bash、Perl、Python、
这是我介绍用户数据脚本概念的文章:
使用用户数据脚本自动设置 EC2 实例
http://alestic.com/2009/06/ec2-user-data-scripts
您的用户数据脚本可以安装所需的软件,对其进行配置,安装您的工作脚本,并设置一个每天运行一次工作脚本的 cron 作业。
增强:
如果安装脚本的运行时间不长(例如,不到一小时或几小时),那么您甚至不必每天 24 小时运行单个专用实例。您可以改为使用让 AWS 定期为您启动实例的方法。
这是我写的一篇文章,它通过示例命令提供了有关此方法的详细信息:
使用 Auto Scaling 按定期计划运行 EC2 实例
http://alestic.com/2011/11/ec2-schedule-instance
一般方法是使用 Auto Scaling 定期使用您的用户数据脚本启动实例。您的作业将在完成后终止实例。他们的关键是暂停 Auto Scaling 重新启动已终止实例的正常愿望,这样您就无需为正在运行的实例付费,直到您的工作下次开始。