Database design Amazon Web服务:垂直数据库缩放魔术?

Database design Amazon Web服务:垂直数据库缩放魔术?,database-design,amazon-web-services,scalability,Database Design,Amazon Web Services,Scalability,我的团队正在考虑让AWS托管我们的Ruby on Rails应用程序。应用程序完成的大部分工作将是在数据库中存储大量数据(现在我们假设它是PostgreSQL,因为RDBMS非常适合我们的需要),检索它,对它进行一些分析,然后在屏幕上向用户显示结果 我们关心的是长期的可扩展性。我不认为CPU在任何时候都是一个问题(取决于我们决定在哪里进行处理,在DB中进行处理可能是一个非常糟糕的主意),但我相信DB本身将是瓶颈。我理解水平缩放:获得更多的数据库,切分数据,完成。然而,我听说有人声称AWS(或者在

我的团队正在考虑让AWS托管我们的Ruby on Rails应用程序。应用程序完成的大部分工作将是在数据库中存储大量数据(现在我们假设它是PostgreSQL,因为RDBMS非常适合我们的需要),检索它,对它进行一些分析,然后在屏幕上向用户显示结果

我们关心的是长期的可扩展性。我不认为CPU在任何时候都是一个问题(取决于我们决定在哪里进行处理,在DB中进行处理可能是一个非常糟糕的主意),但我相信DB本身将是瓶颈。我理解水平缩放:获得更多的数据库,切分数据,完成。然而,我听说有人声称AWS(或者在本例中是S3?)是如此神奇,以至于您可能不需要水平缩放,至少在一段时间内不需要

但我看不出有什么魔力。我所能告诉你的是,你能做的最好的事情,至少在垂直方向上,就是租用一个具有高IO优先级的60gb RAM实例。不仅您最终要多付一大笔钱(相比于在这个问题上抛出十几个cheapo sharded DB实例),而且您仍然有一个瓶颈会受到整个系统的影响。根据我的经验,拥有一台DB机器根本不能很好地扩展,但是当你没有用户或者你还在原型制作时,你可以一开始就摆脱它


我是否正确地理解了这一点,或者说还有更多的东西吗?

如果你使用Amazon RDS,它基本上是EC2运行DB服务器的一个实例,你就无法实现垂直规模
选择非托管解决方案意味着您要建立自己的解决方案,并负责在不同EC2实例上进行集群。亚马逊云只是帮助您获得扩展所需的尽可能多的“实例”,但对软件本身没有帮助。
另一个选择是选择Amazon DynamoDB,它可以为您进行垂直缩放