S3 - хранилище объектов, концептуально похожее на файловую систему. Я бы никогда не попытался создать среду, подобную базе данных, на основе имен файлов в файловой системе, и я бы не стал в S3.
Тем не менее, если это то, что у вас есть, я бы начал с запуска кода, чтобы получить все текущих имен файлов в какую-либо базу данных. DynamoDB не может выполнять запросы по регулярным выражениям, но любые из PostgreSQL, MySQL, Aurora и ElasticSearch могут. Итак, начните с перечисления каждого файла и поместите имя файла и местоположение S3 в структуру, подобную базе данных. Затем создайте лямбда-выражение, которое уведомляется о любых изменениях (см. эту ссылку для получения дополнительной информации), которая будет делать соответствующие вещи с вашим резервным хранилищем при добавлении или удалении файла.
В зависимости от в соответствии с вашими потребностями ElasticSearch очень гибок с запросами и, возможно, лучше подходит для этих типов запросов. Но можно заставить работать и традиционную реляционную базу данных.
Наконец, вам понадобится интерфейс к резервному хранилищу для запросов. Для этого, вероятно, потребуется какой-то сервер. Это может быть простой API-шлюз для Lambda или что-то гораздо более сложное.