Реплики чтения в Amazon RDS

Реплики чтения в Amazon RDS повышают производительность и надежность инстансов баз данных (БД) Amazon RDS. Они упрощают эластичное масштабирование ресурсов для выполнения рабочих нагрузок с большим количеством операций чтения, снимая ограничения, которые накладывает использование одного инстанса БД. Для заданного исходного инстанса БД можно создать одну или более реплик для обслуживания трафика приложений с большим количеством операций чтения из различных копий данных, что позволит увеличить общую пропускную способность таких операций. Реплики чтения при необходимости можно превратить в самостоятельные инстансы БД. Реплики чтения доступны в Amazon RDS для MySQL, MariaDBPostgreSQL, Oracle, SQL Server, а также в Amazon Aurora.

Amazon RDS создает для ядер БД MySQL, MariaDB, PostgreSQL, Oracle и SQL Server второй инстанс БД с помощью снимка состояния исходного инстанса БД. После этого при любом изменении исходного инстанса БД этот сервис обновляет реплику чтения с помощью встроенного механизма асинхронной репликации соответствующего ядра БД. Реплика чтения работает как инстанс БД, разрешающий подключения только для чтения; приложения могут подключаться к реплике чтения, как к любому другому инстансу БД. Amazon RDS реплицирует все базы данных в исходном инстансе БД.

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

Масштабирование чтения и аварийное восстановление

Преимущества реплик чтения в Amazon RDS

Нагрузку на исходный инстанс БД можно снизить за счет маршрутизации запросов приложений на чтение к реплике чтения. Реплики чтения позволяют превышать емкость одного инстанса БД для выполнения рабочих нагрузок с большим количеством операций чтения. Поскольку реплике чтения можно назначить статус основного инстанса, эта возможность полезна и при внедрении сегментирования. Чтобы дополнительно повысить производительность, Amazon RDS для MySQL позволяет добавлять индексы в таблицы прямо в реплике чтения, даже если их нет в основном инстансе.
Реплики чтения в Amazon RDS для MySQL, MariaDB, PostgreSQL, Oracle и SQL Server предоставляют дополнительный механизм обеспечения доступности в случае развертывания Amazon RDS в нескольких зонах доступности. При сбое основного узла можно назначить реплику чтения самостоятельным инстансом БД, а также создать для реплики чтения собственный резервный инстанс в другой зоне доступности. Эта функциональная возможность представляет собой дополнение к синхронной репликации, автоматическому обнаружению сбоев и обработке отказов при развертывании в нескольких зонах доступности.
При создании реплики чтения в Amazon RDS для MySQL, MariaDB, Oracle, PostgreSQL или SQL Server сервис организует безопасный канал связи между инстансом исходной БД и репликой чтения, применяя шифрование с открытым ключом даже при репликации между регионами. Amazon RDS самостоятельно настраивает всю конфигурацию безопасности AWS, в частности, добавляет в группы безопасности записи, необходимые для обеспечения безопасного канала. Также для инстансов БД Amazon RDS для MySQL, MariaDB, PostgreSQL, Oracle и SQL Server можно создавать реплики чтения с шифрованием при хранении на основе сервиса AWS Key Management Service (KMS).

Настройка

C помощью Консоли управления AWS можно без труда добавить реплики чтения к существующим инстансам БД. Воспользуйтесь параметром Create Read Replica (Создать реплику чтения) для своего инстанса БД в Консоли управления AWS. Amazon RDS для MySQL, MariaDB и PostgreSQL позволяет создать до 15 реплик чтения для каждого инстанса БД. В Amazon RDS для Oracle и SQL Server можно создать до 5 реплик чтения для каждого инстанса БД.

В Amazon RDS для MySQL, MariaDB, PostgreSQL и Oracle доступны два варианта хранилищ БД на базе SSD: универсальные и выделенные IOPS. При использовании этих ядер варианты хранилищ, выбранные для реплик чтения и исходного инстанса БД, могут различаться. Выбор различных типов хранения для реплик чтения в некоторых случаях позволяет оптимизировать производительность или снизить затраты. Подробнее см. в документации по репликам чтения для Amazon RDS для MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, а также Amazon Aurora.

Реплики чтения, развертывание в нескольких зонах доступности и развертывание в нескольких регионах

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

Развертывание в нескольких зонах доступности

Развертывание в нескольких регионах

Реплики чтения

Основная задача – обеспечение высокой доступности

Основная задача – аварийное восстановление и обеспечение высокой производительности локально

Основная задача – масштабирование

За пределами сервиса Aurora – синхронная репликация; в пределах сервиса Aurora – синхронная репликация

Асинхронная репликация

Асинхронная репликация

За пределами сервиса Aurora – активен только основной инстанс. В пределах сервиса Aurora – активны все инстансы

Все регионы доступны и могут использоваться для операций чтения

Все реплики чтения доступны и могут использоваться для масштабирования операций чтения

За пределами сервиса Aurora – резервные копии снимаются автоматически с резервного инстанса. В пределах сервиса Aurora – резервные копии снимаются автоматически с общего уровня хранения

Резервные копии могут сниматься автоматически с каждого региона

По умолчанию резервное копирование не настроено

Всегда охватывает по крайней мере две зоны доступности в одном регионе

Для каждого региона можно выполнять развертывание в нескольких зонах доступности

Могут находиться внутри одной зоны доступности, в разных зонах доступности и в разных регионах

За пределами сервиса Aurora – обновление версий ядра базы данных осуществляется на основном инстансе. В пределах сервиса Aurora – все инстансы обновляются вместе

За пределами сервиса Aurora – обновление версий ядра базы данных осуществляется независимо в каждом регионе. В пределах сервиса Aurora – все инстансы обновляются вместе

За пределами сервиса Aurora – обновление версий ядра базы данных не зависит от исходного инстанса. В пределах сервиса Aurora – все инстансы обновляются вместе

Автоматическая обработка отказов с переключением на резервную реплику (за пределами сервиса Aurora) или реплику чтения (в пределах сервиса Aurora) при обнаружении проблем

Aurora позволяет назначить второстепенный регион в качестве основного

Можно повысить вручную до отдельного инстанса базы данных (за пределами сервиса Aurora) или до основного инстанса (в пределах сервиса Aurora)

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

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