Вступ
Уявіть: ваш сайт розташований у Європі, а користувачі з Австралії скаржаться на гальма. Поки DNS-резолвер не поверне IP, минає 200 мс — цей час можна скоротити до 50 мс за допомогою Geo-DNS (географічної маршрутизації). Ми вже багато років налаштовуємо географічну та latency-based маршрутизацію для проектів різного масштабу — від стартапів до enterprise. Наші інженери пройшли сертифікацію Cloudflare та AWS, що гарантує якість впровадження. У цій статті — практичні конфіги Cloudflare, AWS Route53 та Nginx GeoIP, які використовуються в продакшені. Окупність налаштування досягається за 3–6 місяців за рахунок зниження TTFB на 40–60%, а економія на DNS-трафіку та CDN може сягати сотень доларів на місяць. Отримайте консультацію інженера з Geo-DNS — оцінимо ваш проект.
Проблеми, які вирішує Geo-DNS
Без Geo-DNS користувачі відчувають високу затримку — DNS-запит іде на батьківський DNS за тисячі кілометрів, TTFB може перевищувати 500 мс для віддалених регіонів, що знижує конверсію на 20%. Трафік нерівномірно розподіляється на один сервер, створюючи зайве навантаження. При падінні дата-центру в регіоні користувачі залишаються без сервісу через відсутність failover. Geo-DNS вирішує все це на рівні DNS-розв'язання, до встановлення TCP-з'єднання.
Порівняння провайдерів Geo-DNS
| Провайдер | Тип маршрутизації | Складність налаштування | TTL за замовчуванням | Failover | Ціна |
|---|---|---|---|---|---|
| Cloudflare Load Balancing | Geo + Latency | Низька | 30-300 с | Автоматичний, з health checks | Платно (Pro+) |
| AWS Route53 Geolocation | Географічна | Середня | 60 с (можна менше) | Health checks, ручне налаштування | Платно за запити |
| AWS Route53 Latency | За затримкою | Середня | 60 с | Автоматичний | Платно за запити |
| Nginx + GeoIP2 | Географічна | Висока | N/A (на рівні застосунку) | Залежить від upstream | Безкоштовно (крім бази) |
Cloudflare Load Balancing налаштовується в 2 рази швидше, ніж самостійна конфігурація Nginx, а TTFB знижується на 50%.
Як обрати між Cloudflare та AWS Route53?
Cloudflare Load Balancing простіший у налаштуванні та має вбудований моніторинг. Підходить для швидкого старту і невеликих проектів. AWS Route53 дає більше гнучкості з latency-based routing, дозволяючи маршрутизувати за реальною затримкою, а не за географією. Це особливо корисно при неоднорідній мережевій інфраструктурі. Якщо потрібен повний контроль — обирайте Nginx з GeoIP2, але знадобиться ручне оновлення бази MaxMind.
Налаштування Cloudflare Load Balancing (Geo-steering)
Cloudflare пропонує geo-steering з коробки. Ви вказуєте пули для регіонів (наприклад, ENAM — східне узбережжя США, WEU — Західна Європа), і балансувальник автоматично направляє трафік. Приклад конфігурації через API:
curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone_id}/load_balancers" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
--data '{
"name": "api.mysite.com",
"fallback_pool": "us-east-1-pool",
"default_pools": ["us-east-1-pool"],
"region_pools": {
"ENAM": ["us-east-1-pool"],
"WNAM": ["us-west-2-pool"],
"EEU": ["eu-central-1-pool"],
"WEU": ["eu-west-1-pool"],
"SEAS": ["ap-southeast-1-pool"],
"NEAS": ["ap-northeast-1-pool"]
},
"steering_policy": "geo",
"session_affinity": "ip_cookie",
"session_affinity_ttl": 300
}'
Документація Cloudflare рекомендує використовувати session affinity для збереження сесій користувача.
Налаштування AWS Route53
Geolocation Routing
Для точної маршрутизації за країнами або континентами використовуйте геолокаційні записи. Приклад Terraform:
resource "aws_route53_record" "api_eu" {
zone_id = var.zone_id
name = "api.mysite.com"
type = "A"
set_identifier = "eu-users"
geolocation_routing_policy {
continent = "EU"
}
alias {
name = aws_lb.eu_west_1.dns_name
zone_id = aws_lb.eu_west_1.zone_id
evaluate_target_health = true
}
}
resource "aws_route53_record" "api_default" {
zone_id = var.zone_id
name = "api.mysite.com"
type = "A"
set_identifier = "default"
geolocation_routing_policy {
country = "*"
}
alias {
name = aws_lb.us_east_1.dns_name
zone_id = aws_lb.us_east_1.zone_id
evaluate_target_health = true
}
}
Чому latency-based routing краще?
Latency-based routing враховує не географічну відстань, а мережеві затримки — трафік з Європи може швидше йти в дата-центр у Вірджинії, ніж у Франкфурті, якщо магістралі перевантажені. AWS автоматично обирає найшвидший регіон. Цей підхід дає більш точне розподілення, особливо для мобільних користувачів.
Приклад конфігурації:
resource "aws_route53_record" "api_latency_eu" {
zone_id = var.zone_id
name = "api.mysite.com"
type = "A"
set_identifier = "eu-west-1"
latency_routing_policy {
region = "eu-west-1"
}
alias {
name = aws_lb.eu.dns_name
zone_id = aws_lb.eu.zone_id
evaluate_target_health = true
}
}
Налаштування Nginx з GeoIP2
Якщо ви хочете повний контроль над маршрутизацією, використовуйте Nginx з модулем geoip2 та базою MaxMind GeoLite2. Це безкоштовно і гнучко.
Конфігурація Nginx
Встановіть модуль та завантажте базу (оновлюється раз на місяць). Потім налаштуйте маппінг країн на бекенди:
load_module modules/ngx_http_geoip2_module.so;
http {
geoip2 /etc/nginx/geoip/GeoLite2-Country.mmdb {
$geoip2_country_code country iso_code;
$geoip2_country_name country names en;
}
map $geoip2_country_code $backend {
default http://us-backend:3000;
RU http://ru-backend:3000;
UA http://eu-backend:3000;
"~^(DE|AT|CH)" http://eu-backend:3000;
"~^(GB|IE|FR)" http://eu-backend:3000;
}
server {
listen 80;
location / {
proxy_pass $backend;
proxy_set_header X-Country-Code $geoip2_country_code;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
Також можна реалізувати автоматичний редирект на мовну версію по GeoIP.
TTL та кешування DNS
| Рекомендований TTL | Сценарій |
|---|---|
| 30 с | Критичні сервіси, миттєвий failover |
| 300 с (5 хв) | Універсальне значення |
| 3600 с (1 год) | Статичні ресурси |
Cloudflare Load Balancing автоматично знижує TTL при health check failover.
Як Geo-DNS впливає на TTFB та Core Web Vitals?
Початкова затримка DNS безпосередньо впливає на TTFB, який є метрикою Core Web Vitals. Geo-DNS скорочує TTFB на 40-60%, покращуючи LCP та загальний користувацький досвід. Google враховує TTFB при ранжуванні, тому впровадження Geo-DNS може побічно підвищити позиції в пошуковій видачі. Особливо це важливо для сайтів з глобальною аудиторією — скорочення TTFB на 100 мс може збільшити конверсію на 5%.
Процес робіт з налаштування Geo-DNS
Ми підходимо системно:
- Аудит поточної DNS-зони, аналіз географії користувачів (з логів Nginx або CDN).
- Проектування — вибір провайдера, схеми пулів, TTL.
- Реалізація — конфігурація DNS через Terraform або Cloudflare API, налаштування health checks.
- Тестування — перевірка з різних точок (через VPN, AWS Lightsail у різних регіонах, dig з публічних DNS).
- Моніторинг — налаштування сповіщень при зміні затримки або збоях.
Що входить у результат
- Працююча схема Geo-DNS з документацією.
- Доступи до всіх провайдерів (Cloudflare, AWS, панель керування).
- Навчання команди: як додавати нові регіони, змінювати TTL.
- Підтримка протягом 14 днів після впровадження.
Наші інженери мають сертифікати Cloudflare та AWS, за плечима 50+ проектів з оптимізації доставки контенту. Окупність налаштування — 3–6 місяців за рахунок зниження TTFB на 40–60% та зменшення трафіку на CDN.
Як перевірити Geo-DNS
Використовуйте dig із зазначенням резолвера:
dig @8.8.8.8 api.mysite.com # США
dig @1.1.1.1 api.mysite.com # Європа
dig @77.88.8.8 api.mysite.com # Росія
Якщо маршрутизація налаштована правильно, відповіді будуть відрізнятися IP-адресами.
Отримайте консультацію з Geo-DNS — наші інженери допоможуть обрати оптимальну схему маршрутизації. Замовте аудит поточної DNS-схеми та дізнайтеся, скільки можна заощадити.







