1

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

我们担心长期的可扩展性。我不认为 CPU 在任何时候都会成为问题(取决于我们决定在哪里进行处理,在数据库中进行处理可能是一个非常糟糕的主意),但我相信数据库本身将成为瓶颈。我了解水平扩展:获取更多数据库,对数据进行分片,完成。但是,我听说有人声称 AWS(或者在这种情况下是 S3?)是如此神奇,以至于您可能不需要水平扩展,至少暂时不需要。

虽然我看不到魔法。我只能说,至少在垂直方面,你能做的最好的事情就是租用具有高 IO 优先级的 60gb RAM 实例之一。不仅您最终要多付一吨(与在问题上扔一打便宜的分片数据库实例相比),而且您仍然有一个瓶颈会被整个系统敲打。根据我的经验,拥有一台单独的数据库机器根本无法很好地扩展,但你可以在没有用户或仍在原型设计时一开始就摆脱它。

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

4

1 回答 1

0

如果您使用基本上是运行数据库服务器的 EC2 实例的 Amazon RDS,则无法实现垂直扩展。
选择非托管解决方案意味着您设置自己的解决方案并负责不同 EC2 实例上的集群。亚马逊云只是帮助你获得尽可能多的“实例”,你需要扩展,但对软件本身没有帮助。
其他选项是选择 Amazon DynamoDB,它确实为您做垂直扩展

于 2012-05-15T09:58:41.253 回答