Aws имеет распределенные серверы и сообщения также распределяются по разным серверам. Вот почему вы не получаете все сообщения за один вызов, поскольку частично сообщения хранятся на разных серверах.
Что вы можете сделать здесь, это поместить цикл while 1, который непрерывно извлекает сообщение из очереди и сохраняет его в БД.
И запустите этот скрипт как процесс nohup, чтобы он не перестал работать. Таким образом, всякий раз, когда производители отправляют какое-либо сообщение в очередь, оно напрямую выбирается потребителем nohup.