Amazon Aurora MySQL
Amazon Aurora MySQL — это реляционная база данных, совместимая с MySQL, разработанная компанией Amazon Web Services (AWS) для облачной платформы. Она представляет собой один из двух основных движков (наряду с Amazon Aurora PostgreSQL) сервиса Amazon Aurora, который позиционируется как высокопроизводительная, отказоустойчивая и полностью управляемая альтернатива традиционным базам данных, таким как MySQL и MariaDB. Amazon Aurora MySQL не является прямым форком MySQL, а использует собственный, распределённый, журналируемый движок хранения, который обеспечивает более высокую производительность и надёжность при сохранении полной совместимости с протоколом MySQL.
История
Amazon Aurora была анонсирована в ноябре 2014 года на конференции AWS re:Invent. Первоначально сервис был доступен только с движком, совместимым с MySQL 5.6. В 2015 году сервис был запущен в коммерческую эксплуатацию. В 2017 году появилась поддержка MySQL 5.7, а в 2021 году — MySQL 8.0. Развитие Amazon Aurora MySQL продолжается, добавляются новые функции, такие как глобальные базы данных, параллельные запросы и интеграция с другими сервисами AWS.
Архитектура и принципы работы
Ключевое отличие Amazon Aurora MySQL от традиционного MySQL заключается в разделении вычислительных ресурсов и хранилища.
Разделение вычислений и хранения
В традиционном MySQL сервер базы данных и хранилище данных обычно находятся на одном узле. В Amazon Aurora MySQL вычислительный слой (экземпляры базы данных) и слой хранения (хранилище) разделены. Вычислительный слой состоит из одного основного экземпляра (primary instance), который обрабатывает операции записи, и до 15 реплик чтения (read replicas), которые обслуживают запросы на чтение. Слой хранения представляет собой распределённое, реплицированное хранилище, которое автоматически масштабируется до 128 ТБ.
Распределённое хранилище
Хранилище Amazon Aurora MySQL реплицируется автоматически в трёх зонах доступности (Availability Zones) одного региона AWS. Данные разбиваются на сегменты (segments) размером 10 ГБ, и каждый сегмент реплицируется на шесть узлов хранения. Таким образом, для обеспечения отказоустойчивости используется шесть копий данных. При записи данные сначала фиксируются в кворуме из четырёх из шести узлов, что обеспечивает высокую доступность и устойчивость к сбоям.
Журналируемый движок хранения
Вместо традиционного механизма InnoDB, Amazon Aurora MySQL использует собственный движок хранения, который работает на основе журнала (log-structured). При операциях записи (INSERT, UPDATE, DELETE) на диск записываются только изменения (логи), а не полные страницы данных. Это значительно снижает нагрузку на ввод-вывод и ускоряет операции записи. Слой хранения затем асинхронно применяет эти логи к страницам данных.
Классификация и версии
Amazon Aurora MySQL поддерживает несколько версий, каждая из которых совместима с определённой версией MySQL Community Edition.
Версии совместимости
- Aurora MySQL 3 (совместимость с MySQL 8.0): Наиболее современная версия, предлагающая все основные функции MySQL 8.0, включая общие табличные выражения (CTE), оконные функции, роли и улучшенную производительность.
- Aurora MySQL 2 (совместимость с MySQL 5.7): Ранее основная версия, которая всё ещё поддерживается, но имеет ограниченный набор новых функций. Рекомендуется мигрировать на версию 3.
- Aurora MySQL 1 (совместимость с MySQL 5.6): Устаревшая версия, которая больше не поддерживается. Использование не рекомендуется.
Типы экземпляров
Amazon Aurora MySQL предлагает различные типы экземпляров, оптимизированные для разных нагрузок:
- T-типы (Burstable): Для тестовых сред и нагрузок с низкой интенсивностью.
- R-типы (Memory Optimized): Для рабочих нагрузок, чувствительных к объёму оперативной памяти.
- X-типы (Memory Intensive): Для самых требовательных рабочих нагрузок с большим объёмом данных в памяти.
Характеристики и возможности
Производительность
Amazon Aurora MySQL позиционируется как высокопроизводительная база данных. По заявлениям AWS, она обеспечивает до пяти раз более высокую пропускную способность (throughput) по сравнению со стандартным MySQL, работающим на аналогичном оборудовании. Это достигается за счёт архитектуры с разделением хранения и журналируемого движка.
Отказоустойчивость и высокая доступность
- Автоматическое восстановление: При сбое основного экземпляра AWS автоматически переключает роль на одну из реплик чтения. Время простоя обычно составляет менее 60 секунд.
- Репликация хранилища: Шестикратная репликация данных в трёх зонах доступности обеспечивает устойчивость к сбоям на уровне хранилища.
- Непрерывное резервное копирование: Резервное копирование выполняется автоматически и не влияет на производительность. Восстановление возможно на любой момент времени (Point-in-Time Recovery) в пределах срока хранения резервных копий (от 1 до 35 дней).
Масштабирование
- Автоматическое масштабирование хранилища: Хранилище автоматически увеличивается по мере роста данных, без необходимости ручного вмешательства. Максимальный размер — 128 ТБ.
- Реплики чтения: Возможность создания до 15 реплик чтения, которые могут обслуживать запросы на чтение и снижать нагрузку на основной экземпляр.
- Глобальные базы данных: Функция Amazon Aurora Global Database позволяет развернуть базу данных в нескольких регионах AWS для обеспечения низкой задержки для пользователей по всему миру и аварийного восстановления.
Безопасность
- Шифрование: Поддерживается шифрование данных в покое (с помощью AWS KMS) и в пути (с помощью TLS).
- Сетевой контроль: Доступ к базе данных можно ограничить с помощью групп безопасности (Security Groups) и виртуальных частных облаков (VPC).
- Аутентификация: Поддерживается аутентификация с помощью пароля, а также IAM-аутентификация для интеграции с другими сервисами AWS.
Применение
Amazon Aurora MySQL широко используется в различных сценариях, где требуется высокая производительность, надёжность и управляемость базы данных.
Веб-приложения и SaaS
Благодаря высокой производительности чтения и записи, Amazon Aurora MySQL является популярным выбором для веб-приложений, платформ электронной коммерции и SaaS-решений, где требуется обработка большого количества транзакций.
Мобильные приложения и игры
Низкая задержка и высокая доступность делают Amazon Aurora MySQL подходящей для мобильных приложений и онлайн-игр, где требуется быстрый доступ к данным и минимальное время простоя.
Аналитика и отчётность
Хотя Amazon Aurora MySQL не предназначена для сложной аналитики (для этого существуют специализированные сервисы, такие как Amazon Redshift), она может использоваться для операционной аналитики и генерации отчётов в реальном времени.
Миграция с MySQL
Amazon Aurora MySQL часто используется для миграции существующих приложений, работающих на MySQL, в облако AWS. Процесс миграции обычно упрощён благодаря полной совместимости с протоколом MySQL.
Критика и ограничения
Несмотря на преимущества, Amazon Aurora MySQL имеет ряд ограничений и критических замечаний.
- Стоимость: Amazon Aurora MySQL является премиальным сервисом и может быть значительно дороже, чем использование обычного MySQL на EC2 или RDS MySQL, особенно при больших объёмах данных и высокой нагрузке.
- Привязка к вендору: Использование Amazon Aurora MySQL создаёт зависимость от платформы AWS (vendor lock-in). Миграция на другую платформу может быть сложной и дорогостоящей.
- Ограниченная совместимость: Хотя Amazon Aurora MySQL поддерживает большинство функций MySQL, некоторые расширения и плагины (например, некоторые плагины для полнотекстового поиска) могут не работать.
- Сложность настройки: Для достижения максимальной производительности может потребоваться тонкая настройка параметров, что требует опыта работы с AWS.
- Отсутствие некоторых функций MySQL 8.0: В некоторых версиях Amazon Aurora MySQL 3 могут отсутствовать отдельные функции, доступные в последних версиях MySQL 8.0 Community Edition.
Источники
- Документация Amazon Web Services: «Amazon Aurora User Guide».
- Официальный блог AWS: «Amazon Aurora – New Cost-Effective MySQL-Compatible Database Engine for Amazon RDS» (2014).
- Документация MySQL: «MySQL 8.0 Reference Manual».
- Статья на сайте AWS: «Amazon Aurora MySQL Compatibility and Versioning».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →