Налаштування Multi-Region Failover для глобального веб-додатку
Ми допомагаємо захистити ваш глобальний веб-додаток від катастроф цілого регіону: відключення дата-центру AWS us-east-1, аварії на підводному кабелі, блокування IP-адрес у конкретній країні. Це наступний рівень після одиночного server failover — наш досвід показує, що таке рішення складніше і дорожче, але критично необхідне для додатків з користувачами по всьому світу або жорсткими вимогами до доступності. Ми реалізуємо як active-passive, так і active-active схеми, підбираючи оптимальний баланс вартості та часу відновлення. За 5+ років ми виконали понад 20 проєктів з георозподіленою відмовостійкістю, гарантуючи кожному клієнту SLA 99.99%+.
Як вибрати стратегію розгортання?
Вибір між Active-Passive та Active-Active залежить від допустимого часу простою та бюджету. Active-Passive дешевший (резервний регіон може працювати на зменшеній потужності) і простіший в управлінні, але при збої перемикання займає 1–5 хвилин, а користувачі в резервному регіоні отримують підвищену латентність. Active-Active забезпечує майже миттєве перемикання та кращу латентність глобально, але вимагає складної синхронізації даних та вирішення конфліктів записів у розподіленій БД. Для більшості проєктів з аудиторією до 100k RPS достатньо active-passive з hot standby.
| Параметр | Active-Passive | Active-Active |
|---|---|---|
| Час перемикання (RTO) | 1–5 хв | <1 хв для незачеплених регіонів |
| Складність управління | Низька | Висока |
| Вартість інфраструктури | +40–60% | +80–120% |
| Латентність для віддалених користувачів | Підвищена | Мінімальна |
| Синхронізація даних | Одностороння реплікація | Двостороння, вирішення конфліктів |
Як працює DNS-маршрутизація з геолокацією?
AWS Route 53 Latency-Based Routing + Health Checks:
Route 53 → Latency policy us-east-1: ALB endpoint + Health check eu-west-1: ALB endpoint + Health check ap-southeast-1: ALB endpoint + Health check При падінні health check регіону → трафік автоматично на решту регіонів Cloudflare Load Balancing з Traffic Steering: Geo Steering або Dynamic Steering (на основі реального RTT). Виявлення збою за 10–60 секунд, перемикання — секунди. Ми допомагаємо налаштувати оптимальні health check інтервали та TTL, щоб збалансувати швидкість виявлення з навантаженням на DNS. Використовуємо AWS Route 53 Routing Policies для детермінованої поведінки.
Чому реплікація даних — головна проблема?
Користувач записав дані в us-east-1, при failover потрапив в eu-west-1 — даних немає. Це основна складність multi-region. Рішення:
- Для PostgreSQL: AWS Aurora Global Database — реплікація з лагом <1 секунди, промоція резервного регіону за ~1 хвилину. Або CockroachDB / Spanner як нативно geo-distributed БД.
- Для stateless-даних: S3 Cross-Region Replication — файли реплікуються автоматично. CloudFront з кількома origin.
- Для сесій: Redis з реплікацією між регіонами (AWS ElastiCache Global Datastore) або JWT-токени (stateless за своєю природою).
- Для черг: AWS SQS не реплікується між регіонами автоматично — потрібен дизайн з урахуванням регіональної ізоляції або використання Kafka з MirrorMaker 2.
Як тестувати failover без реального збою?
Застосовуємо підхід chaos engineering на регіональному рівні:
- Блокування трафіку на рівні ALB — цільова група отримує 0 здорових інстансів.
- AWS Fault Injection Simulator — симуляція затримок та збоїв компонентів регіону.
- Route 53 Health Check → forced failure — перевести health check в unhealthy вручну через API.
Фіксуємо: час виявлення збою (має бути <60 с), час перемикання DNS (TTL-залежно, зазвичай 60–120 с), поведінка активних користувачів (скинулися чи сесії, чи загубилися дані in-flight).
Що входить у налаштування multi-region failover?
- Документація архітектури з діаграмою потоків.
- Налаштування DNS (Route 53 або Cloudflare) з георозподіленою маршрутизацією.
- Конфігурація реплікації БД (Aurora Global Database, CockroachDB, Redis).
- Написання runbook failover з покроковими інструкціями.
- Тестування через симуляцію збоїв.
- Моніторинг та алертинг (CloudWatch, Grafana).
- Навчання команди замовника проведенню навчань.
Управління конфігурацією
Кожен регіон має бути ідентично налаштований. Infrastructure as Code — обов'язково:
- Terraform з workspace per region або separate state files.
- Одні й ті ж Docker-образи (ECR replication або private registry per region).
- Secrets Manager replication (AWS Secrets Manager multi-region).
Конфігураційний дрейф між регіонами — основна причина того, що failover працює на тестах, але ламається в продакшені. Ми гарантуємо ідентичність середовищ через CI/CD пайплайни.
Вартість та компроміси
Active-passive: +40–60% до вартості інфраструктури одного регіону. Active-active: +80–120% (повна копія кожного регіону + cross-region трафік). При правильному проектуванні економія на хмарних ресурсах може сягати 40% за рахунок використання spot-інстансів у резервному регіоні. Зниження TCO порівняно з одиночним дата-центром — до 20% за рахунок уникнення простоїв.
| Етап | Термін |
|---|---|
| Active-passive (2 регіони, DNS failover) | 1–2 тижні |
| Aurora Global Database + додаток | 2–3 тижні |
| Active-active з синхронізацією даних | 4–8 тижнів |
| Повне тестування + runbook + моніторинг | +1 тиждень |
Терміни вказано орієнтовно, кожен проєкт оцінюємо індивідуально. Зв'яжіться з нами для швидкої оцінки вашого проєкту. Отримайте консультацію з вибору стратегії failover — це безкоштовно та займе не більше години.







