1

这些将在诸如 SO 问题之类的 Web 应用程序中被编入索引并随机访问。SimpleDB 每个属性有 1024 字节的限制,但您可以使用多个 attrs 但听起来不优雅。

示例:博客文章;脸书状态信息;食谱(在博客应用程序中;类似 facebook 的应用程序;食谱网站)。

如果我要在 Amazon AWS 上构建这样的应用程序,我应该在哪里/如何存储这些文本?

4

4 回答 4

2

使用 S3,您可以将所有实际文件放在 S3 中,然后使用 Amazon RDS 或 Heroku 上的 Postgres 或当时适合您的任何工具对它们进行索引。

此外,您可以让客户端直接从 S3 下载多 kB 文本简介,这样您的应用程序就可以将 URL 传递给消息,从而创建一个大规模并行服务器 - 即使主服务器只是一台机器上的单个线程,从 S3 资产 URL 构建页面。S3 可以存储所有资产,如图像等。

优点很大。这也解决了备份等问题,并允许您使用许多索引和搜索方案。例如,可以使用 Google 进行搜索...

于 2012-04-23T20:06:30.023 回答
1

我想说你会想看看 Amazon RDS,它在云中运行像 MySQL 这样的关系数据库。单个 DynamoDB 读取容量单元只能(始终)读取 1kb-item,这可能不适合您。

或者,您可以将文本文件存储在 S3 中,并将指向这些文件的指针放在 SimpleDB 中。这取决于许多更具成本效益的因素:您每天添加多少文件,这些文件预计多久更改一次,请求它们的频率等。

就个人而言,我认为使用 S3 并不是最好的方法。如果您将所有问题和答案存储在单独的文本文件中,您会看到许多请求,即使是显示一个简单的页面。更不用说搜索了,这需要您从 S3 中获取所有文件并搜索它们。因此,对于搜索,无论如何您都需要一个数据库。

您可以使用 SDB 来保存索引,但坦率地说,我只会在 Amazon RDS 上使用 MySQL(我认为现在有两个月的免费试用期),在那里您可以做关系数据库可以做的所有好事,以及还提供对全文搜索的支持。RDS 应该能够每天扩展到大量访问者:您可以轻松扩展到具有 68 GB 内存和 26 个 ECU 的高内存四倍超大型数据库实例。

据我所知,SO 也是建立在关系数据库之上的:https ://blog.stackoverflow.com/2008/09/what-was-stack-overflow-built-with/

于 2012-04-19T07:37:26.613 回答
1

DynamoDB 可能是您想要的,他们的文档中甚至还有一个论坛用例:Amazon DynamoDB 中的示例表和数据

于 2012-04-19T08:19:46.383 回答
-1

问题中没有足够的信息来为“我应该将要使用的文本存储在哪里?”提供一个合理的答案。

根据您构建应用程序的方式以及对速度、冗余、延迟、容量、可扩展性、大小、成本、健壮性、可靠性、可搜索性、可修改性、安全性等的要求,答案可能是:

  • 删除附加到实例的 EBS 卷上的文件中的文本。

  • 将文本放入 MySQL 或 RDS 数据库。

  • 将文本放入分布在多个实例中的分布式文件系统中。

  • 将文本上传到 S3

  • 将文本存储在 SimpleDB 中

  • 将文本存储在 DynamoDB 中

  • 在 ElastiCache 中缓存文本

这方面还有许多变体,例如将主副本存储在 S3 中、在 ElastiCache 和本地磁盘中缓存副本、使用 DynamoDB 中的特定键对其进行索引并使其可在 Cloud Search 中搜索。

于 2012-04-20T19:28:16.423 回答