Открыть сервис

Aurora DSQL

Aurora DSQL — это распределённая система управления реляционными базами данных (СУБД) с поддержкой SQL, разработанная компанией Amazon Web Services (AWS). Система ориентирована на обработку транзакционных и аналитических нагрузок с высокой доступностью, масштабируемостью и отказоустойчивостью, используя архитектуру, основанную на разделении вычислительных ресурсов и хранилища. Aurora DSQL является частью семейства сервисов AWS Aurora, но отличается от классической Amazon Aurora архитектурой, оптимизированной для работы в распределённых средах и облачных вычислениях.

История

Разработка Aurora DSQL была начата в 2020 году как ответ на растущие потребности клиентов AWS в базах данных, способных обрабатывать глобально распределённые транзакции с низкой задержкой и высокой пропускной способностью. В отличие от традиционных решений, Aurora DSQL с самого начала проектировалась для работы в мультирегиональных конфигурациях, что позволило обеспечить согласованность данных на уровне отдельных записей (строгая сериализуемость) без необходимости синхронизации всех узлов.

Первая публичная бета-версия Aurora DSQL была анонсирована на конференции AWS re:Invent в ноябре 2023 года. В 2024 году система вышла в общий доступ (GA) в нескольких регионах AWS, включая Северную Америку, Европу и Азиатско-Тихоокеанский регион. В 2025 году было объявлено о поддержке дополнительных функций, таких как глобальные таблицы и автоматическое шардирование.

Архитектура

Разделение вычислительных ресурсов и хранилища

Aurora DSQL использует архитектуру, в которой вычислительные узлы (compute nodes) и хранилище (storage) физически разделены. Вычислительные узлы выполняют SQL-запросы, управляют транзакциями и кэшируют данные, а хранилище, построенное на основе распределённой файловой системы AWS, обеспечивает долговременное хранение и репликацию данных. Это позволяет независимо масштабировать вычислительные мощности и объём хранилища.

Распределённая обработка транзакций

В отличие от классической Amazon Aurora, где все узлы кластера синхронизируются через единый журнал транзакций, Aurora DSQL использует протокол распределённой фиксации (distributed commit protocol), основанный на алгоритме Paxos. Это обеспечивает строгую сериализуемость (serializable isolation) для всех транзакций, даже в условиях глобальной репликации. Каждая запись в базе данных имеет свою копию в нескольких зонах доступности (Availability Zones), что гарантирует отказоустойчивость без потери данных.

Шардирование

Aurora DSQL автоматически распределяет данные по шардам (shards) на основе первичного ключа. Шардирование выполняется прозрачно для пользователя: разработчик не указывает схему шардирования, а система сама определяет оптимальное распределение данных и перераспределяет их при изменении нагрузки. Каждый шард управляется независимым набором вычислительных узлов, что позволяет горизонтально масштабировать производительность.

Ключевые характеристики

Производительность

Доступность и отказоустойчивость

Совместимость

Aurora DSQL поддерживает стандартный SQL-синтаксис, включая подмножество команд DDL (Data Definition Language) и DML (Data Manipulation Language). Полная совместимость с PostgreSQL или MySQL не гарантируется, однако основные конструкции (SELECT, INSERT, UPDATE, DELETE, JOIN, агрегатные функции) поддерживаются. Для взаимодействия с приложениями используется протокол, совместимый с PostgreSQL (через библиотеки libpq, psycopg2, pgx и другие).

Применение

Aurora DSQL используется в сценариях, требующих высокой доступности и глобальной согласованности данных:

Ограничения

Сравнение с другими продуктами

ХарактеристикаAurora DSQLAmazon Aurora (классическая)Amazon DynamoDB
Модель данныхРеляционная (SQL)Реляционная (SQL)Документная/ключ-значение (NoSQL)
СогласованностьСтрогая сериализуемостьСтрогая сериализуемость (в пределах региона)В конечном счёте (eventual) или строгая (по запросу)
МасштабированиеАвтоматическое шардированиеВертикальное и горизонтальное (чтение)Автоматическое шардирование
Глобальная репликацияВстроенная (глобальные таблицы)Через Aurora Global DatabaseЧерез DynamoDB Global Tables
Максимальная задержка записи<10 мс (локально)<10 мс (локально)<10 мс (локально)

Безопасность

Aurora DSQL интегрирована с сервисами AWS Identity and Access Management (IAM) для управления доступом, поддерживает шифрование данных в покое (через AWS Key Management Service) и в транзите (TLS 1.2/1.3). Для аудита операций используется AWS CloudTrail. Система соответствует требованиям стандартов SOC 2, ISO 27001, HIPAA (для медицинских данных) и PCI DSS (для платёжных данных).

Экономические аспекты

Стоимость использования Aurora DSQL складывается из оплаты за вычислительные ресурсы (в час или за запрос), объём хранимых данных (в гигабайтах в месяц) и сетевой трафик между регионами. В отличие от классической Amazon Aurora, где минимальная стоимость определяется размером инстанса, Aurora DSQL позволяет платить только за фактически потреблённые ресурсы, что делает её экономически эффективной для переменных нагрузок.

Критика

Основные замечания к Aurora DSQL связаны с ограниченной совместимостью с существующими приложениями, написанными для PostgreSQL или MySQL. Разработчикам приходится адаптировать код, что увеличивает время миграции. Также критикуется отсутствие поддержки хранимых процедур, триггеров и пользовательских функций, что ограничивает возможности автоматизации бизнес-логики на стороне базы данных.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →