我可以同时运行1000个AWS微实例吗?

时间:2012-08-28 15:46:30

标签: amazon-web-services cloud instances

我有一个简单的纯C程序,它接受一个整数作为输入,运行一段时间(假设一小时),然后返回一个文本文件。我想用1到1000的输入整数运行这个程序1000次。

目前我正在并行运行此程序(4个处理器),需要250个小时。该程序适合AWS微实例(我已经测试过)。是否可以在AWS中使用1000个微实例在一小时内完成整个工作? (费用约为20美元 - 0.02美元/例)?

如果有可能,是否有人对如何做到这一点有一些指导? 如果不是,那么是否还有一个低预算的替代品?

非常感谢!

3 个答案:

答案 0 :(得分:1)

为了实现这一目标,您需要:

  • 创建一个S3存储桶来存储引导脚本,应用程序,输入数据和输出数据

  • 自定义轻量级AMI:您可能想要创建一个自定义轻量级AMI,它知道下载引导脚本

  • 引导脚本:将从S3存储桶下载您的软件,解析包含整数[1..1000]的custom instance tag并下载任何其他数据。

  • 您的申请:处理过程。

  • 处理结束脚本将结果上传到另一个结果S3存储桶和terminates the instance,您可能还希望发送SNS notification来传达处理状态的结束。

  • 如果您需要结果合并,您可能需要创建另一个实例并将其用作协调器,等待所有“处理结束”通知以完成处理。在这种情况下,您可能会考虑将来使用Amazon's Hadoop map reduce引擎,因为它将免费执行几乎所有这些繁重的工作。

答案 1 :(得分:0)

您没有指定您想要执行此操作的语言,因为您用于部署程序的应用程序不必使用我推荐的C#语言。 Web上有很多关于如何使用SDK以编程方式生成新的Amazon实例的示例。例如:

How to start an Amazon EC2 instance programmatically in .NET

您可以使用已存在的程序创建自己的AMI,但如果您想对其进行调整可能会很痛苦,因为它需要您重新创建整个AMI。我建议创建一个额外的实例,或者只是将程序托管在可从公共URL访问的位置。然后我会创建一些将提前安装在AMI上的服务,以允许我指定从下载应用程序的URL以及我想要的特定实例的任何命令行参数。

希望这有帮助。

答案 2 :(得分:0)

默认情况下,您只能按区域生成20个实例。你需要问亚马逊才能使用更多实例。

如果您想要低成本但不关心延迟,则应使用现场实例。