Реплики чтения в Amazon RDS повышают производительность и надежность инстансов баз данных (БД). Такая возможность репликации обеспечивает простое эластичное масштабирование с возможностью превышения ограничений ресурсов одного инстанса БД для выполнения рабочих нагрузок с большим количеством операций чтения. Для заданного исходного инстанса БД можно создать одну или более реплик для обслуживания трафика приложений с большим количеством операций чтения из различных копий данных, что позволит увеличить общую пропускную способность таких операций. Реплики чтения также могут быть назначены самостоятельными инстансами БД.
Реплики чтения в Amazon RDS доступны для MySQL, MariaDB и PostgreSQL.При создании реплики в качестве источника указывается существующий инстанс БД. Amazon RDS делает снимок состояния исходного инстанса и создает на его основе инстанс, доступный только для чтения. Для MySQL, MariaDB и PostgreSQL сервис Amazon RDS использует встроенные средства асинхронной репликации этих ядер БД, чтобы обновлять реплику чтения при любом изменении исходного инстанса БД. Реплика чтения работает как инстанс БД, разрешающий подключения только для чтения; приложения могут подключаться к реплике чтения, как к любому другому инстансу БД. Amazon RDS реплицирует все базы данных в исходном инстансе БД.
Amazon Aurora использует виртуализированный уровень хранилища на основе SSD, специально созданный для рабочих нагрузок БД. Реплики Amazon Aurora используют то же базовое хранилище, что и исходный инстанс, что позволяет сократить расходы и избавляет от необходимости копировать данные на узлы-реплики. Подробнее о репликации для Amazon Aurora см. в онлайн-документации.
Начните работать с AWS бесплатно
Создать бесплатный аккаунтУровень бесплатного пользования AWS с сервисом Amazon Relational Database Service (RDS) включает 750 часов работы инстанса БД Micro в месяц на один год, хранилище данных объемом 20 ГБ и 20 ГБ пространства для резервных копий.
Нагрузку на исходный инстанс БД можно снизить за счет маршрутизации запросов приложений на чтение к реплике чтения. Реплики чтения позволяют превышать емкость одного инстанса базы данных для выполнения рабочих нагрузок с большим количеством операций чтения.
Чтобы дополнительно повысить производительность, Amazon RDS для MySQL позволяет добавлять индексы в таблицы прямо в реплике чтения, даже если их нет в ведущем инстансе.
Поскольку реплике чтения можно назначить статус ведущего инстанса, эта возможность полезна и при внедрении сегментирования. Чтобы сегментировать базу данных, добавьте реплику чтения, сделайте ее ведущей, а затем на каждом из получившихся в результате инстансов БД удалите данные, которые должны находиться в другом сегменте.
Поскольку Amazon RDS для MySQL также позволяет выполнять на репликах чтения операции на уровне таблиц, например добавление индексов или новых столбцов, механизм повышения статуса реплики можно использовать для сужения области воздействия таких операций. Нужно просто настроить DDL на обращение к реплике чтения, сделать эту реплику ведущей, а затем перенаправить весь трафик базы данных на новый ведущий инстанс.
Реплики чтения в Amazon RDS для MySQL, MariaDB и PostgreSQL предоставляют дополнительный механизм обеспечения доступности в случае развертывания Amazon RDS в нескольких зонах доступности. При сбое основного узла можно назначить реплику чтения самостоятельным инстансом БД. В рамках реализации стратегии аварийного восстановления можно также выполнить репликацию инстансов БД в нескольких регионах AWS. Эта функциональная возможность представляет собой дополнение к синхронной репликации, автоматическому обнаружению сбоев и обработке отказов при развертывании в нескольких зонах доступности.
При создании реплики чтения в Amazon RDS для MySQL, MariaDB или PostgreSQL сервис организует безопасный канал связи между инстансом исходной БД и репликой чтения, применяя шифрование с открытым ключом даже при репликации между регионами. Amazon RDS самостоятельно настраивает всю инфраструктуру безопасности AWS, в частности, добавляет в группы безопасности записи, необходимые для обеспечения безопасного канала.
Можно дополнительно создавать реплики чтения для инстансов БД Amazon RDS для MySQL, MariaDB и PostgreSQL в том же регионе или в других регионах и шифровать их при хранении с использованием сервиса AWS Key Management Service (KMS).
Реплики чтения оплачиваются по тем же ставкам, что стандартные инстансы БД; к ним применимо такое же стандартное резервирование инстансов БД (зарезервированные инстансы RDS), как для инстансов БД того же класса в том же регионе. Подробные сведения см. на странице цен Amazon RDS.
C помощью Консоли управления AWS можно без труда добавить реплики чтения к существующим инстансам БД. Воспользуйтесь настройкой «Create Read Replica» для своего инстанса БД в Консоли управления AWS. Amazon RDS для MySQL, MariaDB и PostgreSQL позволяет создать до 5 реплик чтения для каждого инстанса БД.
Amazon RDS для MySQL, MariaDB и PostgreSQL предлагает три варианта хранилищ БД: универсальные тома (SSD), тома Provisioned IOPS (SSD) и магнитные тома. При использовании этих ядер варианты хранилищ, выбранные для реплик чтения и исходного инстанса БД, могут различаться. Выбор различных типов хранения для реплик чтения иногда позволяет оптимизировать производительность или снизить затраты.
Amazon RDS позволяет использовать реплики чтения совместно с развертыванием в нескольких зонах доступности. При развертывании в нескольких зонах доступности для MySQL, MariaDB, Oracle, SQL Server и PostgreSQL данные главного инстанса БД синхронно реплицируются в резервный инстанс, находящийся в другой зоне доступности. Благодаря синхронной репликации развертывание в нескольких зонах доступности для этих ядер обеспечивает более высокую надежность по сравнению с репликами чтения. (При любом развертывании Amazon RDS для Aurora данные автоматически реплицируются в трех зонах доступности.)
Развертывание в нескольких зонах доступности и реплики чтения можно использовать совместно для получения преимуществ обоих способов репликации. Можно просто указать, что данное развертывание в нескольких зонах доступности является исходным инстансом БД для реплик чтения. Это позволяет одновременно получить как преимущества надежности хранения и доступности данных при развертывании в нескольких зонах доступности, так и преимущества масштабирования за счет реплик чтения.
Обратите внимание, что при развертывании в нескольких зонах доступности можно создавать реплику чтения в зоне доступности, отличной от зоны доступности первичного и резервного инстанса, что еще больше повышает избыточность. Зону доступности резервного инстанса можно определить по полю инстанса БД «Secondary Zone» в Консоли управления AWS.