为每个客户提供单独的 AWS RDS 实例的好处

Benefits of separate AWS RDS Instances for each customer

我正在开发一个 Web 应用程序项目,其中每个企业客户都将拥有独立于他们自己的单独资源(即,单个付费客户独有的用户和用户数据、每个付费客户独有的内容等)。它有点类似于普通的 CRM。我们正在 AWS 上构建并计划将 RDS 用于数据库。鉴于每个客户都不会跨任何不同区域共享数据,最有效的做法是:

  1. 企业客户注册后,将创建一个新的 VPC,其中包含新的 RDS 和 EC2 实例,因此每个客户都有孤立的数据库和服务
  2. 在所有客户之间共享具有 RDS 和 EC2 实例的单个 VPC,并使用数据库中的指示符字段来确定哪些数据属于每个客户

我们预计任何给定的企业客户都不会超过 10000 个用户,而且目前该项目很小,只有一个企业客户。

这个答案完全取决于您对应用程序增长的预期(不仅在客户数量方面,而且在性能方面),但是我个人认为,如果您目前有一个企业客户,则创建一个 VPC。

最初假设成本会成为一个问题,也许在 RDS 上为每个客户分离出一个单独的数据库,为每个客户提供一个单独的数据库用户以限制风险。

如果财务状况允许,那么您会考虑分离到性能需要的单独 RDS 数据库(也许您有 SLA 等层级)。

如果您有更大的客户(他们可能有定制需求,或没有多租户主机等严格要求),我建议您查看组织设置,每个大客户一个帐户,以分离资源和单个考虑任何共享或多客户资源。

关键是提前计划您想要的方式,但如果您仍处于引导客户的早期阶段,那么请不要使您的设置过于复杂。