我有一个脚本,每天需要运行一次,需要大量内存。我想在专门的亚马逊盒子上运行它。在AWS服务器上运行脚本
是否有一些自动化的方式来构建一个盒子,下载所有必需的软件(如红宝石),然后运行我的脚本。脚本运行后,我想关闭该框。
我能想到的两个选项是:
- 我想黑客EMR做到这一点。 (我的脚本是映射到空目录的映射器)
- 厨师 - 对于一个简单的脚本,这看起来太多了。
我有一个脚本,每天需要运行一次,需要大量内存。我想在专门的亚马逊盒子上运行它。在AWS服务器上运行脚本
是否有一些自动化的方式来构建一个盒子,下载所有必需的软件(如红宝石),然后运行我的脚本。脚本运行后,我想关闭该框。
我能想到的两个选项是:
您可以在启动时使用官方的Ubuntu AMI,官方的Amazon Linux AMI以及任何其他支持用户数据脚本概念的AMI来完成一个新的EC2实例。
创建一个脚本(bash中,Perl,Python和
这里就是我介绍了一个用户数据脚本的概念的文章:
自动化EC2实例安装与用户数据的脚本
http://alestic.com/2009/06/ec2-user-data-scripts
您的用户数据脚本可以安装所需的软件,进行配置,安装工作脚本,并设置每天运行一次工作脚本的cron作业。
增强:
如果安装脚本并不需要很长的时间来运行(例如,一个小时或几下),那么你甚至不必运行单个专用实例24小时天。您可以改为使用一种让AWS可以定期为您启动实例的方法。
这里有一个文章,我写了提供这种方法与样本命令的详细信息:
一个重复计划运行的EC2实例与自动缩放
http://alestic.com/2011/11/ec2-schedule-instance
的一般方法是使用Auto Scaling可定期使用用户数据脚本启动实例。您的工作完成后将终止实例。他们的关键是暂停Auto Scaling正常的重新启动终止实例的愿望,以便您在下次开始工作时不需要为正在运行的实例付费。
有趣。我可以将多个文件传递给实例吗?我想传递3个文件:A)Boostrap(安装所需的软件)B)配置C)运行的脚本 – Tihom
将它们合并成一个脚本。或者,传入一个用户数据脚本,该脚本从S3等安全的地方下载并运行每个单独的脚本,并通过身份验证的URL。 –
不错的Eric。这正是我需要的。 –
你更喜欢什么Linux发行版? –
我通常选择Ubuntu,但我对其他人开放。 – Tihom