Amazon Quick — корпоративная generative ИИ-платформа AWS, объединяющая Spaces, Chat, Flows и другие возможности — обзавелась официальным решением для observability. Разработчики опубликовали на GitHub архитектуру, которая собирает операционные данные из CloudWatch vended logs и CloudTrail в защищённое озеро данных на Amazon S3. Эти данные затем можно запрашивать через Amazon Athena, визуализировать в Quick Sight или анализировать с помощью специального чат-агента на базе генеративного ИИ.
Без централизованного решения данные о том, кто использует платформу, довольны ли пользователи ответами, и какие функции наиболее востребованы, оказываются разбросаны по разным сервисам AWS. Это затрудняет анализ в масштабе. Предложенный подход консолидирует информацию в едином месте, что позволяет бизнес-лидерам и владельцам платформы отслеживать внедрение, удовлетворённость, затраты и соблюдение политик.
В основе архитектуры лежит поток: бизнес-пользователи взаимодействуют с Amazon Quick, платформа публикует логи в CloudWatch, откуда через subscription filters данные направляются в Amazon Data Firehose. Firehose с помощью Lambda-функций преобразует записи и сохраняет их в S3. Параллельно EventBridge перенаправляет API-вызовы из CloudTrail в отдельный Firehose. AWS Glue Data Catalog хранит метаданные для таблиц Athena, а Lake Formation управляет правами доступа на уровне таблиц и колонок. Логи включают разговоры чатов, отзывы пользователей, использование агентов и хранилища индексов. Данные можно защитить политиками маскировки конфиденциальной информации.
Архитектура использует CloudWatch vended logs, Data Firehose, Lambda и Athena для обработки и запросов.

Решение использует сквозное шифрование на всём пути: все компоненты — CloudWatch Log Groups, Firehose, Lambda, S3 — шифруются с помощью одного управляемого ключа KMS с автоматической ротацией. Для развёртывания потребуются AWS CDK, Python 3.9+, Node.js 20+, а также соответствующие IAM-разрешения. Код доступен в репозитории GitHub, процесс разбит на шаги, каждый из которых можно выполнить отдельно. Настройка выполняется с помощью скрипта deploy.py, который автоматически определяет регион подписки и создаёт необходимые ресурсы.



