Привет, Хабр!
Я полгода в одиночку пилю VantageDNS, privacy-focused recursive DNS с фильтрацией. Аналог NextDNS, юрисдикция EU. Ниже честный построчный разбор того, во что мне на самом деле обходится сеть из 8 нод по миру и контрол-плейн. Не маркетинговое «около ста евро», а реальная цифра, которая каждый месяц списывается с карты: €46.27.
В конце таблица расходов и прикидка, сколько платных юзеров надо, чтобы это перестало быть хобби.
Зачем вообще делать DNS
Сначала пара слов про рынок, чтобы понятно было, зачем вписываться в нишу, где уже сидят Cloudflare, Quad9 и пара крупных нишевых игроков.
NextDNS, по слухам и косвенным признакам, делает что-то порядка $90M ARR. AdGuard публично рассказывает про десятки миллионов устройств. Control D растёт. Ниша рабочая, и она не про «изобрести DoH», а про продукт: дашборд, фильтрлисты, родительский контроль, отчёты. DNS как протокол скучный, скучный продукт вокруг внезапно нет.
Я не пытаюсь стать NextDNS. У них 50+ PoPs, команда, маркетинговый бюджет и пять лет форы. Я делаю узкую штуку: EU-only юрисдикция (Финляндия), прозрачный прайс, XMR-биллинг для параноиков, и человеческую поддержку, потому что я её сам и закрываю по ночам. Это нишевый продукт для людей, которым важен пункт «данные не уезжают в США», а не пункт «P50 в Сан-Паулу 8 мс».
И вот тут начинается экономика.
Архитектура из 8 нод — почему 8, а не 50
Первая реакция на «делаю DNS-сервис» обычно: «тебе нужен anycast и сорок локаций, иначе latency пострадает». Это правда для Cloudflare и для NextDNS. Для маленького EU-нишевого провайдера нет.
Я посчитал. P50 для DoH-резолвера в EU при двух-трёх нодах в Европе укладывается в 25-30 мс для 95% юзеров. Дальше каждая дополнительная нода даёт убывающую отдачу: добавить Варшаву к Хельсинки и Милану это улучшение на 5-8 мс для польских юзеров и ноль для всех остальных. Для рекурсивного резолвера, где сам резолв и так стоит 20-100 мс из-за upstream-цепочки, эти 5 мс на edge вообще не видны.
Поэтому 8 нод выглядят так:
EU + neighbours ┌──────────────────────────────────────────┐ │ Helsinki (FI) ── Reykjavík (IS) │ │ │ │ │ │ └──── Milan (IT) ────┘ │ │ │ │ │ Bratislava (SK) │ │ │ │ │ Almaty (KZ) │ └──────────────────────────────────────────┘ Far edge ┌──────────────────────────────────────────┐ │ Tokyo (JP) São Paulo (BR) │ │ Auckland (NZ) │ └──────────────────────────────────────────┘
Пять нод покрывают EU и ближние страны, три закрывают Asia/Pacific и Южную Америку с приличным latency. Север (Reykjavík) и юг (São Paulo) — для тех редких юзеров, кому реально 5000 км до ближайшей точки.
Anycast я сознательно не делаю. Это политическое решение: anycast требует своей AS, BGP-провайдера и партнёрств, которые в итоге размывают позиционирование «EU jurisdiction». Когда твой anycast-префикс анонсится из Майами и Сингапура, говорить «мы не отдаём данные в США» становится сложнее. Geo-DNS на dns.vantagedns.com с приоритетом по latency для моего масштаба работает прилично, и я полностью контролирую, куда юзер попадёт.
Как выбирал провайдеров
Я смотрел на четыре параметра: цена за месяц, наличие нужной локации, качество сети (потери, jitter, IPv6), и сколько времени уходит на первый деплой. Имена провайдеров не называю — это рекомендация и реклама, а я предпочитаю писать про принципы. Тех, кто реально хочет, я отправляю на reddit-thread r/webhosting за месяц, и они находят сами.
Принципы такие.
Один европейский low-cost VPS-провайдер с филиалами в нужных мне странах закрыл шесть из восьми моих локаций. Базовый план на 1 vCPU и 1 GB RAM достаточен для edge-ноды: vdns-edge Go-бинарь в нагруженный час съедает 100-200 MB RAM и долю одного ядра. DNS workload это много мелких пакетов, CPU тратится на крипто (TLS handshake) и распарсивание DNS-сообщений, оба этих этапа неприлично дешёвы на современных AMD-ядрах. €1.20 в месяц с включёнными несколькими терабайтами трафика — нормально.
Две оставшиеся локации (Бразилия и Новая Зеландия) пришлось взять у того же провайдера в их региональных филиалах, потому что мой основной хостер туда не дотягивается. Тарифы те же — €1.20.
Что я не стал делать.
Не стал брать «энтерпрайз»-сегмент (AWS, GCP, Azure). И не из-за «дорого вообще», а из-за конкретной строки в их прайсинге, о которой расскажу ниже.
Не стал делать anycast у апстрим-провайдеров. Получить свою AS и анонсировать /24 в BGP — это €500-2000 единовременно и €100-300 в месяц за «BGP-friendly» хостинг. И самое важное — это размывает юрисдикцию: твой anycast-префикс физически анонсится из Майами, и аргумент «EU-only» становится наполовину сказкой.
Не стал брать dedicated-серверы в EU за €40 для edge-нод. На edge dedicated не нужен: workload помещается в 1 GB RAM, диск не нужен, всё in-memory. Dedicated имеет смысл только для control plane, где живёт Postgres и ClickHouse. Туда я взял один VPS пожирнее, об этом ниже.
И вот тут начинается главный разговор — про egress.
Egress costs — самая частая ловушка
Это пункт, на котором ломаются все, кто впервые считает «дешёвую инфру за $5» и потом получает счёт на $300.
DNS-резолвер на каждый запрос делает upstream-обращения, отвечает клиенту, шипит query log в control plane. На ноде с приличной нагрузкой это легко 1-3 TB исходящего трафика в месяц. И вот тарифы:
Класс провайдера |
Inclusive egress |
После лимита |
|---|---|---|
Low-cost EU VPS (Hetzner, OVH, Aeza-class, …) |
5-20 TB |
€1-3/TB |
DigitalOcean / Vultr / Linode |
2-5 TB |
$10/TB |
AWS EC2 (US-east) |
100 GB на аккаунт |
|
GCP Compute |
200 GB |
$0.085-0.12/GB |
Azure |
100 GB |
$0.087/GB |
Возьмите ноду на AWS за «$3.50 в месяц» с 1 TB inclusive (это Lightsail, у EC2 ещё хуже). Налейте на неё 2 TB реального DNS-трафика. Получите счёт $3.50 + $90 = $93.50. У low-cost EU-VPS за тот же трафик будет €1.20 + €0 = €1.20.
Это главный гэп между «дешёвой инфрой за пять долларов» и «реальностью за двести». Все облачные гиганты зарабатывают на egress, и DNS один из худших workload’ов для них из-за высокого отношения трафика к CPU. Если кто-то предлагает вам делать DNS на AWS plain-instance или на GCP, посмотрите на его счёт через три месяца, он будет интересный.
Все нормальные low-cost VPS-провайдеры (европейские и не очень) дают inclusive egress, которого хватает с запасом. Это не случайность, это бизнес-модель: они продают железо, а не трафик.
Реальная разбивка: €46.27 в месяц
Ниже построчный счёт, который мне приходит каждый месяц. Без приукрашиваний и без «ну плюс-минус полтинник».
Item |
€/мес |
Note |
|---|---|---|
8× edge-нода (FI, IS, IT, SK, KZ, JP, BR, NZ) |
9.60 |
8 × €1.20, 1 vCPU / 1 GB RAM / inclusive-egress |
Control plane VPS (4 vCPU / 8 GB / NVMe) |
14.95 |
Postgres + ClickHouse + API + Redis + BTCPay |
Brevo (transactional email) |
14.50 |
до 20k писем/мес |
Geo-DNS / health-check провайдер |
3.50 |
latency-routing на |
Backup storage (S3-compatible, 100 GB) |
1.72 |
дамп Postgres + ClickHouse parts |
Domains (vantagedns.com + .net + .org amortized) |
2.00 |
~$24/год / 12 |
Итого |
46.27 |
Округлять не буду: €46.27 в месяц. Цифра, которая реально списывается с карты.
ClickHouse retention сейчас держит ~30 GB на 30-дневном окне (free план 24 часа, paid до 30 дней). Postgres ~3 GB. Redis 100 MB. Control plane VPS с 8 GB RAM и NVMe это всё спокойно тянет с запасом года на полтора при текущей траектории роста. Когда упрусь — мигрирую на dedicated за ~€40, при текущем росте это вопрос 12-18 месяцев.
TLS Let’s Encrypt, бесплатно. MoneroPay для XMR-биллинга и BTCPay self-hosted прямо на control plane, доплачивать никому не надо. Prometheus + Grafana для мониторинга там же. Это всё не отдельные строчки в счёте, а cgroups внутри одного VPS.
Edge-ноды друг с другом и с core общаются через gRPC over TLS на отдельном control-channel домене. Никакого VPN-mesh: лишний слой инкапсуляции, лишний latency, лишняя точка отказа. У восьми нод mesh решительно не нужен.
Что НЕ входит в эти €46
Дальше то, что добавляется к инфре, но обычно не считается «инфраструктурой»:
Item |
€/мес |
Note |
|---|---|---|
Sentry (Hobby tier) |
0 |
пока бесплатный, апгрейд когда упрёмся |
GitHub (Pro) |
4 |
private repos и Actions minutes |
Plausible Analytics |
9 |
self-hosted был, оказалось проще платить |
Бухгалтерия (Holvi business account) |
13 |
Finnish OSS, обязательно |
Юридическое (амортизация регистрации Toiminimi и юриста на старте) |
15 |
разовые ~€500, размазал на 3 года |
Резерв на VAT MOSS отчёты |
0 |
сам делаю в OSS Portal |
Итого дополнительно |
41 |
Реальная стоимость продукта в месяц получается €87.27. Половину это инфра, половину — софт и операционная обвязка вокруг бизнеса. Когда я сам считал в первый раз, я ожидал, что инфра будет доминантной строкой. По факту инфра меньше, чем GitHub + Plausible + бухгалтерия.
И ещё одна строка, которую считать или нет, личный выбор: мой собственный труд. Если бы я кодил это за рыночную ставку, продукт стоил бы тысяч пятнадцать евро в месяц только за разработку. Без флагов тестирую на себе, что довольно унизительно, но для оценки break-even это не считаем, иначе индихакерство не имеет смысла никогда.
Сколько надо платных юзеров чтобы выйти в плюс
Pro-план VantageDNS стоит €25/мес. После комиссий процессинга (Stripe ~5% effective с учётом международных карт и FX, XMR через MoneroPay ~0.5%) до меня доходит примерно €23 с подписки в среднем по плате.
Вот как выглядит экономика по ступенькам:
Платных |
Gross/мес |
После комиссий |
После налогов (24% Finnish corp + VAT учтён) |
Статус |
|---|---|---|---|---|
3 |
€75 |
€69 |
€52 |
инфра окупилась |
5 |
€125 |
€115 |
€87 |
инфра + софт |
12 |
€300 |
€276 |
€210 |
плюс бухгалтерия и легал |
30 |
€750 |
€690 |
€524 |
можно купить кофе |
60 |
€1500 |
€1380 |
€1048 |
пол-зарплаты сисадмина |
150 |
€3750 |
€3450 |
€2622 |
можно жить |
300 |
€7500 |
€6900 |
€5244 |
пора нанимать поддержку |
Три платника и сервера платят сами за себя. Двенадцать и я закрываю всю операционную обвязку. Тридцать и я хотя бы оправдываю время. Чтобы добраться до тридцати платников, по статистике NextDNS-клонов нужно где-то 1500-3000 free signups: конверсия free→paid обычно 1-3% на DNS-продуктах. Это много меньше, чем у обычного SaaS, потому что бесплатный план у DNS-провайдеров уже закрывает 90% потребностей частного юзера.
Поэтому маркетинговый прицел не «получить тысячу платных за месяц», а «получить пять тысяч free за год и конвертить медленно, через product-led рост».
Чему научился за полгода
Несколько вещей, которые я хотел бы сказать самому себе пол-года назад.
Не оптимизируй на старте. Разница между €46 и €30 на инфре это 16 евро. За эти 16 евро я бы не нанял даже один час разработчика. Час на торг с провайдером, час на выбор более дешёвого тарифа, час на миграцию, и я уже потратил больше, чем сэкономил за год. На €46 я думаю о продукте. На €30 я думал бы о провайдерах.
Один провайдер с филиалами лучше зоопарка. Я мог бы натащить ноды у пяти разных хостеров «чтобы не было single point of failure». Я не стал. Один провайдер это один биллинг, один аккаунт, один тикет-трекер для саппорта, и одни SSH-ключи, которые ротировать. Single point of failure я закрываю не «вторым хостером», а тем, что edge stateless: если нода умерла, geo-DNS уводит юзеров на соседнюю, на восстановление новой ноды у меня уходит ~12 минут с Ansible-плейбуком.
Egress это главный killer. Если кто-то говорит «у меня DNS на AWS», спросите, сколько он платит за трафик. Если он не знает, подождите пару месяцев и спросите ещё раз. Реальность, как водится, побьёт его палкой по голове.
На control plane дисковый I/O важнее CPU. ClickHouse при retention 30 дней даже на скромной нагрузке хочет приличный NVMe, а на shared SSD будет страдать. Когда выбираете VPS под control plane, не оптимизируйте на RAM, оптимизируйте на NVMe и io-priority.
Геораспределение не самоцель. Три ноды в EU + четыре по миру лучше пятидесяти размазанных, когда у тебя ноль юзеров в Бразилии. Каждая лишняя нода это деплои, мониторинг, certs, патчинг. И когда у тебя 200 платников, ты не можешь себе позволить тратить день на ноду, которая обслуживает четырёх юзеров.
По софт-стеку правило простое: экономь на софте, не на железе. Self-hosted Plausible я держал три месяца, потом понял, что €9 в месяц за SaaS-версию я отбиваю одной ночью без Grafana-алертов от Plausible-контейнера. Sentry, бесплатный tier пока хватает. ClickHouse, open source, ставлю сам, не плачу ClickHouse Cloud €200/мес. Где можно поставить open source и забыть, ставь. Где open source требует постоянного внимания (Plausible, Grafana Cloud), плати.
Что дальше
План на следующие полгода:
При 200 paying users мигрировать control plane с VPS на dedicated. Postgres + ClickHouse начнут уставать на 8 GB RAM при таком количестве записей в audit log. Цель — dedicated за ~€40/мес.
Добавить Mumbai или Bangalore. Asia-Pacific сейчас прикрыт Токио и Окленд, для индийских юзеров это всё ещё далеко.
Вторая control plane нода в режиме hot standby, репликация Postgres + ClickHouse. Это +€15/мес, но единая точка отказа на одном VPS начинает беспокоить уже сейчас.
Может быть anycast и BGP это отдельная боль. Но если проект вырастет, рано или поздно anycast станет дешевле, чем поддерживать ручной geo-routing.
Без пафоса
Никакого «exciting times» и «the future looks bright». Просто €46 на инфру, €87 с операционной обвязкой, 8 нод, три платника чтобы окупиться, тридцать чтобы оправдать время.
Если делаете что-то похожее, pro tip всего один: считайте egress до того, как выбираете хостинг. Всё остальное мелочи на фоне счёта от AWS за исходящий трафик.
И ещё. Любой нормальный европейский low-cost VPS-провайдер с филиалами и inclusive-трафиком закроет вам 90% случаев за десятку в месяц. Имена не подсказываю принципиально: я не амбассадор. Найти не сложно — берёте субреддит r/webhosting, листаете месяц назад, в каждом втором треде спорят про конкретно ваш кейс.
Ссылки
vantagedns.com/try, попробовать бесплатно
vantagedns.com/press-kit, пресс-кит, если пишете
Комментарии (10)

xdearboy
18.05.2026 07:01Получить свою AS и анонсировать /24 в BGP — это €500-2000 единовременно и €100-300 в месяц за «BGP-friendly» хостинг
Не совсем так. Мне, например, ASN зарегистрировали примерно за 100€, а /24 я арендовал месяц назад за ~130€, но сейчас уже отказался от него и полностью перешёл на IPv6 - просто не нуждаюсь в IPv4-адресах. Транзит с 6 апстримами у меня выходит примерно в 150$ в месяц, так что собрать нормальный BGP-сетап можно без каких-то нереальных затрат.

poozza
18.05.2026 07:01сейчас уже отказался от него и полностью перешёл на IPv6 - просто не нуждаюсь в IPv4-адресах
в идеале ipv6only

cyberscoper Автор
18.05.2026 07:01Хороший катч мои цены были навскидку из “общего знания индустрии”, а это всегда хуже, чем свежие реальные суммы.
Беру на заметку: €100 за ASN + €130 за /24 в аренду + ~$150 в мес. транзит с 6 апстримами это сильно ниже того, что я закладывал в голове как стоимость входа в BGP. Если не секрет, у кого арендовали /24 и какие апстримы брали для транзита? Если публично не хочется — в личку. В будущем, когда буду пересматривать решение про anycast, это будет одна из первых точек, куда я полезу.
select26
18.05.2026 07:01Сеть можете арендовать где угодно. На интерлир сеть будет стоить от 100 евро.
Причем в Вашем случае мосжнл взять еще дешевле сеть из списка Spamhous - для ingress это работает.
Но я считаю, что вы выбрали верный путь, отказавшись от anycast. Это решение требует постоянный контроль и мониторинг. Придется использовать внешние сервисы, чтобы видеть проблемы по регионам.
Предлагаю Вам рассмотреть NS1 от IBM как решение для GEO - закроет все ваши потребности даже на Free tier. А по надежности и функциональности вряд ли имеет конкурентов.

poozza
18.05.2026 07:01нишевый продукт для людей, которым важен пункт «данные не уезжают в США»
так в nextdns же указываешь где приземлить (us/eu/asia) или ничего не собирать
пользуясь random-location в control-d понял что нужно искуственно (по рандом) увеличивать задержку иначе по ней идёт позиционирование через dns leak [test] а так хоть чуть усложнения
по six-eyes+++++ уже 20лет как нет private-маршрутов и все vpn что роутили траф по пути юридического сопротивления к 2007 загнулись постепенно отключая уже не годные locations

cyberscoper Автор
18.05.2026 07:01Про NextDNS-настройки региона да, в дашборде есть выбор US/EU/Asia и опция “не логгировать”. Это контроль над данными внутри инфры NextDNS, но не контроль над юрисдикцией самой NextDNS Inc как корпорации США: судебная повестка из американского суда обязывает их выдать всё, что у них есть, независимо от того, какой регион пользователь выбрал в UI. Различие тонкое, но для угрозы вида “США просят данные конкретного клиента через суд” оно решающее. Это та граница, на которой моя ниша вообще существует.
Про latency-fingerprinting и random-location. Это вообще лучшее в комменте. У меня сейчас edge отвечает с детерминированной задержкой ~10-15 ms на cache hit; добавить псевдо-jitter ±5 ms я думал, но решил, что оно того не стоит. Если у вас есть конкретные примеры, когда DNS-leak-тест позиционировал через latency, киньте ссылку — это аргумент пересмотреть. Про Six-eyes и судьбу private-маршрутов.
Так же добавлю, согласен в том, что “EU-only” это не “защищено от всех правительств планеты”. Это защищено от одного конкретного класса угроз — американских внеюрисдикционных запросов через CLOUD Act и FISA 702. От финского правосудия меня лично ничто не защищает, и не должно. Чем дальше, тем чаще приходится продавать privacy не как “у нас безопасно”, а как “у нас понятная юрисдикция, которая публикуется в transparency report и которой можно соответствовать или не соответствовать осознанно”.

wanomgn
18.05.2026 07:01>Юридическое (амортизация регистрации Toiminimi и юриста на старте) 15 разовые ~€500, размазал на год
чегойто у меня при делении 500 евро на 12 месяцев - никак не получается 15 евро

cyberscoper Автор
18.05.2026 07:01В оригинальной таблице я размазывал на 3 года (€500/36 ≈ €14), исправил. Благодарю.
Gansterito
Вы дважды озвучили тезис про Майами и Сингапур, но не пояснили детально причин:
Вы владеете собственной AS + блоком /24. Присоединяетесь к операторам на территории Евросоюза. Есть риск, что трафик будет покидать пределы Европы, например, когда клиент сидит на одном операторе и стык с вашим аплинком у него в Штатах. Это обычная ситуация, но она же актуальна и без использования AnyCast и BGP. Так в чем проблема?
cyberscoper Автор
Тезис про Майами я действительно перегнул:)
если AS своя, /24 свой, и пиры только с европейскими операторами, физически трафик из EU не выходит ради тебя как клиента. Транзитная маршрутизация конкретного клиента через US — отдельная история, и она у меня в geo-DNS-сетапе ровно такая же.
Реальные причины, по которым я не делаю anycast, две, и обе про мой масштаб, а не про физику:
1. Потеря per-user контроля над выбором ноды. С geo-DNS я отдаю A-запись, которую сам выбрал; с anycast маршрутизатор оператора клиента сам решает, к какому моему PoP его привести. На уровне жалоб саппорту вида “почему мой запрос полетел в Хельсинки, а не в Милан” anycast хуже отвечает.
2. Операционная сложность BGP-сетапа против выигрыша. У меня 8 PoPs, не 80. Anycast окупается в виде латентного выигрыша, начиная с десятков локаций. На 8 нодах разница в p50 c geo-DNS против anycast это единицы миллисекунд. С тезисом “EU-only физически” вы абсолютно правы — он работает только на уровне моей инфры, не на уровне маршрута пакетов от клиента. Это в посте я сформулировал слабее, чем должен был.