Как настроить развертывание AWS RDS Multi-AZ для высокой доступности

Настройте AWS RDS Multi-AZ для автоматического переключения при сбоях, более безопасного обслуживания и лучшей доступности базы данных в производственной среде.

Как настроить развертывание AWS RDS Multi-AZ для высокой доступности

Доступность базы данных имеет значение, когда ваше приложение зависит от одной конечной точки RDS. AWS RDS Multi-AZ снижает риск отказа экземпляра или зоны доступности, поддерживая резервный экземпляр в другой зоне доступности и автоматически переключаясь на него, когда основной экземпляр не может обслуживать трафик.

Это руководство показывает, как настроить развертывание AWS RDS Multi-AZ для нового или существующего экземпляра БД, что отслеживать после изменения и какие компромиссы ожидать.

Что такое AWS RDS Multi-AZ?

Развертывание AWS RDS Multi-AZ (несколько зон доступности) создает точную копию вашего экземпляра базы данных в другой, физически изолированной зоне доступности (AZ) в том же регионе AWS. Этот резервный экземпляр работает в конфигурации "горячего резерва", что означает его непрерывное обновление изменениями с основного экземпляра с использованием синхронной репликации.

Как это работает:

  1. Основной экземпляр: Ваше приложение подключается и записывает данные на основной экземпляр базы данных.
  2. Синхронная репликация: Все записи данных на основной экземпляр синхронно реплицируются на резервный экземпляр. Это гарантирует, что резервный экземпляр всегда актуален относительно основного, минимизируя потерю данных при переключении.
  3. Автоматическое переключение при сбое: В случае сбоя инфраструктуры, затрагивающего основной экземпляр (например, отказ зоны доступности, аппаратный сбой экземпляра, проблема с сетью или сбой ядра СУБД), AWS RDS автоматически переключается на резервную реплику. Продолжительность переключения зависит от движка, рабочей нагрузки и поведения кэширования DNS, поэтому ваше приложение должно использовать логику повторного подключения. Конечная точка базы данных остается той же, поэтому вашим приложениям не нужна новая строка подключения.
  4. Единая конечная точка: Как основной, так и резервный экземпляры используют единую конечную точку DNS. Ваши приложения подключаются к этой конечной точке, а AWS управляет перенаправлением на текущий активный основной экземпляр.

Преимущества развертываний Multi-AZ

Настройка RDS с Multi-AZ предоставляет несколько решающих преимуществ для производственных нагрузок:

  • Высокая доступность: Автоматическое переключение на резервную реплику в другой зоне доступности гарантирует, что ваша база данных останется работоспособной, даже если основная зона доступности выйдет из строя. Это значительно сокращает время простоя.
  • Долговечность данных: Синхронная репликация гарантирует, что все зафиксированные транзакции присутствуют как на основном, так и на резервном экземплярах. Это минимизирует риск потери данных при переключении.
  • Аварийное восстановление: Охватывая несколько зон доступности, ваша база данных защищена от сбоев на уровне зон доступности, что является критическим компонентом вашей стратегии аварийного восстановления.
  • Упрощенное управление: AWS автоматически обрабатывает мониторинг, репликацию и процесс переключения. Вам не нужно настраивать репликацию на уровне хоста, управлять резервными экземплярами или вручную организовывать переключения.
  • Окна обслуживания: Во время планового обслуживания (например, установка исправлений ОС или обновление ядра СУБД) AWS автоматически переключается на резервный экземпляр, выполняет обслуживание на старом основном, а затем переключается обратно. Это минимизирует время простоя приложения.
  • Производительность (задержка записи): Хотя синхронная репликация по своей сути вносит небольшое увеличение задержки записи по сравнению с развертыванием в одной зоне доступности (из-за подтверждения записи в двух местах), для большинства приложений это часто незначительно и является оправданным компромиссом для повышенной доступности.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Учетная запись AWS с соответствующими разрешениями для создания экземпляров RDS и управления ими.
  • Базовое понимание регионов AWS, зон доступности и виртуальных частных облаков (VPC).

Пошаговое руководство по настройке

Вариант 1: Создание нового экземпляра RDS с Multi-AZ

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

  1. Перейдите в консоль RDS: Войдите в консоль управления AWS и откройте консоль Amazon RDS.
  2. Создайте базу данных: На панели навигации выберите Базы данных, затем нажмите Создать базу данных.
  3. Выберите метод создания базы данных: Выберите Стандартное создание.
  4. Выберите параметры движка:
    • Тип движка: Выберите желаемый движок базы данных (например, MySQL, PostgreSQL, SQL Server, Oracle).
    • Версия движка: Выберите конкретную версию.
  5. Шаблоны: Выберите подходящий шаблон. Для производства используйте производственный шаблон и все равно проверьте настройку Multi-AZ перед созданием базы данных.
  6. Настройки:
    • Идентификатор экземпляра БД: Укажите уникальное имя для вашего экземпляра базы данных.
    • Имя главного пользователя и Пароль главного пользователя: Установите учетные данные для основного пользователя базы данных.
  7. Размер экземпляра БД: Выберите класс экземпляра, который соответствует вашим требованиям к производительности.
  8. Хранилище: Настройте тип хранилища и выделенное хранилище.
  9. Доступность и долговечность: Это решающий шаг для Multi-AZ:
    • В разделе Развертывание Multi-AZ выберите Да (Создать резервный экземпляр).
    • (Необязательно) Если вы ранее выбрали шаблон "Производство", этот параметр будет предварительно выбран.
  10. Подключение:
    • VPC: Выберите VPC, в котором будет находиться ваша база данных.
    • Группа подсетей: Убедитесь, что у вас есть группа подсетей БД, охватывающая несколько зон доступности. RDS будет использовать ее для размещения основного и резервного экземпляров в разных зонах доступности.
    • Публичный доступ: Выберите Нет для производственных сред для соблюдения лучших практик безопасности.
    • Группы безопасности VPC: Прикрепите соответствующую группу безопасности, которая разрешает входящий трафик к порту вашей базы данных с ваших серверов приложений.
  11. Аутентификация базы данных: Выберите предпочтительный метод аутентификации.
  12. Мониторинг, Performance Insights, экспорт журналов, обслуживание: Настройте их в соответствии с вашими операционными требованиями.
  13. Создать базу данных: Проверьте все настройки и нажмите Создать базу данных.

AWS предоставит ваш основной экземпляр, а затем создаст и синхронизирует резервную реплику в другой зоне доступности. Этот процесс может занять некоторое время в зависимости от размера экземпляра.

Вариант 2: Изменение существующего экземпляра RDS на Multi-AZ

Вы можете включить Multi-AZ для существующего экземпляра RDS в одной зоне доступности без простоев.

  1. Перейдите в консоль RDS: Войдите в консоль управления AWS и откройте консоль Amazon RDS.
  2. Выберите базу данных: На панели навигации выберите Базы данных, затем выберите экземпляр RDS, который хотите изменить.
  3. Изменить экземпляр: Нажмите кнопку Изменить.
  4. Доступность и долговечность: Прокрутите вниз до раздела Доступность и долговечность.
    • В разделе Развертывание Multi-AZ выберите Да (Создать резервный экземпляр).
  5. Продолжить: Проверьте другие настройки (класс экземпляра, хранилище и т.д.) и внесите любые другие необходимые изменения, затем нажмите Продолжить.
  6. Планирование изменений:
    • Применить немедленно: Выбор этого параметра запускает изменение немедленно. RDS создает резервный экземпляр в фоновом режиме, пока основной остается доступным, хотя вы можете наблюдать более высокую задержку ввода-вывода во время синхронизации. AWS обычно не требует планового отключения только для включения Multi-AZ, но последующие переключения или события обслуживания все равно могут прерывать соединения.
    • Применить во время следующего запланированного окна обслуживания: Этот параметр применит изменения в течение вашего определенного окна обслуживания, минимизируя сбои в часы пик.
  7. Изменить экземпляр БД: Нажмите Изменить экземпляр БД.

AWS начнет процесс создания резервной реплики и ее синхронизации с вашим основным экземпляром. В течение этого времени ваша база данных останется онлайн, но вы можете наблюдать кратковременное событие переключения при финализации конфигурации Multi-AZ.

Мониторинг вашего развертывания Multi-AZ

После настройки Multi-AZ важно отслеживать его статус:

  1. Консоль RDS: Перейдите в консоль RDS и выберите ваш экземпляр базы данных.
  2. Вкладка "Сведения": В разделе Подключение и безопасность вы увидите Multi-AZ как Да. В разделе Доступность и долговечность должно быть указано, что ваш экземпляр находится в развертывании Multi-AZ.
  3. События: Проверьте вкладку Журналы и события на предмет событий, связанных с переключениями, созданием экземпляров или действиями по обслуживанию. AWS будет регистрировать события для переключений (например, RDS-EVENT-0026 - Экземпляр БД XXX был переключен).

Тестирование переключения при сбое (необязательно, но рекомендуется)

Хотя AWS управляет переключениями автоматически, полезно понимать и время от времени тестировать механизм переключения в непроизводственной среде.

Запуск переключения при сбое:

  1. Перезагрузка с переключением: Выберите ваш экземпляр Multi-AZ в консоли RDS. В меню Действия выберите Перезагрузить. Убедитесь, что вы выбрали опцию "Перезагрузить с переключением?".
    • Это действие заставляет RDS переключить основной экземпляр на резервную реплику, имитируя незапланированный сбой. Ваше приложение должно ожидать кратковременного отключения, пока конечная точка не начнет разрешаться к новому основному экземпляру.
  2. Наблюдайте за событиями: После инициации переключения отслеживайте вкладку Журналы и события для вашего экземпляра. Вы должны увидеть события, указывающие на то, что произошло переключение и новый основной экземпляр активен.

Соображения и лучшие практики

  • Стоимость: Развертывания Multi-AZ обходятся дороже, чем развертывания в одной зоне доступности, потому что вы фактически запускаете два экземпляра базы данных (основной и резервный), хотя в любой момент времени только один активно обслуживает трафик.
  • Реплики чтения против Multi-AZ: Поймите разницу. Multi-AZ предназначен для высокой доступности и долговечности (запись). Реплики чтения предназначены для масштабирования чтения и улучшения производительности чтения. Их можно использовать вместе; вы можете создать основной экземпляр Multi-AZ, а затем иметь реплики чтения для масштабирования приложений с интенсивным чтением.
  • Влияние на производительность: Хотя Multi-AZ повышает доступность, синхронная репликация может привести к небольшому увеличению задержки записи по сравнению с одной зоной доступности. Для большинства приложений эти накладные расходы минимальны.
  • Группы подсетей: Убедитесь, что ваша группа подсетей БД включает подсети как минимум в двух разных зонах доступности. Это позволяет RDS размещать ваши основной и резервный экземпляры в разных зонах доступности.
  • Группы безопасности: Правильно настройте группы безопасности VPC, чтобы разрешить трафик от ваших серверов приложений к конечной точке RDS.
  • Поддержка движков баз данных: Multi-AZ поддерживается большинством популярных движков баз данных, включая MySQL, PostgreSQL, SQL Server, Oracle и MariaDB.

Вывод

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