DynamoDB,ElasticSearch和S3-用于超快速获取/输出10-20MB文件的服务?

时间:2018-12-19 03:28:44

标签: mongodb amazon-web-services elasticsearch amazon-s3 amazon-dynamodb

我的后端可以接收,存储和提供10-20 MB的json文件。我应该使用哪种服务进行超快速放置和获取(我不能将文件分成较小的块)?我不必对这些文件运行查询,只需获取它们,存储它们并立即提供它们即可。该服务应轻松扩展到成千上万个文件。理想情况下,我应该能够将文件放在1-2秒内,并在同一时间进行检索。

我觉得s3是最好的选择,而弹性搜索是次要的选择。 Dyanmodb不允许这样的对象大小。我应该使用什么?另外,还有其他服务吗? Mongodb是一个可能的解决方案,但我在AWS上看不到,因此快速设置会很棒。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您不应该使用Dynamo或ES进行此类操作。

毕竟,您想要的是存储和提供文件,而不是进入文件内容,而Dynamo和ES都会浪费时间去做。

我的建议是使用AWS Lambda + S3优化成本 尽管S3放到文件可用之前确实有一些停机时间(当存储桶中有数百万个对象时,它会变得更大,甚至几分钟)

如果停机对于您的操作很重要,并且在任何给定时刻的总吞吐量都不算太大,则可以创建一个服务器(最好是EC2)作为临时文件存储。会

  • 接收文件
  • 尝试将其上传到S3
  • 如果文件在S3上可用之前被请求,请在磁盘上提供文件
  • 如果文件已成功上传到S3,请提供S3网址,然后删除磁盘上的文件