在AWS上为依赖的Windows EC2后台工作者构建正确的体系结构

时间:2014-10-01 22:01:10

标签: amazon-web-services architecture amazon-ec2 redis

基本上我们在Redis上保存缓存数据,我们希望每隔X秒将其转储到MongoDB中。

我们在Redis上存储了一个有序集,将每个用户的最后一个活动保存为分数,我们希望在一段时间内处于非活动状态后定期转储用户的最终状态,我们希望确保:

  1. 我们不会压缩我们的API服务器(这就是它必须在工作器实例上运行的原因。
  2. 数据转储操作非常关键 - 我们要求这些工作者实例具有可扩展性并且对故障具有高度弹性(并且应该优雅地处理故障)。
  3. 我们必须确保如果我们拥有X台机器,数据将分布在各个实例上,并且我们从Redis获取的每件物品都将被处理完全一次。
  4. 我想知道部署定期处理数据的EC2 Windows实例的最佳架构方法是什么。

    我正在考虑使用Elastic Beanstalk,因为它易于部署,扩展和扩展。监视器,但我想知道是否有更好的方法。

    提前致谢!

1 个答案:

答案 0 :(得分:0)

除了应用程序之外,Amazon Elastic Beanstalk是一个不错的选择,我建议你看一下Amazon Kinesis:http://aws.amazon.com/kinesis/

这是因为你提到"可扩展","弹性","正常处理失败"和#34;恰好一次"。这些属性在分布式系统中很难实现,而Kinesis Streams和Client Library可以为此提供很大帮助。