我的团队正在考虑使用 AWS 来托管我们的 Ruby on Rails 应用程序。该应用程序完成的大部分工作将在数据库中存储大量数据(现在我们假设它将是 PostgreSQL,因为 RDBMS 非常适合我们的需求),检索它,对其进行一些分析,然后显示在屏幕上向用户显示结果。
我们担心长期的可扩展性。我不认为 CPU 在任何时候都会成为问题(取决于我们决定在哪里进行处理,在数据库中进行处理可能是一个非常糟糕的主意),但我相信数据库本身将成为瓶颈。我了解水平扩展:获取更多数据库,对数据进行分片,完成。但是,我听说有人声称 AWS(或者在这种情况下是 S3?)是如此神奇,以至于您可能不需要水平扩展,至少暂时不需要。
虽然我看不到魔法。我只能说,至少在垂直方面,你能做的最好的事情就是租用具有高 IO 优先级的 60gb RAM 实例之一。不仅您最终要多付一吨(与在问题上扔一打便宜的分片数据库实例相比),而且您仍然有一个瓶颈会被整个系统敲打。根据我的经验,拥有一台单独的数据库机器根本无法很好地扩展,但你可以在没有用户或仍在原型设计时一开始就摆脱它。
我是否正确理解了这一点,还是有更多的东西?