在AWS服务器上运行脚本

时间:2012-05-11 18:00:46

标签: amazon-ec2 amazon-web-services

我有一个脚本,我需要每天运行一次需要大量内存的脚本。我想在一个专门的亚马逊盒子上运行它。

是否有一些自动化的方法来构建一个盒子,下载所有必需的软件(如ruby),然后运行我的脚本。运行脚本后,我想关闭该框。

我能想到的两个选择是:

  1. 我正在考虑攻击EMR来做到这一点。 (我的脚本是针对空目录的映射器)
  2. 厨师 - 对于一个简单的剧本来说,这似乎太过分了。

1 个答案:

答案 0 :(得分:9)

您可以使用官方Ubuntu AMI,官方Amazon Linux AMI以及支持用户数据脚本概念的任何其他AMI在启动时完成设置新的EC2实例。

创建一个脚本(bash,Perl,Python,

  1. 无论以#开头!
  2. 在运行EC2实例时将此脚本作为用户数据传递。
  3. 脚本将在第一次启动时自动以root身份运行。
  4. 以下是我介绍用户数据脚本概念的文章:

      

    使用用户数据脚本自动执行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重新启动终止实例的正常愿望,这样您就不会在下次作业开始之前为正在运行的实例付费。