这些将被索引并在Web应用程序中随机访问,如SO问题。 SimpleDB每个属性限制为1024字节,但你可以使用多个attrs,但声音不够优雅。
示例:博文; facebook状态消息;食谱(在博客应用程序;类似Facebook的应用程序;食谱网站)。
如果我要在亚马逊AWS上构建这样的应用程序,我应该在哪里/如何存储这些文本?
答案 0 :(得分:2)
使用S3,您可以将所有实际文件放在S3中,然后使用Amazon RDS或Heroku上的Postgres或当时适合您的任何内容对其进行索引。
此外,您可以让客户端直接从S3下载多KB文本模糊,因此您的应用程序可以只传递消息的URL,从而创建一个大规模并行服务器 - 即使主服务器只是一个单独的线程一台机器,从S3资产URL构建页面。 S3可以存储所有资产,如图像等。
优点很大。这也解决了备份等问题,并允许您使用许多索引和搜索方案。例如,可以使用Google进行搜索...
答案 1 :(得分:1)
我想你会想看看Amazon RDS,在云端运行像MySQL这样的关系数据库。单个DynamoDB读取容量单元只能(始终如一)read a 1kb-item,这可能不适合您。
或者,您可以将文本文件存储在S3中,并将指针放在SimpleDB中。这取决于许多因素会更具成本效益:您每天添加的文件数量,这些文件的更改频率,请求的频率等等。
就个人而言,我认为使用S3并不是最好的方法。如果您将所有问题和答案存储在单独的文本文件中,那么您正在查看一些显示简单页面的请求。更不用说搜索了,这需要你从S3获取所有文件并搜索它们。所以对于搜索,无论如何都需要一个数据库。
你可以使用SDB来保存索引但坦率地说,我会在Amazon RDS上使用MySQL(我认为现在有两个月的免费试用期)你可以做关系数据库可以做的所有好事,还提供全文搜索支持。 RDS应该能够每天扩展到大量访问者:您可以轻松地扩展到具有68 GB内存和26个ECU的高内存四倍超大型数据库实例。
据我所知,SO也是建立在关系数据库之上的:http://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/
答案 2 :(得分:1)
DynamoDB可能就是您想要的,在他们的文档中甚至还有一个论坛用例:Example Tables and Data in Amazon DynamoDB
答案 3 :(得分:-1)
问题中没有足够的信息来提供“我应该在哪里存储我将使用的文字?”的合理答案。
根据您构建应用程序的方式以及对速度,冗余,延迟,数量,可扩展性,大小,成本,稳健性,可靠性,可搜索性,可修改性,安全性等的要求,答案可以是以下任何一种:
将文本放在附加到实例的EBS卷上的文件中。
将文本放入MySQL或RDS数据库。
将文本放入分布在多个实例中的分布式文件系统中。
将文字上传到S3
将文本存储在SimpleDB
将文本存储在DynamoDB中
在ElastiCache中缓存文本
还有许多变体,比如在S3中存储主副本,在ElastiCache和本地磁盘上缓存副本,使用DynamoDB中的特定键对其进行索引,并使其可以在云搜索中进行搜索。