Я являюсь частью команды, в настоящее время разрабатывающей архитектуру / приложение Proof of Concept для службы связи между правительственными учреждениями и общественностью (в настоящее время сужена до сектора здравоохранения).Заказчик специально запросил в основном серверный подход с помощью сервисов AWS, и мне нужен совет по настройке этой архитектуры, а именно, отношения Lambda к базе данных.
Грубо говоря, архитектура будет использовать API-шлюз для обработки запросов, которые будут вызывать разные Lambdas, как микро-сервисы, которые обращаются к БД.
На следующем рисунке показана схема быстрых отношений.По сути, пациент вводит описание своего состояния, которое составляет основу для случая.Это дело обрабатывается во время одной или нескольких сессий одной или несколькими медсестрами, которые принимают примечания, связанные с делом. Схема БД (недостаточно репутации)
Из моего исследования я понял, что в случае с RDS существует компромисс между безопасностью (сохранение Lambdas вне публичного доступа).VPC, содержащий экземпляр RDS, предшествующие рекомендации по безопасности, запрет на использование в государственном секторе) и производительность (помещение Lambda в частный VPC с экземпляром RDS и тяжелые времена холодного запуска из-за предоставления ENI).Однако время холодного запуска можно свести на нет с помощью проверки связи с CloudWatch, что может быть или не быть оптимальным.
В случае с DynamoDB я лично очень неопытен (в большей степени, чем в MySQL) и не уверен, применимы ли данные к модели NoSQL.Если это так, DynamoDB кажется лучшим подходом.Насколько я понимаю, NoSQL имеет меньшую поддержку сложных запросов, которые включают JOIN и т. Д., Которые могут исключить его в качестве опции.
Такое ощущение, что SQL / RDS является более подходящим с точки зрения данных / отношений, но DynamoDB создает меньше проблем для сервисов Lambda / AWS, если найдена подходящая модель данных.Поэтому мой вопрос заключается в том, было бы предпочтительнее использовать частный экземпляр RDS и попытаться свести на нет «холодный старт», прогревая наиболее важные Lambdas, или существует модель NoSQL, которая не вызывала бы головные боли для сложных запросов, среди прочеговещи?Я упускаю какие-либо ключевые аспекты, которые могут перевесить шкалу?