Построение корпоративного решения для наблюдаемости Amazon Quick с Amazon CloudWatch, AWS CloudTrail и Quick Sight
Когда в корпоративную платформу ИИ подключаются сотни и тысячи пользователей, руководителям бизнеса и владельцам платформы нужна прозрачность: кто пользуется платформой, насколько пользователи довольны ответами и какие возможности дают наибольшую вовлеченность. Без централизованного решения для наблюдаемости эти данные оказываются разрозненными между несколькими сервисами AWS и их сложно анализировать в масштабе.
Amazon Quick — это платформа на базе генеративного ИИ, которая объединяет Spaces, Chat agents, Flows, Automate, Research и возможности бизнес-аналитики Amazon Quick Sight в одном месте. По мере масштабирования развертываний Amazon Quick организациям нужен надежный способ отслеживать внедрение, измерять удовлетворенность, контролировать затраты и аудировать соблюдение правил из единого окна.
В этом материале показано, как развернуть решение, которое объединяет операционные данные Amazon Quick из Amazon CloudWatch vended logs и AWS CloudTrail events в защищенное хранилище данных в Amazon Simple Storage Service (Amazon S3), которое затем можно запрашивать через Amazon Athena, дашборд Quick Sight и пользовательского чат-агента Quick.
Обзор решения
Amazon Quick публикует данные об использовании и взаимодействиях через vended logs, чтобы предоставлять сведения о чат-диалогах, отзывах пользователей, использовании часов agent/research и использовании хранилища индексов в Amazon Quick. Amazon Quick интегрирован с AWS CloudTrail, который фиксирует действия пользователя, роли или сервиса AWS в Amazon Quick.

Рисунок 1. Архитектура корпоративного решения для наблюдаемости Amazon Quick
Рабочий процесс состоит из следующих шагов:
- Бизнес-пользователи взаимодействуют с Amazon Quick.
- Amazon Quick публикует журналы взаимодействий в Amazon CloudWatch vended logs. Эти журналы можно защитить с помощью data protection policies, чтобы маскировать чувствительные данные, такие как учетные данные (закрытые ключи, AWS secret access keys), финансовую информацию, персональные данные, защищенную медицинскую информацию и идентификаторы устройств.
- Subscription filters CloudWatch пересылают события журналов в delivery streams Amazon Data Firehose. Эти delivery streams преобразуют данные с помощью функции AWS Lambda и записывают их в хранилище данных в Amazon S3.
- Правило Amazon EventBridge направляет вызовы API Amazon Quick из AWS CloudTrail и отправляет их в выделенный delivery stream Firehose. Этот delivery stream преобразует данные с помощью функции AWS Lambda и записывает их в хранилище данных.
- AWS Glue Data Catalog хранит метаданные хранилища данных для внешних таблиц и аналитических представлений Amazon Athena.
- Администраторы могут использовать Amazon Athena для запросов к данным. AWS Lake Formation предоставляет детализированные права доступа к хранилищу данных на уровне таблиц и столбцов.
- Руководители бизнеса и заинтересованные стороны могут просматривать данные в дашборде Quick Sight для интерактивного анализа данных о внедрении, удовлетворенности, затратах и управлении. Они также могут использовать пользовательского чат-агента Quick с вопросами на естественном языке, чтобы получать мгновенные визуальные ответы.
Решение шифрует данные при хранении с помощью управляемого клиентом ключа AWS Key Management System (AWS KMS) с автоматической ротацией ключей. Решение шифрует группы журналов Amazon CloudWatch, delivery streams Amazon Data Firehose, переменные окружения функций AWS Lambda и хранилище данных Amazon S3. Это обеспечивает единый подход к шифрованию по всему конвейеру.
Требования
Для развертывания этого решения вам потребуется:
- AWS account с подпиской Amazon Quick
- Python 3.9+
- Node.js 20+
- AWS Cloud Development Kit (AWS CDK)
- AWS Command Line Interface (AWS CLI) V2
- AWS CLI profile с разрешениями IAM для развертывания решения, включая создание ролей AWS Identity and Access Management (IAM), ключа AWS KMS, групп журналов Amazon CloudWatch, корзины Amazon S3, функций AWS Lambda, delivery streams Amazon Data Firehose, правил Amazon EventBridge и стеков AWS CloudFormation. Если для управления доступом к каталогу данных вы выбираете AWS Lake Formation, развертывающая учетная запись должна быть администратором Lake Formation.
Развертывание решения
Развертывание организовано по шагам, и каждый следующий шаг опирается на предыдущий. После любого шага можно остановиться и получить рабочее решение на этом уровне. Такие параметры, как профиль AWS CLI, префикс ресурсов, имя базы данных и имя workgroup, сохраняются локально после каждого шага, поэтому последующие шаги подставляют их автоматически.
Клонирование репозитория
Склонируйте репозиторий GitHub и перейдите в каталог проекта:
git clone https://github.com/aws-samples/sample-quick-observability-platform
cd sample-quick-observability-platform
Настройка vended logs
Разверните инфраструктуру Amazon CloudWatch Logs:
python3 deploy.py --logs
Скрипт автоматически определяет регион вашей подписки Quick, создает ключ AWS KMS и настраивает доставку vended logs для данных о чатах, отзывах, часах agent и использовании индекса.
При развертывании будет предложено создать группы журналов CloudWatch (/aws/vendedlogs/quick/chat, /aws/vendedlogs/quick/feedback, /aws/vendedlogs/quick/agent-hours, /aws/vendedlogs/quick/index-usage). Также будет предложено указать префикс quickobserve для остальных ресурсов AWS, которые нужно создать.
Содержимое сообщений чата (user_message и system_text_message) может включать чувствительные или регулируемые данные из подключенных корпоративных источников, таких как базы данных, корзины Amazon S3 или сторонние интеграции. Перед включением логирования содержимого сообщений проверьте политику вашей организации в части конфиденциальности данных, соответствия требованиям и сроков хранения. По умолчанию содержимое чата не включается, чтобы никакие данные пользовательских разговоров не попадали в CloudWatch Logs. При развертывании вам будет предложено, хотите ли вы логировать содержимое сообщений чата.
Проверьте группы журналов CloudWatch vended logs в консоли AWS:

Развертывание конвейера данных
Используйте следующую команду для развертывания конвейера:
python3 deploy.py --pipeline
Это развертывает хранилище данных Amazon S3, subscription filters Amazon CloudWatch Logs, delivery streams Amazon Data Firehose, функции AWS Lambda и правило Amazon EventBridge.
Вы можете увидеть данные журналов в хранилище данных Amazon S3 (quickobserve-pipeline-datalake-<account-id>).

Настройка каталога данных
Используйте следующую команду для запуска настройки каталога данных:
python3 deploy.py --datacatalog
Скрипт запрашивает имя базы данных (quickobserve_db) и проверяет, что она еще не существует в AWS Glue Data Catalog, чтобы избежать случайного изменения таблиц, принадлежащих другим рабочим нагрузкам. Затем он предлагает выбрать способ управления доступом к хранилищу данных:
- Lake Formation (по умолчанию) — регистрирует расположение хранилища данных и выдает детализированные разрешения на роль сервиса Amazon Quick на уровне таблиц и столбцов. Когда включено логирование содержимого сообщений, исключение на уровне столбца не дает содержимому сообщений попадать в дашборд и topic Quick Sight.
- IAM policies — пропускает настройку AWS Lake Formation и полагается на политики IAM для контроля доступа. Используйте этот вариант, если в вашей учетной записи не используется Lake Formation.
Скрипт создает базу AWS Glue Data Catalog, таблицы и представления Athena для vended logs CloudWatch и событий CloudTrail. Вы можете увидеть каталог данных в AWS Glue:

Проверьте, что данные поступают, выполнив следующие запросы в редакторе запросов Amazon Athena:
SELECT * FROM "quickobserve_db"."agent_hours_logs" ;
SELECT * FROM "quickobserve_db"."chat_logs" ;
SELECT * FROM "quickobserve_db"."cloudtrail_events" ;
SELECT * FROM "quickobserve_db"."feedback_logs" ;
SELECT * FROM "quickobserve_db"."index_usage_logs" ;
SELECT * FROM "quickobserve_db"."cloudtrail_events" ;
Развертывание дашборда Quick Sight
Разверните дашборд Quick Sight:
python3 deploy.py --dashboard
Это развертывает ресурсы Quick Sight: пользовательскую тему, источник данных, наборы данных с ежедневным расписанием обновления, анализ и дашборд для просмотра метрик наблюдаемости Amazon Quick.
Вы можете просмотреть метрики наблюдаемости в дашборде Quick Sight:
- Войдите в консоль Amazon Quick.
- В левом меню выберите Dashboards, а затем Quick Observability Dashboard.

Каждый лист в дашборде включает элементы управления параметром диапазона дат и детальную таблицу внизу. Выбор любого графика, сектора круговой диаграммы или KPI фильтрует детальную таблицу, показывая соответствующие записи.
Создание topic Quick Sight
Используйте следующую команду для создания topic Quick Sight:
python3 scripts/create_topic.py
Скрипт проверяет, что каждый набор данных содержит данные из успешной загрузки, а затем создает topic Quick Sight с пользовательскими инструкциями, которые направляют вопросы к нужному набору данных. Вы можете увидеть topic Quick Sight в консоли Amazon Quick.
- Войдите в консоль Amazon Quick.

Создание пользовательского чат-агента Quick
Этот шаг выполняется через консоль Amazon Quick.
- В левом меню выберите Spaces, а затем Create space.
- На открывшейся странице создания пространства введите name и description для вашего пространства.
- Выберите Add knowledge, чтобы начать добавление контента в пространство.
- В разделе Add topic выберите Quick Observability Topic.

Создайте пользовательского чат-агента Quick:
- В левом меню выберите Chat agents, а затем Create chat agent.
- На открывшейся странице создания агента введите name и description для вашего агента.
- В разделе Instructions вставьте prompt из репозитория GitHub.
- В разделе Knowledge sources выберите Link Spaces и укажите Quick Observability Space.
- Выберите Launch chat agent, чтобы опубликовать агента в библиотеке чат-агентов и использовать его в чате.

Руководители бизнеса могут задавать вопросы вроде: «Какие возможности Amazon Quick использовались чаще всего за последние 30 дней?»
Они будут получать мгновенные визуальные ответы с метриками, графиками и практическими рекомендациями.



Очистка
Чтобы удалить развернутые ресурсы, запустите скрипт очистки:
python3 cleanup.py
Заключение
В этом материале показано, как развернуть решение для наблюдаемости, которое объединяет операционные данные Amazon Quick в защищенном хранилище данных. Решение делает доступными через Amazon Athena, дашборд Amazon Quick Sight и пользовательского чат-агента Amazon Quick метрики взаимодействий в чате, отзывы пользователей, использование часов agent, использование хранилища индексов и события управления. Вы можете расширить решение несколькими способами: добавить собственные представления Athena для метрик вашей организации, создать дополнительные листы в дашборде, построить новые чат-агенты для разных команд или интегрировать хранилище данных с другими инструментами аналитики.
Чтобы начать, можно клонировать репозиторий GitHub и развернуть решение.
Материал — перевод статьи с английского.
Оригинал: Build an enterprise observability solution for Amazon Quick

