亚马逊AWS任务自动化

时间:2017-08-08 07:56:36

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

我们有一个小的EC2实例不断运行和收集数据。我们希望能够创建另一个EC2实例(更大的一个..更多的CPU和RAM),但使用来自较小服务器的数据。需要根据请求创建更大的实例,此任务需要自动化。理想情况下,我们希望有一个"单个按钮"为了这个任务。

我知道编写此任务的脚本是可能的(使用例如python CLI)但是有任何工具或任何AWS服务可以帮助我们完成此任务吗?

2 个答案:

答案 0 :(得分:4)

第一个问题是存储数据的位置,以便两个实例都可以访问。您应该始终尝试将数据存储在数据库而不是文件系统中,这允许多个实例访问相同的数据。

然后您可以选择是否启动新的“大”实例,或者是否只是根据需要启动/停止它。当EC2实例停止时,EC2不收费(但您仍将为磁盘存储付费)。

对于启动另一个实例,可以使用AWS Command-Line Interface (CLI) 从脚本启动。该脚本可以使用User Data startup script启动实例,该实例在实例启动时执行命令。这可以加载并运行您的应用程序。

您的实例处理完毕后,可以关闭虚拟机。有一个关闭行为选项,可以停止或终止EC2实例。

您还可以考虑将Amazon EC2 Spot Instances用于第二个实例 - 它们可以节省大量费用,最糟糕的情况是它们会被终止,您可以稍后重试。

答案 1 :(得分:1)

您可以将AWS Lambda与EC2 Python SDK一起使用来执行此操作。要触发Lambda函数,可以使用不同的机制。例如。

  • 通过使用AWS API Gateway调用HTTP端点来触发Lambda
  • 使用AWS SES发送电子邮件触发Lambda
  • 直接触发Lambda