← Назад к вопросам
В скольких зонах можно включить репликацию в Amazon RDS
2.0 Middle🔥 181 комментариев
#Базы данных#Облачные технологии
Комментарии (1)
🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Развернутый ответ по зонам доступности и репликации в Amazon RDS
В Amazon RDS репликация между разными зонами доступности (Availability Zones, AZ) — это ключевой механизм обеспечения отказоустойчивости и высокой доступности. Количество зон, в которых можно настроить такую репликацию, напрямую зависит от выбранного варианта развертывания базы данных.
Основные варианты репликации и количество зон
- Много-AZ развертывание (Multi-AZ Deployment) — это основной встроенный механизм высокой доступности для большинства движков RDS (PostgreSQL, MySQL, MariaDB, Oracle, SQL Server).
* **Количество зон:** Ровно **в двух зонах доступности** в пределах одного региона AWS.
* **Как работает:** RDS автоматически создает **синхронную физическую реплику** (standby) в другой AZ. Все операции записи фиксируются на основной и standby-реплике одновременно, прежде чем транзакция будет считаться завершенной. При сбое в основной AZ происходит автоматический failover на standby-реплику без ручного вмешательства.
* **Цель:** Обеспечение **отказоустойчивости на уровне AZ** и автоматического восстановления после сбоев, а не для масштабирования чтения.
- Реплики для чтения (Read Replicas) — это механизм горизонтального масштабирования для операций чтения.
* **Количество зон:** Можно создать **до 15 реплик для чтения** (в зависимости от движка) в рамках **одного региона AWS**. Эти реплики могут находиться **в той же AZ, что и источник, или в любой другой AZ этого региона**. Кроме того, для MySQL и MariaDB поддерживаются **межрегиональные (Cross-Region) реплики для чтения**, что позволяет размещать их в зонах доступности другого региона AWS.
* **Как работает:** Создается **асинхронная логическая реплика** данных с исходного экземпляра. Трафик операций чтения можно перенаправлять на эти реплики, разгружая основной инстанс.
* **Цель:** **Масштабирование производительности чтения** и создание копий данных для аналитики или аварийного восстановления в другом регионе.
Комбинирование подходов
Важно понимать, что эти подходы можно комбинировать для создания более устойчивых архитектур:
- Можно создать экземпляр RDS с Multi-AZ, а затем добавить к нему Read Replicas (которые сами могут быть развернуты в Multi-AZ).
- Для Amazon Aurora (движок, совместимый с MySQL и PostgreSQL) модель отличается. Кластер Aurora состоит из одной первичной инстанс-ноды для записи и до 15 реплик для чтения. Все они используют единое виртуальное кластерное volume storage, реплицированное в 3 AZ региона по умолчанию. Таким образом, отказоустойчивость данных и возможность масштабирования чтения заложены в саму архитектуру.
Практический пример кода (CloudFormation)
Ниже пример фрагмента шаблона CloudFormation, создающего экземпляр RDS для PostgreSQL с включенным Multi-AZ развертыванием (репликация в 2 AZ) и одной репликой для чтения в отдельной AZ.
Resources:
# Основной инстанс RDS PostgreSQL с Multi-AZ
MyDBInstance:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceIdentifier: "primary-db-instance"
Engine: postgres
DBInstanceClass: db.m5.large
AllocatedStorage: 100
MasterUsername: !Ref DBUsername
MasterUserPassword: !Ref DBPassword
MultiAZ: true # Включаем синхронную репликацию в другую AZ
AvailabilityZone: "us-east-1a" # Опционально, можно не указывать, RDS выберет AZ автоматически
BackupRetentionPeriod: 7
DBSubnetGroupName: !Ref MyDBSubnetGroup
# Реплика для чтения на основе созданного выше инстанса
MyDBReadReplica:
Type: AWS::RDS::DBInstance
Properties:
DBInstanceIdentifier: "read-replica-instance"
SourceDBInstanceIdentifier: !Ref MyDBInstance # Указываем источник для репликации
DBInstanceClass: db.m5.large
AvailabilityZone: "us-east-1b" # Размещаем реплику для чтения в конкретной AZ, отличной от основной
PubliclyAccessible: false
Ключевые выводы
- Стандартная синхронная репликация для высокой доступности (Multi-AZ) работает строго в двух зонах доступности.
- Асинхронная репликация для масштабирования чтения (Read Replicas) может охватывать множество зон (до 15) в рамках одного региона, а для некоторых движков — даже зоны в разных регионах.
- Выбор стратегии зависит от целей: отказоустойчивость (Multi-AZ), масштабирование (Read Replicas) или их комбинация.
- Amazon Aurora предлагает собственную, более продвинутую модель репликации данных и вычислений, где данные по умолчанию реплицируются в 3 AZ.