Развертывание Amazon RDS в нескольких зонах доступности – это повышение доступности и надежности инстансов базы данных (БД), которое позволяет эффективно справляться с нагрузками на рабочие БД. При создании инстанса БД в нескольких зонах доступности Amazon RDS автоматически создает первичный инстанс БД и синхронно реплицирует данные на резервный инстанс в другой зоне доступности. Каждая зона доступности работает в своей собственной, физически отделенной, независимой инфраструктуре, что обеспечивает высокую надежность. В случае инфраструктурного отказа Amazon RDS выполняет автоматическое переключение на резервную реплику (или реплику чтения в случае Amazon Aurora), что позволит возобновить работу базы данных, как только обработка отказа будет завершена. После обработки отказа адрес инстанса БД не меняется, поэтому приложение сможет продолжить работу с базой без дополнительной ручной настройки.

Amazon Aurora использует виртуализированный уровень хранилища на основе SSD, специально созданный для рабочих нагрузок БД. Amazon Aurora автоматически реплицирует хранилище в шести экземплярах в трех зонах доступности. Хранилище Amazon Аврора отказоустойчиво и автоматически обрабатывает потерю до двух копий данных без снижения доступности операций записи базы данных и до трех копий без снижения доступности операций чтения. Хранилище Amazon Aurora также самовосстанавливается. Блоки данных и диски непрерывно сканируются на наличие ошибок и автоматически заменяются. Дополнительную информацию о высокой доступности сервиса Amazon Aurora см. в онлайн-документации.

ha_ed_grizzly_reg_database_orange
3:01
Преобразование инстанса Amazon RDS для работы в нескольких зонах доступности

Начните работать с AWS бесплатно

Создать бесплатный аккаунт

Уровень бесплатного пользования AWS с сервисом Amazon Relational Database Service (RDS) включает 750 часов работы инстанса БД Micro в месяц на один год, хранилище данных объемом 20 ГБ и 20 ГБ пространства для резервных копий.

Сведения об уровне бесплатного пользования AWS »

При развертывании в нескольких зонах доступности для ядер MySQL, MariaDB, Oracle и PostgreSQL используется синхронная физическая репликация для поддержания синхронизации резервного инстанса с основным. При развертывании в нескольких зонах доступности с движком SQL Server для достижения того же результата используется синхронная логическая репликация, а также встроенная в SQL Server технология зеркального отображения базы данных (Mirroring). Оба метода предохраняют данные в случае сбоя инстанса БД или потери зоны доступности.

В случае сбоя тома хранилища основного инстанса при развертывании в нескольких зонах доступности Amazon RDS автоматически инициирует аварийную обработку отказа на резервную реплику, содержащую все обновления базы данных (или на реплику чтения в случае Amazon Aurora). Сравним это с развертыванием в одной зоне доступности: в случае сбоя базы данных при развертывании в одной зоне доступности потребуется инициируемая пользователем операция восстановления на момент времени. Эта операция может занять несколько часов, а обновления, выполненные со времени последней точки восстановления (как правило, за последние пять минут), будут недоступны.

Дополнительное преимущество при развертывании в нескольких зонах доступности – повышенная доступность базы данных. В случае сбоя зоны доступности или инстанса БД база данных будет недоступна только во время автоматической обработки отказа: как правило, это меньше одной минуты для Amazon Aurora (всего 30 секунд, если использовать библиотеку MariaDB Connector/J) и от одной до двух минут для других ядер баз данных (подробнее см. на странице вопросов и ответов по RDS).

При развертывании в нескольких зонах доступность также повышается во время планового обслуживания и резервного копирования. При обновлениях системы, таких как исправления ОС или масштабирование инстанса БД эти операции применяются сначала в резервных репликах перед выполнением автоматической обработки отказа. В результате период недоступности также сокращается до времени, требуемого на выполнение автоматической обработки отказа.

В отличие от развертывания в одной зоне доступности, при развертывании инстансов БД MySQL, MariaDB, Oracle и PostgreSQL в нескольких зонах доступности операции ввода-вывода на основном инстансе во время резервного копирования не приостанавливаются, поскольку резервные копии снимаются с резервного инстанса. Тем не менее обратите внимание, что при развертывании в нескольких зонах доступности в течение нескольких минут во время резервного копирования может наблюдаться увеличение задержки. 

При развертывании в Amazon Aurora а случае сбоя инстанса Amazon RDS использует технологию RDS Multi-AZ для автоматического переброса сервиса на одну из (до 15-ти возможных) реплик Aurora, созданных в любой из трех зон доступности. При отсутствии реплик Amazon Aurora в случае сбоя Amazon RDS автоматически попытается создать новый инстанс БД.

Обработка отказа инстанса БД полностью автоматизирована и не требует вмешательства администратора. Amazon RDS следит за состоянием первичного и резервных инстансов и при обнаружении различных сбоев автоматически инициирует обработку отказа.

Amazon RDS определяет самые распространенные сценарии отказа и выполняет автоматическое восстановление, возобновляя работу базы данных как можно быстрее и без вмешательства администратора. Amazon RDS выполняет автоматическую обработку отказа при любом из следующих условий:

  • Потеря доступа в первичной зоне доступности
  • Потеря сетевого подключения к основному инстансу
  • Сбой вычислительного блока основного инстанса
  • Сбой хранилища основного инстанса

Примечание. Когда при развертывании в нескольких зонах доступности инициируются такие операции, как масштабирование инстанса БД или исправления ОС, в целях повышения доступности они применяются сначала в резервных репликах перед выполнением автоматической обработки отказа (сведения о принципах обновления см. в документации на Amazon Aurora). В результате период недоступности сокращается до времени, требуемого на выполнение автоматической обработки отказа. Обратите внимание на то, что при развертывании в нескольких зонах доступности в Amazon RDS не предусмотрена автоматическая обработка отказа при таких операциях с базами данных, как длительно выполняющиеся запросы, взаимоблокировка или повреждения самой базы данных.

Более подробные сведения см. на странице цен на Amazon RDS.

Через Консоль управления AWS можно легко создать новое развертывание в нескольких зонах доступности или изменить существующие инстансы из инстансов, развернутых в одной зоне доступности в инстансы, развернутые в нескольких зонах доступности. Для создания нового нового развертывания в нескольких зонах доступности через Консоль управления AWS просто выберите «Yes» для параметра «Multi-AZ Deployment» при запуске инстанса БД. Для перевода существующего инстанса, развернутого в одной зоне доступности в инстанс, развернутый в нескольких зонах доступности выберите параметр «Yes» для данного инстанса БД в Консоли управления AWS.

Развертывание в нескольких зонах доступности Amazon RDS дополняет возможности реплик чтения Amazon RDS для MySQL, MariaDB и PostgreSQL. Хотя обе эти возможности предусматривают хранение второй копии данных, между ними есть существенные отличия.

Развертывание в нескольких зонах доступности Реплики чтения
Синхронная репликация – высокая надежность Асинхронная репликация – высокая масштабируемость
Активно только ядро базы данных на основном инстансе Все реплики чтения доступны и могут использоваться для масштабирования операций чтения
Резервные копии снимаются автоматически с резервного инстанса По умолчанию резервное копирование не настроено
Всегда охватывает две зоны доступности в одном регионе Могут находиться внутри одной зоны доступности, в разных зонах доступности и в разных регионах
Обновление версий ядра базы данных осуществляется на основном инстансе Обновление версий ядра базы не зависит от исходного инстанса
Обеспечивает автоматическую обработку отказа с переключением на резервную реплику при обнаружении проблемы Можно повысить вручную до отдельного инстанса базы данных

Развертывание в нескольких зонах доступности и реплики чтения можно использовать совместно для сочетания преимуществ обоих способов репликации. Например, можно настроить исходную базу данных в нескольких зонах доступности для обеспечения высокой доступности и создать реплику чтения (в одной зоне доступности) для масштабирования операций чтения.

При использовании RDS для MySQL и MariaDB можно настроить реплики чтения в нескольких зонах доступности, что позволяет использовать реплики чтения в качестве назначения при аварийном восстановлении. При повышении реплики чтения до отдельной базы данных эта БД уже будет иметь поддержку нескольких зон доступности. Обратите внимание: RDS для PostgreSQL пока не поддерживает эту возможность.