Развертывание Amazon RDS в нескольких зонах доступности – это повышение доступности и надежности инстансов базы данных (БД), которое позволяет эффективно справляться с нагрузками на рабочие БД. При создании инстанса БД в нескольких зонах доступности Amazon RDS автоматически создает первичный инстанс БД и синхронно реплицирует данные на резервный инстанс в другой зоне доступности. Каждая зона доступности работает в своей собственной, физически отделенной, независимой инфраструктуре, что обеспечивает высокую надежность. В случае инфраструктурного отказа Amazon RDS выполняет автоматическое переключение на резервную реплику (или реплику чтения в случае 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 использует виртуализированный уровень хранилища на базе SSD с высокой степенью надежности, специально созданный для рабочих нагрузок баз данных. Amazon Aurora автоматически реплицирует том по шести каналам в трех зонах доступности. Хранилище Amazon Аврора отказоустойчиво и автоматически обрабатывает потерю до двух копий данных без снижения доступности операций записи базы данных и до трех копий без снижения доступности операций чтения. Хранилище 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 для MySQL, а также PostgreSQL позволяют использовать встроенную в эти движки репликацию с репликами чтения, когда емкости одного инстанса БД недостаточно для выполнения рабочих нагрузок с большим количеством операций чтения базы данных. Развертывание в нескольких зонах доступности и реплики чтения можно использовать совместно для использования преимуществ обоих способов репликации. Можно просто указать, что данное развертывание в нескольких зонах доступности является исходным инстансом БД для реплик чтения. Таким образом используются как преимущества надежности хранения и доступности данных при развертывании в нескольких зонах доступности, так и преимущества масштабирования реплик чтения.

Обратите внимание на то, что при развертывании в нескольких зонах доступности можно создавать реплику чтения в зоне доступности, отличной от зоны доступности первичного и резервного инстанса, что еще больше повышает избыточность. Зону доступности резервного инстанса можно определить по полю инстанса БД «Secondary Zone» в Консоли управления AWS.