У меня есть приложение SAAS, размещенное на AWS EC2 и RDS. мы используем django и Postgres для стека
Что мы сделали, так это то, что у нас была общедоступная схема, содержащая информацию о клиенте, но конкретные данные клиента хранятся в отдельной схеме в той же базе данных.
Недавно у нас появились запросы о том, что некоторые клиенты хотят разместить программное обеспечение в своих собственных помещениях, потому что они хотят иметь полный контроль над данными.
Это означает, что мы потеряли контроль над исходным кодом, и, к тому же, сложнее отлаживать и развертывать код, размещенный локально, а не в облаке.
Возможно, они согласятся, что мы развернем его в их учетной записи AWS. Так что это их ec2 и rds.
Это дало нам идею.
Можем ли мы развернуть исходный код на нашем AWS ec2, и их данные будут в их каталогах AWS?
Что нам нужно для этого:
Как добиться этого с помощью сервисов AWS? Мне нужен примерный план.
Пока мои идеи
A. Кодируйте наши данные ec2 в их rds (убедитесь, что 2 и 3, а не 1)
B. Код на их ec2 и данные в их rds (убедитесь, что 1, а не 3 и 2)
Или есть решение, связанное с настройкой A или B?
Первый вопрос, который я хотел бы задать, если вы можете, заключается в том, позволим ли мы это как бизнес, то, что они предлагают, противоречит цели «Программное обеспечение как услуга».
Теперь, если вы хотите продавать версии своего программного обеспечения как что-то, что можно развернуть на месте, например, OVA, сродни github предприятие,
Вы можете настроить Роль кросс-аккаунта для ваших развертываний программного обеспечения SaaS вы по-прежнему можете управлять базой кода на экземпляре EC2 и предоставлять им доступ для чтения на уровне базы данных.
Внедрите AMI, который развертывает ваше программное обеспечение в их учетной записи, и выпустите его на Торговая площадка AWS
Разрешите им доступ для дампа / экспорта данных клиентов, чтобы делать то, что они хотят, со своими данными на месте, например сеть действий делает или SalesForce
Вы можете выполнить любое количество из них или все из них, в зависимости от того, соответствуют ли они вашей архитектуре и развертыванию программного обеспечения, а также бизнес-модели, которую вы пытаетесь предложить.