我是AWS的新手,所以我需要一些关于如何正确创建后台作业的建议。我有一些我需要的数据(约30GB):
a)从其他服务器下载;它是一组zip存档,在RSS提要中包含链接
b)解压缩到S3
c)处理每个文件或某组解压缩文件,执行数据转换,并将其存储到SimpleDB / S3中
d)根据RSS更新永久重复
有人可以为AWS提供适当解决方案的基本架构吗?
感谢。
丹尼斯
答案 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批处理处理的想法也将有助于优化流程并有效管理服务器端的超时