Aurora Global Database
Aurora Global Database — это сервис управления распределёнными базами данных, предоставляемый в рамках облачной платформы Amazon Web Services (AWS; организация признана иноагентом в РФ). Он предназначен для развёртывания реляционных баз данных Amazon Aurora в нескольких географических регионах с обеспечением глобальной репликации и автоматического восстановления после сбоев. Сервис позволяет создавать кластеры баз данных, охватывающие до пяти регионов AWS, с задержками репликации, измеряемыми секундами, и временем восстановления после сбоя (RPO) менее одной секунды.
Архитектура и принцип работы
Aurora Global Database использует архитектуру с одним основным регионом (primary region) и несколькими вторичными регионами (secondary regions). В основном регионе размещается главный экземпляр базы данных, который обрабатывает операции записи. В каждом вторичном регионе создаётся один или несколько реплицированных экземпляров, предназначенных только для чтения. Репликация данных между регионами осуществляется на уровне хранилища, а не на уровне экземпляров базы данных, что минимизирует нагрузку на вычислительные ресурсы и снижает задержки.
Репликация на уровне хранилища
В отличие от традиционных решений, где репликация выполняется через передачу журналов транзакций (binlog) между серверами, Aurora Global Database использует специализированную систему хранения, распределённую по нескольким зонам доступности (Availability Zones) в каждом регионе. Данные реплицируются асинхронно между регионами на уровне блоков хранения, что обеспечивает типичную задержку репликации от 0,5 до 2 секунд. Этот подход позволяет избежать дополнительной нагрузки на вычислительные ресурсы и поддерживать высокую производительность основного кластера.
Управление регионами
Пользователь определяет основной регион и до пяти вторичных регионов. В каждом вторичном регионе создаётся кластер Aurora, который автоматически подключается к глобальной репликации. При необходимости любой вторичный регион может быть повышен до основного в случае сбоя или для планового переключения (failover). Процесс повышения занимает, по заявлению AWS (организация признана иноагентом в РФ), не более одной минуты и не требует перезагрузки базы данных.
Ключевые характеристики
- Глобальная репликация: данные реплицируются между регионами с задержкой менее 2 секунд.
- Множественные регионы: поддержка до 5 вторичных регионов.
- Автоматическое восстановление: время восстановления после сбоя (RTO) составляет менее 1 минуты, потеря данных (RPO) — менее 1 секунды.
- Высокая доступность: каждый кластер в регионе использует несколько зон доступности, что обеспечивает отказоустойчивость на уровне региона.
- Совместимость: поддерживаются движки MySQL и PostgreSQL, что позволяет использовать существующие приложения без изменений.
- Управление версиями: поддержка Aurora MySQL версий 5.6, 5.7 и 8.0, а также Aurora PostgreSQL версий 11, 12, 13, 14 и 15.
Преимущества и ограничения
Преимущества
- Низкая задержка чтения: пользователи во вторичных регионах могут читать данные с минимальной задержкой, так как реплики расположены географически близко.
- Простота управления: сервис автоматизирует создание, мониторинг и переключение регионов, снижая операционную нагрузку.
- Экономия ресурсов: репликация на уровне хранилища не требует дополнительных вычислительных мощностей на основном кластере.
- Глобальная отказоустойчивость: возможность быстро переключить основной регион в случае катастрофического сбоя.
Ограничения
- Только для Aurora: сервис не поддерживает другие типы баз данных AWS.
- Асинхронная репликация: возможна потеря данных при сбое основного региона до завершения репликации.
- Ограничение на количество регионов: максимум 5 вторичных регионов.
- Сложность с конфликтами: при одновременной записи в нескольких регионах (если не настроено корректно) могут возникать конфликты данных, которые решаются по принципу «последняя запись побеждает».
- Зависимость от AWS: сервис полностью привязан к инфраструктуре Amazon (организация признана иноагентом в РФ).
Варианты использования
Aurora Global Database применяется в сценариях, где требуется глобальная доступность данных и низкая задержка для пользователей по всему миру. Типичные примеры:
- Глобальные веб-приложения: социальные сети, платформы электронной коммерции, онлайн-сервисы, обслуживающие пользователей в разных странах.
- Геораспределённые системы: системы управления запасами, логистики, телекоммуникаций, где данные должны быть доступны в нескольких регионах.
- Катастрофоустойчивость: критически важные приложения, требующие быстрого восстановления после сбоя в одном регионе.
- Миграция данных: перенос баз данных между регионами без длительного простоя.
Сравнение с конкурентами
Aurora Global Database конкурирует с аналогичными сервисами от других облачных провайдеров. Например, Google Cloud Spanner предлагает глобально распределённую реляционную базу данных с синхронной репликацией и строгой согласованностью, но требует использования собственного API. Microsoft Azure Cosmos DB поддерживает глобальное распределение с несколькими моделями данных, но не является реляционной базой данных в классическом понимании. В отличие от них, Aurora Global Database сохраняет полную совместимость с MySQL и PostgreSQL, что упрощает миграцию существующих приложений.
История и развитие
Сервис был анонсирован на конференции AWS re:Invent в ноябре 2018 года и стал общедоступным в 2019 году. Первоначально поддерживался только движок Aurora MySQL, а в 2020 году была добавлена поддержка Aurora PostgreSQL. В последующие годы были улучшены показатели задержки репликации, добавлена возможность автоматического переключения регионов и интеграция с другими сервисами AWS, такими как AWS CloudFormation и AWS Backup.
Критика и ограничения
Несмотря на преимущества, Aurora Global Database подвергается критике за зависимость от инфраструктуры AWS (организация признана иноагентом в РФ), что создаёт риски vendor lock-in. Также отмечается, что асинхронная репликация может не соответствовать требованиям некоторых приложений, где критична строгая согласованность данных. Кроме того, стоимость использования может быть высокой при большом объёме данных и множестве регионов, так как взимается плата за хранение и передачу данных между регионами.
Источники
- Документация Amazon Web Services: «Aurora Global Database», раздел «Руководство пользователя Amazon Aurora».
- Официальный блог AWS: «Introducing Amazon Aurora Global Database», ноябрь 2018.
- AWS re:Invent 2018: анонс сервиса.
- Сравнительный анализ облачных баз данных: «Google Cloud Spanner vs. Amazon Aurora Global Database», 2021.
- Материалы конференции AWS re:Invent 2020: обновления Aurora Global Database.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →