В настоящее время я пытаюсь выстроить стек для приложения, похожего на социальные сети (пользователи, подписчики, лайки и т. Д.). Я изначально планировал сделать это с помощью Serverless Framework, используя AWS Lambda и, самое главное, DynamoDB.
Достаточно глубоко изучив моделирование данных в DynamoDB, я думаю, что он в основном способен обрабатывать схему данных, которая нужна приложению (много связей в данных). Но я действительно очень беспокоюсь о связанных с этим расходах.
По мере того как пользователи взаимодействуют с приложением, возникает множество операций чтения / записи, которые необходимо масштабировать.
Я планирую смоделировать данные как одну таблицу с 2GSI. Существует около 15 схем доступа. Доступ ко всем данным можно получить с помощью query
функция. В scan
функция будет запрещена для обычных операций. Будет некоторый уровень «горячих осколков» того факта, что новый контент будет вызывать больше взаимодействия.
Подходит ли DynamoDB для такого рода приложений? Что это примерно будет означать для ценообразования в 2020 году (вся информация, которую я могу найти по ценам, довольно старая)? Спасибо.
Для любого сценария с интенсивной записью Dynamodb наверняка будет дорогостоящим. Но вы экономите деньги на поддержании собственного кластера, обработке нагрузки и автоматическом масштабировании.
В любом случае таблицы Dynamodb используются только для хранения мастеров и важных логических данных. Все виды журналов и сводок следует хранить в других базах данных, например в S3 с Firehose.
Это по-прежнему лучший выбор для стартапов. использование которых не начнется до определенного периода. Вы экономите деньги, платя только за то, что использовали. Набрав обороты, вы можете решить отказаться от Dynamodb.