Если вы подключили лямбду к sqs, она попытается отправить все 20К-сообщения второй лямбде для обработки. Я думаю, что разделение SQS со второй лямбда должно работать.
Можно рассмотреть следующий подход:
Заменить вторую лямбда-функцию на "свободную" (не подключенную к SQS). Вместо этого вторая функция сама будет запрашивать SQS итеративным образом. Он просто запросит 5K сообщений от него.
Настройте правило CloudWatch Events, чтобы автоматически запускать вашу функцию один раз в день. Таким образом, вы будете обрабатывать 5 тыс. Сообщений в день.
Обратите внимание, что по умолчанию срок хранения сообщений в SQS составляет 4 дня, чего достаточно для 20 КБ сообщений (5 К x 4 дня). Но при необходимости вы можете увеличить его до 14 дней.