Лучшее решение зависит от характеристик вашего приложения. Может ли он терпеть асинхронные записи в базу данных? Может ли он выдержать любое удушение при записи в базу данных?
Если вы можете справиться с некоторым удушением из DynamoDB при внезапном увеличении трафика, вам следует использовать автоматическое масштабирование DynamoDB.
Если регулирование не в порядке, но асинхронные записи в порядке, то вы можете использовать SQS перед DynamoDB для управления пакетами трафика. В этом случае вам все еще нужно включить автоматическое масштабирование, чтобы гарантировать, что работникам вашей очереди будет достаточно для них всего.
Если у вас должны быть синхронные записи, и вы не можете допустить никакого регулирования от DynamoDB, вы должны использовать режим DynamoDB по требованию. (Тем не менее, обратите внимание, что может возникнуть ограничение, если вы превысите 1 КБ или 3 КБ для одного ключа раздела.)
Конечно, стоимость также учитывается. Использование DynamoDB с автоматическим масштабированием будет наиболее экономически эффективным методом. Я не уверен, как On Demand сравнивается со стоимостью использования SQS.