Назови четыре стратегии Disaster Recovery.
Четыре стратегии DR в порядке увеличения стоимости и снижения RTO: Backup & Restore, Pilot Light, Warm Standby, Multi-Site Active/Active.
Четыре стратегии Disaster Recovery в AWS
AWS выделяет четыре канонических подхода к DR, расположенных вдоль оси «стоимость vs. скорость восстановления». Чем правее — тем меньше RTO/RPO и тем дороже содержание резервной площадки.
1. Backup & Restore
Самый дешёвый вариант. Данные периодически копируются в S3 / AWS Backup. При аварии разворачивается инфраструктура с нуля из бэкапа.
- RTO: часы (запуск EC2, восстановление RDS snapshot).
- RPO: равен интервалу бэкапа (часы–сутки).
- Стоимость: S3 storage + AWS Backup; резервные инстансы не работают постоянно.
2. Pilot Light
В резервном регионе работает только «огонёк» — минимальный набор сервисов: реплика БД и базовые IAM-роли. Вычислительные ресурсы выключены или отсутствуют.
- RTO: 10–60 минут (нужно запустить EC2/ECS и переключить DNS).
- RPO: минуты (асинхронная репликация БД).
- Типичный сценарий: Aurora Global Database как реплика; при failover — promote secondary.
3. Warm Standby
Резервная среда работает в уменьшенном масштабе (минимальный ASG, меньший инстанс RDS). Трафик не принимает, но готова принять его за минуты.
- RTO: 1–10 минут (scale-out ASG + Route 53 failover).
- RPO: секунды–минуты.
- Стоимость: ~20–30% от production-среды постоянно.
4. Multi-Site Active/Active
Оба региона полностью активны и принимают трафик. Route 53 Latency/Weighted routing распределяет нагрузку. При падении одного — 100% трафика уходит в другой без ручного вмешательства.
- RTO: секунды (только DNS propagation или Global Accelerator).
- RPO: ~0 (синхронная или sub-second репликация, например Aurora Global Database с RPO < 1 с).
- Стоимость: полный дубль инфраструктуры.
Сравнительная таблица в виде списка
- Backup & Restore — RTO часы, RPO часы, стоимость $.
- Pilot Light — RTO десятки минут, RPO минуты, стоимость $$.
- Warm Standby — RTO минуты, RPO секунды, стоимость $$$.
- Active/Active — RTO секунды, RPO ~0, стоимость $$$$.
Пример: Pilot Light failover script
import boto3
def promote_aurora_global(global_cluster_id: str, secondary_cluster_arn: str):
"""Переключает Aurora Global Database на secondary регион."""
client = boto3.client("rds", region_name="eu-west-1")
# Отсоединить secondary от global cluster (promote)
client.remove_from_global_cluster(
GlobalClusterIdentifier=global_cluster_id,
DbClusterIdentifier=secondary_cluster_arn,
)
print(f"Promoted {secondary_cluster_arn} to standalone writer")
# Обновить Route 53 — переключить A-запись
r53 = boto3.client("route53")
r53.change_resource_record_sets(
HostedZoneId="Z1234567890ABC",
ChangeBatch={
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "db.example.com",
"Type": "CNAME",
"TTL": 60,
"ResourceRecords": [{"Value": "new-cluster.cluster-xyz.eu-west-1.rds.amazonaws.com"}],
},
}]
},
)
print("Route 53 updated")
Подводные камни
- Не тестируют DR: реальный RTO обнаруживается только во время инцидента; проводите planed failover раз в квартал.
- Pilot Light без прогрева данных: RDS snapshot restore занимает значительно больше, чем «запуск инстанса»; закладывайте это в RTO.
- Конфликты записи в Active/Active: два региона одновременно пишут — нужна стратегия разрешения конфликтов (last-writer-wins или DynamoDB global tables с версионностью).
- Забытые зависимости: DR охватывает только БД, а внешние API, очереди SQS, Secrets Manager secrets в другом регионе отсутствуют.
- DNS TTL слишком высокий: при Route 53 failover клиенты кешируют старый IP; устанавливайте TTL ≤ 60 с для критичных записей.
- Разные версии схемы БД: при Warm Standby promotion выясняется, что миграция не была применена к реплике.
- Стоимость недооценена: Warm Standby с 30%-й нагрузкой постоянно потребляет ресурсы — учитывайте это в CapEx-модели.
Common mistakes
- Называть Multi-AZ deployment полноценной DR strategy для regional disaster.
- Не тестировать restore и failover.
- Выбирать Active/Active без обсуждения data consistency.
What the interviewer is testing
- Называет все четыре стратегии.
- Сравнивает их по RTO/RPO и стоимости.
- Учитывает testing, IaC и runbooks.