Как настроить развертывание AWS RDS Multi-AZ для высокой доступности
Доступность базы данных имеет первостепенное значение для критически важных производственных приложений. Время простоя может привести к значительным финансовым потерям, ущербу репутации и разочарованным пользователям. Amazon Relational Database Service (RDS) предлагает надежное решение для управления реляционными базами данных в облаке, а его опция развертывания Multi-AZ специально разработана для обеспечения повышенной доступности, долговечности и отказоустойчивости ваших экземпляров баз данных.
Эта статья проведет вас через процесс настройки развертывания AWS RDS Multi-AZ. Мы рассмотрим, что такое Multi-AZ, его ключевые преимущества и предоставим пошаговые инструкции по его настройке как для новых, так и для существующих экземпляров RDS. В конце вы поймете, как создать отказоустойчивую инфраструктуру баз данных, которая обеспечивает возможности автоматического переключения при отказе, значительно повышая время безотказной работы и долговечность для ваших экземпляров MySQL, PostgreSQL или других поддерживаемых баз данных.
Что такое AWS RDS Multi-AZ?
Развертывание AWS RDS Multi-AZ (Multiple Availability Zone) создает точную реплику вашего экземпляра базы данных в другой, физически изолированной зоне доступности (AZ) в том же регионе AWS. Этот резервный экземпляр работает в конфигурации «горячего резерва», что означает, что он постоянно обновляется изменениями из основного экземпляра с использованием синхронной репликации.
Как это работает:
- Основной экземпляр: Ваше приложение подключается к основному экземпляру базы данных и записывает в него данные.
- Синхронная репликация: Все записи данных в основной экземпляр синхронно реплицируются в резервный экземпляр. Это гарантирует, что резервный экземпляр всегда актуален по отношению к основному, минимизируя потери данных во время переключения при отказе.
- Автоматическое переключение при отказе: В случае сбоя инфраструктуры, затрагивающего основной экземпляр (например, сбой AZ, сбой оборудования экземпляра, проблемы с сетью или сбои ядра базы данных), AWS RDS автоматически переключается на резервную реплику. Этот процесс переключения при отказе обычно занимает 1-2 минуты и не требует ручного вмешательства с вашей стороны. Конечная точка базы данных остается той же, поэтому вашим приложениям не нужно менять строки подключения.
- Единая конечная точка: И основной, и резервный экземпляры используют одну конечную точку DNS. Ваши приложения подключаются к этой конечной точке, и AWS управляет перенаправлением на текущий активный основной экземпляр.
Преимущества развертываний Multi-AZ
Настройка RDS с Multi-AZ обеспечивает несколько важнейших преимуществ для производственных рабочих нагрузок:
- Высокая доступность: Автоматическое переключение на резервную реплику в другой AZ гарантирует, что ваша база данных останется работоспособной, даже если в основной AZ произойдет сбой. Это значительно сокращает время простоя.
- Долговечность данных: Синхронная репликация гарантирует, что все зафиксированные транзакции присутствуют как на основном, так и на резервном экземплярах. Это минимизирует риск потери данных во время переключения при отказе.
- Аварийное восстановление: Распространяясь на несколько зон доступности, ваша база данных защищена от сбоев на уровне AZ, что является критически важным компонентом вашей стратегии аварийного восстановления.
- Упрощенные операции: AWS автоматически обрабатывает мониторинг, репликацию и процесс переключения при отказе. Вам не нужно настраивать репликацию на основе хоста, управлять резервными экземплярами или вручную организовывать переключение при отказе.
- Окна обслуживания: Во время планового обслуживания (например, установка патчей ОС или обновление ядра базы данных) AWS автоматически переключается на резервный экземпляр, выполняет обслуживание старого основного экземпляра, а затем переключается обратно. Это минимизирует время простоя приложения.
- Производительность (задержка записи): Хотя синхронная репликация по своей сути приводит к небольшому увеличению задержки записи по сравнению с развертыванием в одной AZ (из-за подтверждения записей в двух местах), это часто незначительно для большинства приложений и является достойным компромиссом для повышенной доступности.
Предварительные условия
Прежде чем начать, убедитесь, что у вас есть:
- Учетная запись AWS с соответствующими разрешениями для создания и управления экземплярами RDS.
- Базовое понимание регионов AWS, зон доступности и виртуальных частных облаков (VPC).
Пошаговое руководство по настройке
Вариант 1: Создание нового экземпляра RDS с Multi-AZ
Это рекомендуемый подход для новых развертываний, обеспечивающий высокую доступность с первого дня.
- Перейдите в консоль RDS: Войдите в консоль управления AWS и откройте консоль Amazon RDS.
- Создать базу данных: На панели навигации выберите Базы данных, затем нажмите Создать базу данных.
- Выбрать метод создания базы данных: Выберите Стандартное создание.
- Выбрать параметры ядра:
- Тип ядра: Выберите желаемое ядро базы данных (например, MySQL, PostgreSQL, SQL Server, Oracle).
- Версия ядра: Выберите конкретную версию.
- Шаблоны: Выберите подходящий шаблон. Для производства рекомендуется Производство, так как он по умолчанию использует Multi-AZ.
- Настройки:
- Идентификатор экземпляра БД: Введите уникальное имя для вашего экземпляра базы данных.
- Имя пользователя master и Пароль master: Установите учетные данные для основного пользователя базы данных.
- Размер экземпляра БД: Выберите класс экземпляра, который соответствует вашим требованиям к производительности.
- Хранилище: Настройте тип хранилища и выделенное хранилище.
- Доступность и долговечность: Это решающий шаг для Multi-AZ:
- В разделе Развертывание Multi-AZ выберите Да (создать резервный экземпляр).
- (Необязательно) Если вы ранее выбрали шаблон «Производство», этот параметр будет предварительно выбран.
- Подключение:
- VPC: Выберите VPC, в котором будет находиться ваша база данных.
- Группа подсетей: Убедитесь, что у вас есть группа подсетей БД, охватывающая несколько зон доступности. RDS будет использовать ее для размещения основного и резервного экземпляров в разных AZ.
- Публичный доступ: Выберите Нет для производственных сред в соответствии с лучшими практиками безопасности.
- Группы безопасности VPC: Прикрепите соответствующую группу безопасности, которая разрешает входящий трафик к порту вашей базы данных с ваших серверов приложений.
- Аутентификация базы данных: Выберите предпочтительный метод аутентификации.
- Мониторинг, Performance Insights, Экспорт логов, Обслуживание: Настройте их в соответствии с вашими операционными требованиями.
- Создать базу данных: Просмотрите все свои настройки и нажмите Создать базу данных.
AWS подготовит ваш основной экземпляр, а затем создаст и синхронизирует резервную реплику в другой зоне доступности. Этот процесс может занять некоторое время, в зависимости от размера экземпляра.
Вариант 2: Модификация существующего экземпляра RDS на Multi-AZ
Вы можете включить Multi-AZ для существующего экземпляра RDS с одной AZ без простоя.
- Перейдите в консоль RDS: Войдите в консоль управления AWS и откройте консоль Amazon RDS.
- Выберите базу данных: На панели навигации выберите Базы данных, затем выберите экземпляр RDS, который вы хотите изменить.
- Изменить экземпляр: Нажмите кнопку Изменить.
- Доступность и долговечность: Прокрутите вниз до раздела Доступность и долговечность.
- В разделе Развертывание Multi-AZ выберите Да (создать резервный экземпляр).
- Продолжить: Просмотрите другие настройки (класс экземпляра, хранилище и т. д.) и внесите любые другие необходимые изменения, затем нажмите Продолжить.
- Планирование изменений:
- Применить немедленно: Выбор этой опции немедленно применит изменения. Для включения Multi-AZ AWS создаст резервный экземпляр в фоновом режиме. Основной экземпляр остается доступным во время этой начальной фазы создания, хотя может быть короткий период повышенной задержки ввода-вывода. Как только резервный экземпляр будет синхронизирован, произойдет кратковременный сбой (обычно менее минуты), когда AWS выполнит небольшое переключение при отказе для активации конфигурации Multi-AZ.
- Применить во время следующего запланированного окна обслуживания: Эта опция применит изменения во время вашего определенного окна обслуживания, минимизируя сбои в часы пик.
- Изменить экземпляр БД: Нажмите Изменить экземпляр БД.
AWS начнет процесс создания резервной реплики и ее синхронизации с вашим основным экземпляром. В это время ваша база данных будет оставаться в сети, но вы можете наблюдать кратковременное событие переключения при отказе, когда конфигурация Multi-AZ будет завершена.
Мониторинг вашего развертывания Multi-AZ
После настройки Multi-AZ важно контролировать его состояние:
- Консоль RDS: Перейдите в консоль RDS и выберите ваш экземпляр базы данных.
- Вкладка «Детали»: В разделе Подключение и безопасность вы увидите Multi-AZ с пометкой
Да. В разделе Доступность и долговечность должно быть указано, что ваш экземпляр находится в развертывании Multi-AZ. - События: Проверьте вкладку Журналы и события на предмет событий, связанных с переключениями при отказе, созданием экземпляров или действиями по обслуживанию. AWS будет регистрировать события переключения при отказе (например,
RDS-EVENT-0026 — Экземпляр БД XXX был переключен).
Тестирование переключения при отказе (необязательно, но рекомендуется)
Хотя AWS управляет переключениями при отказе автоматически, рекомендуется понимать и время от времени тестировать механизм переключения при отказе в непроизводственной среде.
Инициирование переключения при отказе:
- Перезагрузка с переключением при отказе: Выберите ваш экземпляр Multi-AZ в консоли RDS. В меню Действия выберите Перезагрузить. Убедитесь, что вы выбрали опцию «Перезагрузить с переключением при отказе?».
- Это действие заставляет RDS переключить основной экземпляр на резервную реплику, имитируя незапланированный сбой. Ваше приложение испытает кратковременное отключение (1-2 минуты) по мере обновления конечной точки DNS.
- Наблюдать за событиями: После инициирования переключения при отказе отслеживайте вкладку Журналы и события для вашего экземпляра. Вы должны увидеть события, указывающие на то, что произошло переключение при отказе и что новый основной экземпляр активен.
Соображения и лучшие практики
- Стоимость: Развертывания Multi-AZ влекут за собой более высокие затраты, чем развертывания в одной AZ, потому что вы фактически запускаете два экземпляра базы данных (основной и резервный), хотя только один активно обслуживает трафик в любой момент времени.
- Реплики для чтения vs. Multi-AZ: Поймите разницу. Multi-AZ предназначен для обеспечения высокой доступности и долговечности (записи). Реплики для чтения предназначены для масштабирования чтения и повышения производительности чтения. Их можно использовать вместе; вы можете создать основной экземпляр Multi-AZ, а затем использовать реплики для чтения для масштабирования приложений с интенсивным чтением.
- Влияние на производительность: Хотя Multi-AZ повышает доступность, синхронная репликация может привести к небольшому увеличению задержки записи по сравнению с одной AZ. Для большинства приложений эти накладные расходы минимальны.
- Группы подсетей: Убедитесь, что ваша группа подсетей БД включает подсети как минимум в двух разных зонах доступности. Это позволяет RDS размещать ваши основной и резервный экземпляры в отдельных AZ.
- Группы безопасности: Правильно настройте группы безопасности VPC, чтобы разрешить трафик от ваших серверов приложений к конечной точке RDS.
- Поддержка ядра базы данных: Multi-AZ поддерживается большинством популярных ядер баз данных, включая MySQL, PostgreSQL, SQL Server, Oracle и MariaDB.
Заключение
Развертывания AWS RDS Multi-AZ являются краеугольным камнем создания высокодоступных и долговечных решений для реляционных баз данных в облаке. Автоматически реплицируя данные между зонами доступности и обеспечивая бесперебойное переключение при отказе, Multi-AZ значительно снижает риск простоя и потери данных для ваших критически важных приложений. Хотя это сопряжено с увеличением затрат, операционная простота и повышенная отказоустойчивость делают его необходимой конфигурацией для производственных рабочих нагрузок баз данных на AWS. Внедрите Multi-AZ сегодня, чтобы защитить свои данные и обеспечить непрерывную доставку услуг.