Спор «Vercel или свой сервер» обычно ведут на уровне вкусов, хотя решается он двумя-тремя конкретными вопросами: где ваша аудитория, есть ли у вас человек, готовый администрировать сервер, и какие у проекта требования к хранению данных.
Ниже — сравнение по существу, включая то, о чём в подобных статьях обычно молчат: сколько на самом деле стоит владение своим сервером.
Обзор вариантов
| Критерий | Vercel | Свой VPS |
|---|---|---|
| Настройка | 5 минут | 1-2 часа |
| Стоимость | $0-20+/мес | $5-20/мес |
| Контроль | Ограничен | Полный |
| Масштабирование | Автоматическое | Ручное |
| Edge-функции | Да | Нет (или сложно) |
Vercel
Плюсы
1. Zero-config деплой
# Это всё, что нужно
npm i -g vercel
vercelVercel автоматически определяет Next.js и настраивает:
- Build pipeline
- CDN для статики
- Serverless-функции для API
- ISR и on-demand revalidation
- Preview deployments для PR
2. Edge Network
Контент раздаётся с ближайшего к пользователю сервера. Для России это обычно Франкфурт или Хельсинки.
3. Интеграции
- GitHub/GitLab — автодеплой при пуше
- Vercel Analytics — метрики производительности
- Vercel KV, Postgres, Blob — managed-сервисы
4. Preview Deployments
Каждый PR получает уникальный URL для тестирования.
Минусы
1. Ценообразование
| План | Цена | Ограничения |
|---|---|---|
| Hobby | $0 | Только личные проекты, 100GB bandwidth |
| Pro | $20/мес | 1TB bandwidth, команда |
| Enterprise | $$$$ | Безлимит |
Hobby-план нельзя использовать для коммерческих проектов. Это нарушение ToS.
2. Vendor lock-in
Некоторые фичи Next.js работают только на Vercel:
- Edge Runtime (частично)
- Vercel KV/Postgres
- Speed Insights
3. Cold starts
Serverless-функции «засыпают» без трафика. Первый запрос может занять 1-3 секунды.
4. Execution limits
| Лимит | Hobby | Pro |
|---|---|---|
| Timeout | 10s | 60s |
| Memory | 1024MB | 3008MB |
| Payload | 4.5MB | 4.5MB |
Когда выбрать Vercel
- Личный блог или портфолио
- Стартап на ранней стадии, где важна скорость запуска
- Проект с глобальной аудиторией
- Команда без администратора серверов
- Нужны превью-развёртывания для каждой ветки
Свой VPS
Плюсы
1. Полный контроль
- Любая версия Node.js
- Любые системные зависимости
- Кастомные конфиги nginx
- Доступ к файловой системе
2. Предсказуемая стоимость
| Провайдер | Конфиг | Цена |
|---|---|---|
| Timeweb | 2 CPU, 4GB RAM | ~500₽/мес |
| FirstVDS | 2 CPU, 4GB RAM | ~600₽/мес |
| Hetzner | 2 vCPU, 4GB RAM | €4.5/мес |
| DigitalOcean | 2 vCPU, 4GB RAM | $24/мес |
3. Нет vendor lock-in
Работает везде, где есть Node.js.
4. Long-running processes
WebSocket-серверы, background jobs, cron — без ограничений.
Минусы
1. Настройка требует знаний
- nginx конфигурация
- SSL-сертификаты
- PM2 или systemd
- Мониторинг
- Бэкапы
2. Ручное масштабирование
При росте нагрузки нужно:
- Увеличивать сервер
- Настраивать балансировку
- Добавлять кэширование
3. Нет глобального CDN (по умолчанию)
Сервер в одной локации = высокая задержка для удалённых пользователей.
Настройка VPS для Next.js
1. Установка Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs2. Клонирование и сборка
git clone https://github.com/your/project.git
cd project
npm ci
npm run build3. PM2 для процесса
npm install -g pm2
# Запуск
pm2 start npm --name "nextjs" -- start
# Автозапуск при перезагрузке
pm2 startup
pm2 save4. nginx как reverse proxy
# /etc/nginx/sites-available/nextjs
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
# Кэширование статики
location /_next/static {
alias /var/www/project/.next/static;
expires 1y;
access_log off;
add_header Cache-Control "public, immutable";
}
}5. SSL с Let's Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com6. CI/CD с GitHub Actions
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to VPS
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
script: |
cd /var/www/project
git pull origin main
npm ci
npm run build
pm2 restart nextjsКогда выбрать VPS
- Коммерческий проект с предсказуемым трафиком
- Аудитория в одном регионе
- Нужны постоянные соединения, задания по расписанию и фоновая обработка — то, что плохо ложится на модель функций
- Есть кому администрировать сервер
- Важна предсказуемость расходов при росте нагрузки
Гибридный подход
Можно комбинировать:
┌─────────────┐
│ Vercel │
│ (Frontend) │
└──────┬──────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ CDN │ │ VPS │
│ (Cloudflare)│ ◄── │ (API) │
└─────────────┘ └─────────────┘- Vercel — фронтенд Next.js
- VPS — API, база данных, background jobs
- Cloudflare — CDN и защита
Сравнение для типичных проектов
Личный блог
| Vercel | VPS | |
|---|---|---|
| Стоимость | $0 | ~$5/мес |
| Настройка | 5 мин | 1-2 часа |
| Рекомендация | ✅ |
Интернет-магазин (Россия)
| Vercel | VPS | |
|---|---|---|
| Стоимость | $20+/мес | ~$10-20/мес |
| Latency (Москва) | ~100ms | ~10ms |
| Рекомендация | ✅ |
SaaS с глобальной аудиторией
| Vercel | VPS | |
|---|---|---|
| Стоимость | $20-100/мес | $50-200/мес |
| Edge-функции | Да | Нет |
| Рекомендация | ✅ |
Что обычно не попадает в сравнение
Стоимость своего сервера — это не только аренда. К сумме в счёте прибавьте время на обновления безопасности, настройку и проверку резервных копий, мониторинг, продление сертификатов и разбор ночных инцидентов. Час работы разработчика в месяц — это уже сопоставимо с разницей в тарифах, а бывает и больше. VPS дешевле по счёту и не всегда дешевле по итогу.
Обратная сторона тоже верна: счёт Vercel непредсказуем. Тарификация зависит от трафика и вызовов функций, и рост посещаемости — включая ботовый — отражается на сумме. Для проекта с ровной нагрузкой предсказуемый платёж за сервер спокойнее.
Персональные данные и требования к хранению. Для российских коммерческих проектов это часто не вопрос предпочтений: требования к размещению данных решают за вас, и обсуждать остаётся только конфигурацию сервера.
Задержка до аудитории. Для российской аудитории сервер в России даёт ощутимо меньшую задержку, чем глобальная сеть с ближайшей точкой за рубежом. Для международной аудитории — ровно наоборот. Это самый весомый технический аргумент в сравнении, и он полностью определяется тем, где ваши пользователи.
Резервное копирование — ваша задача на своём сервере. И оно не сделано, пока вы не восстановили из него проект хотя бы раз. Это тот пункт, который чаще всего оказывается невыполненным в момент, когда он нужен.
Итоги
Vercel — быстрый старт, глобальная сеть доставки, превью-развёртывания для каждой ветки. Подходит стартапам, проектам с международной аудиторией и командам без администратора.
Свой сервер — контроль, предсказуемый платёж, низкая задержка в регионе, отсутствие ограничений по времени выполнения. Подходит коммерческим проектам с локальной аудиторией, а также всем случаям, где размещение данных регламентировано.
Практическая рекомендация. Начинать с Vercel на этапе MVP разумно, но при одном условии: не завязывайтесь на специфичные для платформы возможности, пока не решили остаться. Edge-функции, платформенные хранилища и определение геолокации из запроса — всё это придётся переписывать при переезде. Пока приложение остаётся обычным Next.js, смена площадки занимает вечер.
Частые вопросы
Можно ли использовать бесплатный план Vercel для коммерческого проекта?
Нет, Hobby-план предназначен только для личных проектов, и коммерческое использование нарушает условия сервиса. Для команды и бизнеса нужен план Pro за 20 долларов в месяц: он даёт 1 ТБ трафика, командную работу, таймаут функций 60 секунд вместо 10 и до 3008 МБ памяти вместо 1024.
Что дешевле: Vercel или свой сервер?
По счёту почти всегда VPS: 500–600 рублей в месяц за 2 CPU и 4 ГБ против 20 долларов на Pro. По итогу — не обязательно. К аренде прибавьте время на обновления безопасности, настройку и проверку резервных копий, мониторинг, продление сертификатов и разбор ночных инцидентов: час работы разработчика в месяц уже сопоставим с разницей в тарифах. Обратная сторона тоже верна: счёт Vercel зависит от трафика и вызовов функций, поэтому рост посещаемости, включая ботовый, отражается на сумме, а платёж за сервер предсказуем.
Что даёт меньшую задержку для российской аудитории?
Сервер в России. Ближайшая точка глобальной сети Vercel для России — обычно Франкфурт или Хельсинки, и разница ощутима: порядка 100 мс против 10 мс на московском VPS. Это самый весомый технический аргумент в сравнении, и он полностью определяется тем, где ваши пользователи: для международной аудитории вывод ровно обратный.
Когда своё размещение обязательно?
Когда требования к хранению персональных данных регламентированы: для российских коммерческих проектов это часто не вопрос предпочтений, и обсуждать остаётся только конфигурацию сервера. Также своё размещение нужно для постоянных соединений, заданий по расписанию и фоновой обработки — всего, что плохо ложится на модель функций с ограничением времени выполнения.
Что такое vendor lock-in на Vercel и как его избежать?
Часть возможностей работает только на платформе: Edge Runtime, платформенные хранилища вроде KV и Postgres, Speed Insights, определение геолокации из запроса. Начинать с Vercel на этапе MVP разумно, но при одном условии — не завязываться на эти возможности, пока не решили остаться. Пока приложение остаётся обычным Next.js, смена площадки занимает вечер.
Можно ли совместить Vercel и свой сервер?
Да, гибридная схема рабочая: Vercel держит фронтенд на Next.js, свой VPS — API, базу данных и фоновые задания, а перед ними Cloudflare как сеть доставки и защита. Так вы получаете быстрое развёртывание фронтенда и при этом не упираетесь в лимиты выполнения там, где нужны долгие процессы.