【问题标题】:SaaS application on Elastic BeanstalkElastic Beanstalk 上的 SaaS 应用程序
【发布时间】:2015-06-12 00:16:47
【问题描述】:

我正在设计一个SAAS application,它将托管在AWS 上。以前我使用Elastic Beanstalk 来管理应用程序。我可以设计应用程序,以便所有客户端共享单个 DB(使用 EB 应该很容易)。有没有办法为每个客户建立一个单独的数据库? 我可以为此使用环境(这似乎不是一个好主意,因为环境不是为此而生的),或者为每个客户端创建一个单独的 beanstalk 应用程序(我不确定这是否不会进行更多更新麻烦)。 我也可以将 EB 放在一边,完全使用不同的 AWS 服务。

我的问题是 - EB 可以用于创建具有隔离数据库的多租户 SAAS 应用程序,还是我被共享解决方案锁定(单个应用程序,单个数据库)?

【问题讨论】:

    标签: php amazon-web-services amazon-elastic-beanstalk saas


    【解决方案1】:

    如果您的客户“来到我的网站,注册,开始使用”,那么将其构建为单个应用程序,使用单个数据库。将您的数据库和应用设计为多租户,使用内置授权检查正确隔离数据。

    如果您的 SaaS 架构使用基于客户的 EB 环境或数据库,那么:

    1. 您必须为每位客户的资源付费。这包括 EC2 实例、RDS 实例等。
    2. 当客户注册时,他们需要等待这些资源初始化。这种延迟可能会导致他们去别处而不再回来。
    3. 随着客户群的增长,您的资源也会增长。更新将需要更长的时间才能应用。

    我不会将多租户数据库架构视为“锁定”。只要设计得当,我认为它是“正确的”。

    【讨论】:

    • 如果我可以@Matt,还有一个问题。如果我必须实现隔离的数据库架构(甚至每个客户端一个 db/一个应用程序实例),我可以使用Elastic Beanstalk 实现它还是应该使用CloudFormation/OpsWorks(我不熟悉两者都不)?恐怕客户可能不愿意接受完全共享的模型(主要是出于安全原因)。
    • 如果你真的必须分离数据库。在同一台服务器中单独的数据库表怎么样?每个客户端的凭据也不同。更像是“共享主机”
    • Elastic Beanstalk 在后台使用 CloudFormation。如果您需要保持数据库分离,任何一种方法都可以。
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2021-04-28
    • 2016-11-20
    • 2013-11-25
    • 2017-11-26
    • 2018-09-13
    • 2017-08-01
    • 2012-09-24
    相关资源
    最近更新 更多