Acho que o DynamoDB não é a escolha certa. Como você mesmo disse:
DynamoDB bill depends on the throughput. 10 sec is not the point, let's say we can wait a whole minute.
O DynamoDB é construído para baixa latência de alto rendimento. Portanto, o recurso principal desse banco de dados é fornecer respostas dentro de milissegundos de dígito único. Como você já descobriu, você paga por segundo, o que significa que se você não precisa da mesma quantidade (com a capacidade de aumentar e diminuir a escala) de leituras / gravações em um período de várias horas, o DynamoDB é caro ao pagar por consultas não precisa.
Our application executes a query which returns about 100k rows several times a day.
Então, o AWS RDS parece ser mais adequado para o seu caso.