Railway и Hetzner Cloud решают одну задачу — «дай мне инфраструктуру, чтобы я катил свой код» — но с разных сторон. Railway продаёт удобство: git push и оно работает. Hetzner продаёт железо: вот тебе виртуалка, дальше сам. За удобство Railway берёт в 5-25 раз больше денег при сопоставимых ресурсах. Я сам прошёл через эту миграцию для своего ETL-стека на Airflow и ниже расскажу, в каком случае $40/мес — это норм, а в каком — налог на лень.
1. Сравнение по деньгам
Возьмём типовое API-приложение: 1 vCPU / 1 GB RAM / 10 GB диск / 50 GB egress трафика в месяц. Это уровень Telegram-бота, простого FastAPI-сервиса или небольшого Next.js. Считаем по официальным прайсам.
| Параметр | Railway | Hetzner CAX11 |
|---|---|---|
| CPU | ~$20/мес | включено |
| RAM | ~$10/мес | включено |
| Диск | ~$2.50/мес (10 GB) | включено (40 GB) |
| Egress трафик | ~$5/мес (50 GB) | включено (20 TB) |
| Public IPv4 | включено | ~€0.50/мес |
| Plan fee | $5/мес (Hobby) | — |
| ИТОГО | ~$42.50/мес | €4.30 (~$4.70)/мес |
Разница ~9-10x. Цены посчитаны по Railway pricing (~$0.000463/vCPU-минута, ~$0.000231/GB RAM-минута, $0.25/GB диск, $0.10/GB egress) и Hetzner Cloud pricing (фиксированный тариф). На больших серверах разрыв растёт нелинейно — для 8 vCPU / 16 GB RAM Hetzner CAX31 обойдётся в €12.49/мес, Railway — в районе $320/мес. Это уже 25x разница.
Railway тарифицирует фактическое потребление в минутах, поэтому реальный счёт может быть ниже, если контейнер часто спит. Но в продакшене с непрерывной нагрузкой расчёт «как будто всё включено 24/7» близок к реальности.
2. Где Railway свои деньги отрабатывает (честно)
Я не люблю «ругать платформу за то, что она дорогая». Дорогая — потому что делает то, за что я бы сам платил DevOps-инженеру. У Railway есть реально классные вещи:
Если ты соло-разработчик, который ненавидит DevOps, эта ценность может стоить дополнительных $30 в месяц. Если у тебя 5 сервисов — уже $150/мес, и стоит уже думать.
3. Где Hetzner выигрывает не только ценой
Объясняя коллегам, почему я переехал, я обычно говорю: «дело не только в деньгах». На Hetzner Cloud есть несколько вещей, которых нет ни у Railway, ни у Vercel, ни у Render:
4. Как я конфигурирую Hetzner: пошаговая инструкция
Это самый практический раздел статьи. Когда я создаю новый сервер для ETL/Airflow или для Coolify-кластера, я заполняю форму примерно одинаково. Ниже — все поля Hetzner Cloud Console с обоснованиями, что я выбираю и почему.

| Поле | Что я выбираю | Почему |
|---|---|---|
| Type | Shared Resources | Dedicated — оверкилл и в 3-5 раз дороже за то же железо. Shared CPU стабилен на нагрузках до 70-80% — этого хватает 95% сценариев. |
| Location | Nuremberg (NBG1) | Тот же ДЦ, где у меня уже стоит clickhouse-etl → приватная сеть, нулевая задержка, трафик внутри ДЦ бесплатный. Если у вас всё с нуля — берите ближайший к пользователям ДЦ. |
| Image | Ubuntu 24.04 | LTS-поддержка до 2029 года. Docker, Postgres, Python, Node ставятся без боли. Самый частый стек в туториалах — будет проще искать ответы. |
| Plan | CAX21 (ARM) — €6.49/мес | 4 vCPU / 8 GB RAM / 80 GB SSD. Лучший ценник в Hetzner. ARM нормально для Airflow / Postgres / FastAPI. Боитесь совместимости — берите CPX21 (AMD, 3 vCPU / 4 GB / 80 GB) за €7.55/мес. |
| Networking | Public IPv4 + IPv6 | IPv6 бесплатно. Если денег жалко — можно только IPv6, но почти всё снаружи (npm, GitHub, многие webhook-системы) до сих пор требует IPv4. Сразу подцепите Private Network. |
| SSH keys | Свой ключ | Тот же, что для других серверов. Чтобы рутовый пароль не слали на почту — это open для бот-сканеров. |
| Volumes | пропускаю | 80 GB локального NVMe хватает с большим запасом. Volumes — это сетевой сторадж, добавляет latency. Беру только если данных больше 200 GB. |
| Firewalls | пропускаю на старте | Простой firewall можно добавить позже. На старте открыты порты 22 (SSH) и 80/443. Главное — сразу отключить пароль для SSH в /etc/ssh/sshd_config. |
| Backups | ВКЛЮЧАЮ (+20%, ~€1.30/мес) | Это сервер с метаданными Airflow и DAG-кодом. €1.30/мес против «переписать всё с нуля» — без вариантов. Снапшот хранится 7 дней автоматически. |
| Placement groups | пропускаю | Это для HA-кластеров (распределить виртуалки по разным железкам). Не мой кейс на одном-двух серверах. |
| Cloud config | пропускаю на старте | Можно потом, если автоматизировать через Terraform или Ansible. Для первого сервера лишняя сложность. |
| Name | etl-runner / airflow | Чтобы в консоли Hetzner не путать с другими серверами. Сразу прописываю в /etc/hostname после создания. |

Важно про ARM
ARM (CAX-серия) поддерживает 95% всего, что вы захотите поставить — Python, Node, Go, Postgres, Docker, ClickHouse, Redis, NATS. Но если у вас есть legacy-зависимость, собранная только под x86 (старые проприетарные .so-библиотеки, специфичные ML-runtime типа TensorRT) — берите CPX (AMD). Список Docker-образов, поддерживающих multi-arch (linux/arm64), уже больше 80% по статистике Docker Hub.
5. Когда Railway лучше Hetzner (честно)
Я не агитирую всех бежать с Railway. Есть сценарии, в которых Hetzner — плохой выбор:
- Клиенты в США/Азии с low-latency требованиями. Hetzner — преимущественно европейский провайдер (ДЦ в Германии — Nuremberg, Falkenstein; в Финляндии — Helsinki; в Сингапуре и Ашберне (US East) есть, но выбор регионов всё равно меньше, чем у AWS).
- Compliance. HIPAA, FedRAMP, SOC 2 — Railway, AWS, GCP закрывают эти бумажки. Hetzner — нет, по крайней мере не в коробочной форме.
- Нет никого, кто может починить упавший Linux. Cron, swap, обновления безопасности, бэкапы, мониторинг — это всё на вас. PaaS снимает эту нагрузку.
- Реальный горизонтальный автоскейл (с 2 до 200 контейнеров). На Railway — это галочка в настройках. На Hetzner — это Kubernetes, и его кто-то должен поддерживать.
6. Лайфхак — PaaS-обвязка поверх Hetzner
Главный аргумент против Hetzner — «я хочу git push и не думать про инфру». Этот аргумент закрывается одним инструментом: Coolify. Это Railway на твоём железе.
Open-source аналог Railway/Heroku. Git push deploy, managed Postgres/MySQL/Redis, preview-окружения, SSL — всё то же самое. Ставится за час командой:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bashАльтернативы: Dokku (старый, проверенный, CLI-first, минималистичный) и CapRover (UI-first, чуть проще Coolify, чуть менее активен). Я выбираю Coolify — самый активный community ( 41k+ звёзд на GitHub), лучший UI, поддержка Docker Compose из коробки.
Расчёт: CAX21 (8 GB RAM, €6.49/мес) под Coolify тянет 5-10 мелких сервисов с базами. Это $8/мес vs $200+ за сопоставимый набор на Railway. Окупаемость час работы — после 2-3 месяцев.
7. Как принять решение за 30 секунд
Если лень читать всю статью — вот короткая матрица. Я ей сам пользуюсь, когда консультирую друзей-стартаперов.
| Сценарий | Бери |
|---|---|
| Соло-проект, MVP, хобби | Railway (пока Hobby $5 хватает) |
| Продакшен с предсказуемой нагрузкой + базовые навыки Linux | Hetzner + Coolify |
| ETL/аналитика/тяжёлые батчи, БД на десятки ГБ | Hetzner, без вариантов |
| Стартап без DevOps, нужна скорость доставки фич | Railway (пока счёт меньше зарплаты junior-DevOps) |
| Стартап с 5+ сервисами и счётом >$200/мес на Railway | Срочно мигрируйте на Hetzner+Coolify, окупится за неделю |
| Compliance / HIPAA / SOC 2 | Railway / AWS / GCP |
| Глобальный продукт с трафиком из США/Азии | Vercel / Cloudflare + Hetzner для бэка |
8. Bottom line
Railway — это налог на отсутствие времени. Иногда он того стоит. Но в момент, когда счёт за PaaS перевалил за $50-100 в месяц, у тебя уже окупается час на то, чтобы развернуть Hetzner с Coolify и забыть про усреднённые vCPU-минуты как страшный сон. Сервер за €4 в Германии не уступает по железу серверу за $40 в Орегоне — ты платишь не за процессор, ты платишь за лень. Это нормально, пока ты осознаёшь, за что платишь.
9. Минимальный чеклист — как начать
Если решили попробовать — вот пятишаговый план до первого задеплоенного сервиса:
Полная инструкция по установке Coolify и официальный гайд Hetzner по созданию сервера — двух этих ссылок достаточно, чтобы довести до рабочего состояния за вечер. Если что-то ломается — спросите Claude или ChatGPT с текстом ошибки, в 90% случаев починка занимает один промпт.