Географічна маршрутизація DNS (Geo-DNS): Cloudflare, AWS, Nginx

Вступ

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Географічна маршрутизація DNS (Geo-DNS): Cloudflare, AWS, Nginx
Середній
від 1 дня до 3 днів

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1422
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1288
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1250
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    988
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1001

Вступ

Уявіть: ваш сайт розташований у Європі, а користувачі з Австралії скаржаться на гальма. Поки 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

Ми підходимо системно:

  1. Аудит поточної DNS-зони, аналіз географії користувачів (з логів Nginx або CDN).
  2. Проектування — вибір провайдера, схеми пулів, TTL.
  3. Реалізація — конфігурація DNS через Terraform або Cloudflare API, налаштування health checks.
  4. Тестування — перевірка з різних точок (через VPN, AWS Lightsail у різних регіонах, dig з публічних DNS).
  5. Моніторинг — налаштування сповіщень при зміні затримки або збоях.

Що входить у результат

  • Працююча схема 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-схеми та дізнайтеся, скільки можна заощадити.