Что такое multi-region и multi-AZ архитектура?

Multi-AZ (мультизональная) архитектура — что это и как работает

Multi-AZ означает развёртывание компонентов приложения в нескольких Availability Zones внутри одного региона. AZ — это физически изолированные дата-центры с независимой подачей питания и сетевой инфраструктурой, но с низкой задержкой между ними. Цель — защититься от отказа одной зоны.

Как это делается на практике:

  • Compute: инстансы/под-копии приложения в нескольких AZ; авто-скейлинг группы распределены по AZ.

  • Балансировка: региональный load balancer распределяет трафик по AZ и делает health checks.

  • Хранение: блочное хранилище часто привязано к AZ → используют репликацию/snapshots или распределённые файловые/объектные системы с multi-AZ репликацией.

  • База данных: варианты — synchronous multi-AZ репликация с автоматическим failover (active-passive) или асинхронные реплики для чтения (active-active для чтения).

  • Состояние: приложения проектируют stateless или выносят состояние в разделяемые сервисы (cache, DB, object storage), доступные из всех AZ.

Плюсы: быстрая автоматическая устойчивость к падению AZ, низкая меж-AZ латентность. Минусы: не защищает от региональных катастроф; небольшое увеличение стоимости за резервирование.

Multi-region архитектура — что это и как работает

Multi-region — развёртывание в нескольких географически разнесённых регионах. Используется для защиты от региональных outage, уменьшения сетевой задержки для глобальных пользователей и для соответствия требованиям локального хранения данных.

Ключевые паттерны:

  • Active-Passive (primary в одном регионе, standby в другом): асинхронная репликация, переключение через DNS/GSLB или manual failover. Низкие требования к согласованности, но RPO > 0.

  • Active-Active: оба региона обрабатывают трафик; нужна глобальная маршрутизация и механизм разрешения конфликтов/консистентности (multi-master DB или application-level merging). Подходит, если приложение спроектировано на eventual consistency.

  • Read-replica pattern: первичный регион для записей, удалённые регионы обслуживают чтения (меньше записи → локальная скорость чтения).

Компоненты: глобальный DNS/traffic manager с health checks, CDN для статики, кэширование на месте, cross-region репликация БД/объектов, синхронизация секретов и конфигурации.

Особенности и трейн-оффы:

  • Латентность и стоимость: межрегиональная репликация дороже и медленнее; egress-трафик между регионами стоит денег.

  • Согласованность: чаще используется асинхронная репликация → возможна потеря последних транзакций (RPO). Для сильной консистентности нужны распределённые БД с высокой стоимостью/сложностью.

  • Операционная сложность: тестирование failover, синхронизация конфигураций, сложные runbooks.

Когда что выбирать

  • Multi-AZ — базовый минимум для HA внутри региона; обязательна для production-кластера.

  • Multi-region — когда нужно защититься от регионального катастрофа, обеспечить низкую задержку глобальным пользователям или удовлетворить требования соответствия/локализации данных.

Практические рекомендации и лучшие практики

  • Делайте приложения stateless; сессии — в распределённом store (Redis с репликацией/пersistence).

  • Для RDB: рассматривайте read-replicas в других регионах и регулярные тесты failover; для критичных данных — multi-master или специализированные глобальные БД.

  • Используйте глобальный load balancing / DNS с health checks и low TTL для быстрого переключения; учитывайте DNS-caching при планировании RTO.

  • Кеширование у границы (CDN) и локальные кэши в каждом регионе для снижения межрегионального трафика.

  • Автоматизируйте репликацию конфигураций и секретов; применяйте IaC и CI/CD для синхронного развёртывания.

  • Тестируйте DR: симулируйте падение AZ и целого региона; прогоняйте recovery drills и измеряйте RTO/RPO.

  • Планируйте бюджет: multi-region увеличивает расходы (дублирование ресурсов, egress).

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

  • Документируйте runbooks для автоматического и ручного failover.

  • Мониторьте latency, replication lag, error rates и строите алерты по деградации.

  • Управляйте данными о соответствии (data residency) и шифрованием при репликации.

Задачи проектирования multi-AZ vs multi-region сводятся к балансировке требований к доступности, латентности, консистентности, стоимости и операционной сложности.