AWS SNS создает миллионы файлов

У меня есть поток событий, который ежедневно отправляет миллионы событий через SNS. Через лямбду эти топики затем сохраняются в s3, но каждый в своем файле. Общий размер этих событий невелик (менее 1 ГБ), но перемещение/удаление однодневных файлов размером в несколько байт каждый становится длительным процессом. Есть ли способ сохранить эти темы SNS в больших файлах (или даже в одном файле)?


person MAC    schedule 16.04.2021    source источник


Ответы (2)


Я бы попросил Lambda записать события в Kinesis Data Firehose и использовать его для пакетной обработки событий до определенного порога размера или временного окна, а затем заставить Firehose доставить их в S3.

Вот несколько ресурсов для этого:

person Maurice    schedule 16.04.2021

SNS с kinesis firehose идеально подходит для этого варианта использования.

Недавно aws анонсировала поддержку kinesis firehouse с SNS, на kinesis вы можете добавить условия буферизации в s3.

Kinesis Data Firehose буферизует входящие данные перед их доставкой (резервным копированием) в Amazon S3. Вы можете выбрать размер буфера от 1 до 128 МБ и интервал буфера от 60 до 900 секунд. Условие, которое выполняется первым, инициирует доставку данных в Amazon S3.

Если вы хотите преобразовать свои события или обработать их, вы также можете использовать лямбда.

person nirvana124    schedule 16.04.2021