【问题标题】:Programmatically create EC2 instance, run command, and terminate以编程方式创建 EC2 实例、运行命令和终止
【发布时间】:2016-12-15 19:27:43
【问题描述】:

我寻求一种在 AWS EC2 实例上实现类似 cron 的系统的方法:每天早上,我都有一些任务要运行,它们使用大量 RAM(每个脚本大约 8 个 Go)。我不想为全职c4.2xlarge 实例付费,这就是重点。

我的想法:

  1. 每天凌晨 0 点,创建一个 c4.2xlarge 实例
  2. 系统运行时,运行PHP脚本
  3. 当 PHP 脚本结束时,终止实例

如何自动执行这些操作?

【问题讨论】:

    标签: php amazon-web-services amazon-ec2


    【解决方案1】:

    如果您使用--instance-initiated-shutdown-behavior terminate 创建了一个实例,那么它会在停止时自行终止。完成后,您需要做的就是在脚本末尾运行 shutdown -h now

    那么如何在特定时间启动实例呢?

    1. 有第三方服务可以做到这一点。喜欢 GorillaStack。

    1. 创建一个CloudWatch scheduled event。它基本上是云中的cron,可以运行 Lambda 函数,然后可以启动您的实例。

    【讨论】:

    • 不知道 GorillaStack,感觉不错,我试试!谢谢谢尔盖!
    【解决方案2】:

    不确定您打算在 cron 脚本中做什么,但请查看 AWS Lambda scheduled events

    请注意,Lambda 本身并不支持 PHP,但似乎有 options。就个人而言,如果可能的话,我会考虑用 Python 或 JavaScript 重写它。

    【讨论】:

    • 这是一些 MongoDB 相关的任务:在各个地方抓取数据并修改现有文档(但对于 laaaaaaaarge 数据集)
    【解决方案3】:

    简单..

    只需创建一个定义了所有配置的 c4.2xlarge 实例。

    在启动实例时,在高级选项卡中创建一个“用户数据脚本”,以便它在启动实例后运行脚本,并在工作完成后向自身发出终止命令..

    要调用启动脚本,您可以在本地设置 cron 作业或使用 aws lambda。

    【讨论】:

      猜你喜欢
      • 2016-12-09
      • 2015-10-01
      • 2012-04-27
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 2018-06-21
      相关资源
      最近更新 更多