2015-04-07 3 views
0

Я проектирую SAAS application, который будет размещен на AWS. Раньше я использовал Elastic Beanstalk для управления приложениями. Я мог бы разработать приложение, чтобы все клиенты делились одним DB (это должно быть легко с помощью EB). Есть ли способ иметь отдельную базу данных для каждого клиента? Я мог бы использовать для этого среды (что не кажется хорошей идеей, поскольку для этого не созданы среды), или создать отдельное приложение beanstalk для каждого клиента (я не уверен, что это не сделает обновления больше хлопот). Я мог бы также отбросить EB и использовать различные службы AWS.Приложение SaaS на эластичном бобовом стебле

Мой вопрос: можете ли использовать EB приложение с несколькими арендаторами SAAS с изолированными базами данных, или я заблокирован совместно используемым решением (одно приложение, один db)?

ответ

1

Если ваши клиенты «приходят на мой сайт, зарегистрируйтесь, начните использовать», а затем создайте его как одно приложение, используя один бит. Создайте свою базу данных и приложение, чтобы быть многопользовательскими, правильно разделяющими данные со встроенными проверками полномочий.

Если SaaS архитектура использует среды EB или баз данных на основе клиента, то:

  1. Вы должны будете заплатить за ресурсы каждого клиента. Это включает экземпляры EC2, экземпляры RDS и т. Д.
  2. Когда клиент подписывается, им нужно будет дождаться, когда эти ресурсы будут инициализированы. Эта задержка может привести к тому, что они отправятся в другое место и не вернутся.
  3. По мере роста вашей клиентской базы ваши ресурсы тоже будут. Обновления потребуются больше времени.

Я бы не рассматривал архитектуру базы данных с несколькими арендаторами как «заблокированную». Я считаю, что это «правильная вещь», если она разработана правильно.

+0

Еще один вопрос, если я могу @Matt. Если бы мне пришлось реализовать изолированную архитектуру базы данных (или даже один экземпляр приложения db/one для каждого клиента), могу ли я достичь ее с помощью «Elastic Beanstalk» или лучше использовать «CloudFormation»/«OpsWorks» (я не знаком с ни)? Я боюсь, что клиент может неохотно принять полностью разделяемую модель (по соображениям безопасности в основном). – Looted

+1

Если вы действительно ДОЛЖНЫ разделять базы данных. Как насчет отдельных таблиц базы данных на одном сервере? Различные учетные данные для каждого клиента. Больше похоже на «общедоступный хостинг» –

+1

Упругий бобслей использует CloudFormation под капотом. Любой из них будет работать, если вам необходимо разделить базы данных. –

Смежные вопросы