Изменение конфигурации среды выполнения Django и AWS Lambda
У меня есть бизнес-приложение, написанное на Django, где у каждого клиента должна быть совершенно отдельная среда, включая:
Отдельная схема базы данных Отдельный экземпляр Redis Отдельный пакет S3 и т.д. Однако я хочу развернуть один экземпляр приложения на AWS Fargate или AWS Lambda, чтобы сократить расходы на управление. У каждого клиента будет свой домен, и конфигурация Django должна динамически изменяться в зависимости от клиента.
Моя идея состоит в том, чтобы сохранить все конфигурации, относящиеся к конкретному клиенту (учетные данные, переменные среды и т.д.), в AWS AppConfig. Например:
Единая база данных AWS RDS с отдельными схемами для каждого клиента Общий экземпляр AWS ElastiCache (Redis), но логически разделенный Единая настройка Django Celery Динамическая загрузка конфигурации на основе клиента Поскольку у каждого клиента разные учетные данные базы данных, учетные данные электронной почты, учетные данные платежного шлюза (Stripe, PayPal и т.д.), я хочу обеспечить масштабируемость и удобство обслуживания этого подхода.
Мои вопросы: Подходит ли это для многопользовательской работы в Django? Существуют ли лучшие альтернативы динамическому управлению конфигурациями для каждого клиента? Как я должен эффективно обрабатывать подключения к базе данных на основе клиентов в Django? Мы были бы весьма признательны за любые рекомендации или передовой опыт.