亚马逊网络服务的背景工作

时间:2011-08-02 10:39:13

标签: amazon-s3 amazon-web-services background-process amazon-simpledb

我是AWS的新手,所以我需要一些关于如何正确创建后台作业的建议。我有一些我需要的数据(约30GB):

a)从其他服务器下载;它是一组zip存档,在RSS提要中包含链接

b)解压缩到S3

c)处理每个文件或某组解压缩文件,执行数据转换,并将其存储到SimpleDB / S3中

d)根据RSS更新永久重复

有人可以为AWS提供适当解决方案的基本架构吗?

感谢。

丹尼斯

4 个答案:

答案 0 :(得分:1)

我认为您应该运行EC2实例来执行所需的所有任务,并在完成后将其关闭。这样您只需支付EC2运行的时间。根据您的架构,您可能需要一直运行它,但是小实例非常便宜。

答案 1 :(得分:0)

  

从其他服务器下载;它是一组zip存档,在RSS提要中包含链接

您可以使用wget

  

解压缩到S3

尝试使用s3-tools(github.com/timkay/aws/raw/master/aws)

  

处理每个文件或某组解压缩文件,执行数据转换,并将其存储到SimpleDB / S3中

编写自己的bash脚本

  

根据RSS更新永久重复

另一个用于检查更新的bash脚本+由Cron运行脚本

答案 2 :(得分:0)

首先,编写一些代码来执行a)到c)。测试等等。

如果您想定期运行代码,那么它是使用后台进程工作流程的理想选择。将作业添加到队列中;当它被认为完成时,将其从队列中删除。每小时左右在队列中添加一个新作业,意思是“获取RSS更新并解压缩”。

您可以使用AWS Simple Queue Service或任何其他后台作业处理服务/库手动完成。您将在EC2或任何其他托管解决方案上设置一个工作器实例,该解决方案将轮询队列,执行任务并再次轮询,永远。

使用Amazon Simple Workflow Service可能更容易,{{3}}似乎是针对您要做的事情(自动化工作流程)。注意:我从未真正使用它。

答案 3 :(得分:0)

我认为在Elasticbeanstalk实例上部署代码将为您提供大规模的工作。因为我看到你在这里处理大量数据,并且使用普通的EC2实例可能会占用大部分内存资源。此外,AWS SQS批处理处理的想法也将有助于优化流程并有效管理服务器端的超时