2017-08-08 69 views
1

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

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

+0

任何事情都是可能的,都取决于您所需的工作流程。恕我直言,你的工作流程是不明确的,所以你可能会得到许多可能不适合你的答案。 – mootmoot

回答

4

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

然后您可以选择是启动一个新的“大”实例,还是只根据需要启动/停止它。当EC2实例停止时,EC2不收取任何费用(但您仍将支付磁盘存储费用)。

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

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

您也可以考虑使用第二个实例Amazon EC2 Spot Instances - 它们可以节省大量成本,最糟糕的情况是它们会被终止,您可以稍后再试。

1

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

  • 触发LAMBDA通过发送使用AWS SES
  • 触发LAMBDA电子邮件调用使用AWS API网关
  • 触发LAMBDA一个HTTP端点直接
+0

或者简单地[调用lambda](https://boto3.readthedocs.io/en/latest/reference/services/lambda.html#Lambda.Client.invoke) – hjpotter92

+0

@ hjpotter92更新了答案并添加了您的建议。谢谢 :) – Ashan