S3到EC2用于获取大量小文件的性能

时间:2009-04-29 21:20:56

标签: amazon-s3 amazon-ec2 amazon-web-services

我有大量1kB的数据块(大约数亿),需要一种存储和查询这些数据块的方法。添加了数据块,但从未删除或更新。我们的服务部署在S3,EC2平台上。

我知道Amazon SimpleDB存在,但我想要一个与平台无关的解决方案(例如我们需要离开AWS)。

所以我的问题是,这两个用于存储和检索数据块的选项的专家和内容是什么。性能如何比较?

  • 将数据块存储为S3上的文件并在需要时获取
  • 将数据块存储在MySQL服务器群集上

会有那么大的性能差异吗?

2 个答案:

答案 0 :(得分:2)

我尝试使用S3作为一种“数据库”,使用微小的XML文件来保存我的结构化数据对象,并依靠S3“键”来查找这些对象。

即使从EC2开始,性能也是不可接受的 - S3的延迟太高了。

即使有如此多的记录,在EBS设备上运行MySQL也会快一个数量级。

答案 1 :(得分:1)

您是否需要直接向应用程序的用户提供对这些数据块的访问权限?如果没有,则S3和HTTP GET请求是一种过度杀伤。考虑到S3是一种安全服务,每个GET请求(仅1KB数据)的开销将非常大。

MySQL服务器集群是一个更好的主意,但要在EC2中运行,您需要使用弹性块存储。最后,不要排除SimpleDB。它可能是您问题的最佳解决方案。仔细设计您的系统,您将来可以轻松地在其他数据库系统(分布式或关系型)中进行迁移。