Amazon Aurora
Amazon Aurora — это реляционная система управления базами данных (СУБД), разработанная компанией Amazon Web Services (AWS). Она позиционируется как высокопроизводительная, отказоустойчивая и масштабируемая облачная база данных, совместимая с MySQL и PostgreSQL. Aurora сочетает в себе производительность коммерческих СУБД (сопоставимую с Oracle и Microsoft SQL Server) с простотой, открытостью и экономической эффективностью решений с открытым исходным кодом. Основное отличие Aurora от традиционных СУБД заключается в разделении вычислительных ресурсов и хранилища, а также в использовании распределённой, самоизлечивающейся архитектуры хранения.
История и развитие
Amazon Aurora была анонсирована на конференции AWS re:Invent в ноябре 2014 года. В октябре 2015 года сервис стал общедоступным. Разработка была обусловлена необходимостью преодолеть ограничения традиционных реляционных СУБД в облачной среде, где узким местом часто является пропускная способность сети и дискового ввода-вывода.
Ключевые вехи развития:
- 2014 год: Анонс сервиса.
- 2015 год: Запуск в коммерческую эксплуатацию с поддержкой MySQL 5.6.
- 2017 год: Добавлена поддержка PostgreSQL.
- 2018 год: Представлена функция Aurora Serverless v1, позволяющая автоматически масштабировать вычислительные ресурсы в зависимости от нагрузки.
- 2020 год: Выпуск Aurora Global Database, обеспечивающей глобальное распространение данных с задержкой репликации менее секунды.
- 2022 год: Представлена Aurora Serverless v2, обеспечивающая более быстрое и гибкое масштабирование в миллисекундах.
- 2023 год: Внедрение поддержки Aurora DSQL (Distributed SQL) — нового поколения бессерверной базы данных с полной совместимостью с PostgreSQL и сильной согласованностью данных.
Архитектура
Ключевая особенность Aurora — разделение (decoupling) вычислительного слоя (экземпляры базы данных) и слоя хранения. Это кардинально отличает её от традиционных монолитных СУБД, где каждый экземпляр имеет собственное локальное хранилище.
Слой хранения (Storage Layer)
Хранилище Aurora представляет собой распределённый, самоизлечивающийся кластер, состоящий из множества узлов хранения, размещённых в нескольких зонах доступности (Availability Zones, AZ) одного региона AWS. Данные автоматически реплицируются в шести копиях (по две копии в трёх зонах доступности). Это обеспечивает высокую отказоустойчивость: потеря одной или даже двух копий не приводит к потере данных.
- Подход к записи: В отличие от традиционных СУБД, которые записывают сначала в журнал предзаписи (WAL), а затем в страницы данных, Aurora использует единый протокол записи. Только журнал изменений (redo log) отправляется в слой хранения. Слой хранения асинхронно применяет эти изменения к страницам данных. Это значительно снижает нагрузку на сеть и дисковую подсистему.
- Самоизлечение: Слой хранения постоянно мониторит целостность данных. При обнаружении повреждённого блока или узла хранения он автоматически восстанавливается из здоровых копий. Неисправные узлы заменяются новыми без участия администратора.
- Масштабирование: Хранилище автоматически масштабируется до 128 терабайт (ТБ) на один кластер базы данных. Плата взимается только за фактически используемый объём.
Вычислительный слой (Compute Layer)
Вычислительный слой состоит из одного или нескольких экземпляров базы данных (DB instances), работающих на виртуальных машинах Amazon EC2. Основной экземпляр обслуживает операции чтения и записи. Дополнительные экземпляры (read replicas) могут использоваться только для чтения, что позволяет распределять нагрузку запросов.
- Отказоустойчивость: В случае отказа основного экземпляра, один из реплик чтения автоматически повышается до роли основного. Этот процесс, называемый failover, занимает обычно менее 60 секунд.
- Масштабирование: Вычислительные ресурсы (CPU, RAM) можно масштабировать вертикально (изменяя тип экземпляра) или горизонтально (добавляя реплики чтения).
Ключевые характеристики и возможности
Производительность
Amazon Aurora обеспечивает значительно более высокую пропускную способность по сравнению со стандартными MySQL и PostgreSQL при той же конфигурации оборудования. По заявлениям AWS, Aurora в 5 раз быстрее стандартного MySQL и в 3 раза быстрее стандартного PostgreSQL. Это достигается за счёт:
- Оптимизации сетевого стека и протокола передачи данных.
- Снижения количества операций ввода-вывода (I/O) за счёт кэширования на стороне хранилища.
- Использования специализированного протокола для связи между вычислительным слоем и слоем хранения.
Отказоустойчивость и доступность
- Репликация: Шестикратная репликация данных в трёх зонах доступности.
- Автоматический failover: Быстрое переключение на реплику при сбое основного экземпляра.
- Резервное копирование: Автоматическое непрерывное резервное копирование в Amazon S3. Можно восстановить базу данных на любой момент времени в пределах периода хранения (до 35 дней).
- Aurora Global Database: Позволяет размещать базу данных в нескольких регионах AWS с задержкой репликации менее 1 секунды. Обеспечивает глобальное аварийное восстановление и низкую задержку для пользователей по всему миру.
Совместимость
Aurora полностью совместима с двумя популярными реляционными СУБД с открытым исходным кодом:
- Amazon Aurora MySQL: Совместима с MySQL 5.7 и 8.0. Поддерживает большинство функций, драйверов и инструментов MySQL.
- Amazon Aurora PostgreSQL: Совместима с PostgreSQL 11, 12, 13, 14, 15 и 16. Поддерживает расширения, такие как PostGIS, pg_hint_plan и другие.
Масштабирование
- Автоматическое масштабирование хранилища: До 128 ТБ без простоев.
- Реплики чтения: До 15 реплик чтения в одном регионе.
- Aurora Serverless v2: Автоматическое масштабирование вычислительных ресурсов от 0.5 до 256 ACU (Aurora Capacity Units) в миллисекундах. Идеально подходит для приложений с переменной или непредсказуемой нагрузкой.
- Aurora Auto Scaling: Автоматическое добавление или удаление реплик чтения на основе метрик загрузки CPU или количества соединений.
Безопасность
- Шифрование: Данные шифруются в покое (с использованием AWS KMS) и в транзите (с использованием TLS).
- Сетевая изоляция: База данных может быть размещена в виртуальном частном облаке (VPC) с использованием групп безопасности и сетевых ACL.
- Аутентификация: Поддерживается аутентификация IAM (Identity and Access Management) и парольная аутентификация.
Варианты использования
Amazon Aurora применяется в широком спектре сценариев, где требуется высокая производительность, надёжность и масштабируемость реляционной базы данных:
- Веб-приложения и SaaS: Корпоративные приложения, системы управления контентом (CMS), платформы электронной коммерции.
- Мобильные приложения: Бэкенды для мобильных приложений с высокой нагрузкой.
- Игры: Хранение данных игроков, игровых сессий и транзакций.
- Финансовые системы: Обработка транзакций, управление заказами, системы бухгалтерского учёта.
- Системы аналитики: В качестве источника данных для инструментов бизнес-аналитики (BI) благодаря высокой производительности запросов.
Критика и ограничения
Несмотря на многочисленные преимущества, Amazon Aurora имеет ряд ограничений и критических замечаний:
- Привязка к вендору (Vendor lock-in): Aurora является проприетарным сервисом AWS. Перенос данных в другую облачную платформу или в локальную инфраструктуру может быть сложным и дорогостоящим.
- Стоимость: Хотя Aurora может быть экономически эффективнее коммерческих СУБД, она обычно дороже, чем использование стандартных MySQL или PostgreSQL на аналогичных инстансах EC2 с собственным хранилищем.
- Ограниченная совместимость: Несмотря на высокую степень совместимости с MySQL и PostgreSQL, некоторые специфические функции (например, определённые типы индексов, хранимые процедуры, расширения) могут не поддерживаться или работать иначе.
- Сложность настройки: Для достижения оптимальной производительности может потребоваться тонкая настройка параметров, таких как размер буферного пула, параметры сети и тип инстанса.
- Ограничения по размеру: Максимальный размер хранилища в 128 ТБ может быть недостаточным для некоторых крупномасштабных хранилищ данных (data warehouses).
Источники
- Документация Amazon Web Services: «Amazon Aurora» (AWS Documentation).
- Amazon Web Services Blog: «Amazon Aurora: A New Relational Database Engine for AWS» (2014).
- Официальный сайт Amazon Aurora (aws.amazon.com/rds/aurora).
- Книга: «Database Reliability Engineering: Designing and Operating Resilient Database Systems» by Laine Campbell and Charity Majors (O'Reilly Media, 2017).
- Отчёты и аналитика Gartner, Forrester Research по рынку облачных баз данных (2015-2024).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →