Настройка DR-сайта (Hot/Warm/Cold Standby)

Простой информационной системы может стоить бизнесу серьезных убытков — каждый час простоя бьет по репутации и прибыли. Мы проектируем и настраиваем DR-сайт (Hot, Warm или Cold Standby) под ключ, помогая выбрать оптимальную модель резервирования. Наша команда экспертов берет на себя весь цикл — от аудита до внедрения и последующей поддержки, чтобы обеспечить надежное восстановление работы без срыва сроков.
Часто задаваемые вопросы

Настройка DR-сайта (Hot/Warm/Cold Standby)

Компания теряет десятки тысяч долларов за час простоя — это триггер для внедрения DR. Мы проектируем резервные площадки с нуля: от выбора модели до учений. Наши инженеры имеют сертификации AWS и опыт восстановления после сбоев у клиентов из fintech и e-commerce. Выбор между Hot, Warm и Cold Standby — это не технический, а финансовый вопрос с техническими ограничениями. Чем быстрее нужно восстановиться, тем дороже обходится резервная площадка. Задача инженера — предложить бизнесу реальные варианты с конкретными цифрами по RTO и стоимости, а не просто спроектировать «правильное» по учебнику решение.

Как выбрать модель резервирования?

Определяющие факторы — допустимое время простоя (RTO) и потери данных (RPO). Согласно Wikipedia, RTO и RPO — ключевые метрики DR. Чем меньше RTO, тем дороже инфраструктура. Мы помогаем найти баланс: оцениваем критичность сервисов, стоимость downtime и бюджет.

Hot Standby: зеркало в реальном времени

Hot Standby — полноценная копия продакшн-инфраструктуры, работающая в режиме реального времени. Переключение занимает секунды или единицы минут. RPO стремится к нулю при синхронной репликации.

Архитектура для облака: активный/пассивный кластер в двух регионах с синхронной репликацией БД и AWS Global Accelerator или Cloudflare для DNS-failover.

# hot-standby/rds.tf
resource "aws_db_instance" "primary" {
  identifier = "prod-primary"
  engine = "postgres"
  engine_version = "15.4"
  multi_az = true # внутри одного региона
  deletion_protection = true
  backup_retention_period = 7
  tags = {
    Role = "primary"
  }
}

resource "aws_db_instance" "dr_replica" {
  identifier = "prod-dr-replica" # Read replica в DR-регионе — при failover promote до master
  replicate_source_db = aws_db_instance.primary.arn
  availability_zone = "eu-west-1a" # При promote эта реплика станет новым мастером
  auto_minor_version_upgrade = false
  tags = {
    Role = "dr-hot-standby"
  }
}

Цена Hot Standby — примерно удвоение стоимости инфраструктуры. Для большинства стартапов это избыточно. Оправдано для fintech, healthcare, e-commerce с потерей более $10K/час при downtime.

Warm Standby: баланс стоимости и RTO

Warm Standby — DR-инфраструктура существует, но работает в сокращённом объёме. База данных реплицируется, но с небольшим лагом. Серверы приложений выключены или работают в режиме минимальной мощности. При активации DR нужно запустить инстанции, применить pending изменения конфигурации, переключить DNS.

RTO: от 15 минут до 2 часов в зависимости от сложности. RPO: от нескольких минут до 1 часа.

# ansible/dr-warmup.yml — процедура прогрева DR-сайта
---
- name: Warm up DR site
  hosts: dr_site
  become: yes
  tasks:
    - name: Start application servers
      systemd:
        name: "{{ item }}"
        state: started
      loop:
        - app-server
        - worker
        - nginx
    - name: Promote PostgreSQL replica
      command: |
        su - postgres -c "pg_ctl promote -D /var/lib/postgresql/data"
      when: promote_db | bool
    - name: Update DNS to DR endpoint
      community.aws.route53:
        state: present
        zone: company.com
        record: app.company.com
        type: A
        ttl: 60
        value: "{{ dr_lb_ip }}"
        overwrite: yes
    - name: Run health checks
      uri:
        url: "https://app-dr.company.com/health"
        status_code: 200
        retries: 10
        delay: 30

Warm Standby обычно стоит 20–40% от стоимости продакшн-инфраструктуры. Это наиболее распространённый выбор для компаний с SLA 99.9%.

Cold Standby: минимальные затраты, максимальный RTO

Cold Standby — DR-инфраструктуры в полном смысле не существует. Есть бэкапы, документация по разворачиванию нового окружения и Terraform-конфигурация. При активации DR инфраструктура создаётся с нуля, данные восстанавливаются из бэкапов.

RTO: от 4 до 24 часов. RPO: соответствует частоте бэкапов, обычно 1–24 часа.

#!/bin/bash
# dr-coldstart.sh — скрипт холодного старта DR
set -euo pipefail
echo "=== DR Cold Start initiated at $(date) ==="

# Шаг 1: Поднять инфраструктуру через Terraform
cd /opt/terraform/dr-site
terraform init -backend-config="bucket=company-tf-state-dr"
terraform apply -auto-approve -var="environment=dr"

# Шаг 2: Восстановить данные из последнего бэкапа
LATEST_BACKUP=$(aws s3 ls s3://company-backups/db/ \
  --recursive | sort | tail -1 | awk '{print $4}')
aws s3 cp "s3://company-backups/$LATEST_BACKUP" /tmp/db-restore.dump

# Шаг 3: Восстановить БД
pg_restore \
  --host="${DR_DB_HOST}" \
  --username=postgres \
  --dbname=production \
  --jobs=8 \
  /tmp/db-restore.dump

# Шаг 4: Переключить DNS
./scripts/switch-dns-to-dr.sh

echo "=== DR Cold Start completed at $(date) ==="

Cold Standby подходит для некритичных сервисов или компаний с очень ограниченным бюджетом на DR. Важно проверять, что Terraform-конфиги актуальны и terraform apply действительно работает — иначе в момент катастрофы окажется, что state разъехался с реальностью полгода назад.

Что входит в проектирование DR-сайта?

Мы предоставляем:

  • Аудит текущей инфраструктуры и выявление критических сервисов.
  • Расчёт RTO/RPO и выбор модели Standby.
  • Архитектуру DR-сайта с блок-схемами.
  • Реализацию через Terraform и Ansible (код в вашем репозитории).
  • Настройку репликации данных (БД, файлы, конфиги).
  • Документацию процедур активации и ролей команды.
  • Проведение первого учения с отчётом.
  • Поддержка после внедрения: консультации и доработки.

Всё это — под ключ: от идеи до работающего DR, готового к тестированию.

Выбор модели: чек-лист

Критерий Cold Warm Hot
RTO 4–24 ч 15 мин – 2 ч < 5 мин
RPO 1–24 ч 5 мин – 1 ч < 1 мин
Стоимость ~5% от prod ~30% от prod ~100% от prod
Сложность настройки Низкая Средняя Высокая
Требует учений Обязательно Обязательно Желательно

Почему тестирование критично?

Без учений DR-сайт — это теоретическая конструкция. Первое тестирование мы проводим в течение месяца после ввода. Во время учения проверяем: запуск инфраструктуры, восстановление данных, переключение DNS, время отклика. Ошибки фиксируем и устраняем. Наш опыт показывает: даже при идеальной документации первый запуск выявляет 5–10 неучтённых проблем.

Процесс проектирования и реализации

Начинаем с фиксации RPO/RTO требований вместе с бизнесом. Затем — аудит текущей инфраструктуры: инвентаризация критических сервисов, анализ зависимостей, оценка объёма данных для репликации.

На основе требований и бюджета выбираем модель Standby. Проектируем архитектуру DR-сайта, описываем в Terraform. Реализуем репликацию данных. Документируем процедуры активации. Проводим первое тестирование.

Без тестирования DR-сайт — это теоретическая конструкция. Первое учение нужно провести в течение месяца после ввода в эксплуатацию.

Ориентиры по срокам

Тип Standby Масштаб Срок
Cold До 20 сервисов 2–4 недели
Warm До 30 сервисов 4–8 недель
Hot Любой масштаб 2–3 месяца

Стоимость рассчитывается индивидуально после аудита инфраструктуры.

Оценим ваш проект — напишите нам. Гарантируем работоспособность DR при условии ежегодных учений. За 5+ лет мы реализовали более 50 проектов по восстановлению после сбоев.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142