Elastic Beanstalk 上的 SaaS 应用程序
SaaS application on Elastic Beanstalk
我正在设计 SAAS application
,将在 AWS
上托管。以前我使用 Elastic Beanstalk
来管理应用程序。我可以设计该应用程序,以便所有客户端共享一个 DB
(使用 EB
应该很容易)。有没有办法为每个客户建立一个单独的数据库?
我可以为此使用环境(这似乎不是一个好主意,因为环境不是为了那个),或者为每个客户端创建一个单独的 beanstalk 应用程序(我不确定这是否不会使更新更多的麻烦)。
我也可以将 EB 放在一边,完全使用不同的 AWS 服务。
我的问题是 - EB
可以用于创建具有独立数据库的多租户 SAAS
应用程序,还是我被共享解决方案(单个应用程序,单个数据库)锁定?
如果您的客户是 "come to my site, sign-up, start using",则使用单个数据库将其构建为单个应用程序。将您的数据库和应用程序设计为多租户,通过内置授权检查正确隔离数据。
如果您的 SaaS 架构使用基于客户的 EB 环境或数据库,那么:
- 您必须为每个客户的资源付费。这包括 EC2 实例、RDS 实例等。
- 当客户注册时,他们需要等待这些资源初始化。这种延迟可能会导致他们去别处而不是回来。
- 随着客户群的增长,您的资源也会增长。应用更新需要更长的时间。
我不认为多租户数据库架构是 "locked in"。我认为 "the right thing" 只要它设计得当。
我正在设计 SAAS application
,将在 AWS
上托管。以前我使用 Elastic Beanstalk
来管理应用程序。我可以设计该应用程序,以便所有客户端共享一个 DB
(使用 EB
应该很容易)。有没有办法为每个客户建立一个单独的数据库?
我可以为此使用环境(这似乎不是一个好主意,因为环境不是为了那个),或者为每个客户端创建一个单独的 beanstalk 应用程序(我不确定这是否不会使更新更多的麻烦)。
我也可以将 EB 放在一边,完全使用不同的 AWS 服务。
我的问题是 - EB
可以用于创建具有独立数据库的多租户 SAAS
应用程序,还是我被共享解决方案(单个应用程序,单个数据库)锁定?
如果您的客户是 "come to my site, sign-up, start using",则使用单个数据库将其构建为单个应用程序。将您的数据库和应用程序设计为多租户,通过内置授权检查正确隔离数据。
如果您的 SaaS 架构使用基于客户的 EB 环境或数据库,那么:
- 您必须为每个客户的资源付费。这包括 EC2 实例、RDS 实例等。
- 当客户注册时,他们需要等待这些资源初始化。这种延迟可能会导致他们去别处而不是回来。
- 随着客户群的增长,您的资源也会增长。应用更新需要更长的时间。
我不认为多租户数据库架构是 "locked in"。我认为 "the right thing" 只要它设计得当。