Решение зависит в основном от вашего варианта использования. Как быстро вам нужно вставить данные в MongoDB?
, если вам нужно решение, близкое к реальному времени, тогда Kinesis и Lambdas - ваш лучший вариант (если вы не хотите вкладывать средства в сторонние продукты) , Если вы можете позволить себе задержку и выполнить пакетную обработку, то вы можете сохранить поток кинезиса в S3 и затем использовать AWS Glue для обработки и загрузки ваших данных в базу данных.
То, что вам нужно думать, это в основном то, что вам нужно делать с данными.
Если вы собираете данные датчика, где вас интересуют только агрегаты (например, щелчки в пользовательском интерфейсе), то лучше сохранить исходные данные в s3 и затем выполнить конвейер данных (используя AWS Клей например) для хранения агрегированных данных в MongoDB. S3 будет быстрее и дешевле для этих типов данных.
Если вы используете поток для передачи бизнес-сущностей (например, документов, которые представляют ценность самостоятельно), то лучшим решением будет решение, близкое к реальному времени, с использованием AWS lambda.
Не зная точного варианта использования, я бы предложил хранить в вашей базе данных только те данные, которые обеспечивают ценность (например, отчеты по агрегированным данным), и использовать S3 с политикой жизненного цикла для необработанных данных «датчиков».