Как выбрать VPS: чтобы потом не переезжать
Каждый, кто запускал проект на shared-хостинге, знает этот момент: сайт начинает тормозить, поддержка отвечает «у вас превышение лимитов», а сосед по серверу майнит крипту на вашем процессоре. Решение — VPS. Но вот с выбором провайдера и конфигурации ошибаются чаще, чем кажется.
Рекомендуемые платформы: digitalocean.com, hetzner.com
Этот гайд — практическое руководство, написанное на основе десятка переездов и сотен потерянных часов. Без рекламы конкретных хостеров, только критерии.
Шаг 1: Определите реальные потребности
Самая дорогая ошибка — брать VPS «на вырост». Или наоборот — экономить на RAM и получить OOM-киллер в продакшене.
Минимальные конфигурации для типовых проектов:
| Проект | vCPU | RAM | SSD | Трафик |
|---|---|---|---|---|
| Статический сайт/лендинг | 1 | 1 GB | 20 GB | 1 TB |
| WordPress (5K посет/день) | 2 | 2 GB | 40 GB | 2 TB |
| Интернет-магазин (10K/д) | 4 | 4 GB | 80 GB | 4 TB |
| SaaS-приложение | 4 | 8 GB | 100 GB | 5 TB |
| High-load API (100K запр/д) | 8 | 16 GB | 200 GB | 10 TB |
Реальный тест, а не угадайка: Перед покупкой VPS запустите ваш проект локально (или на дешёвом инстансе) и снимите метрики: пиковое потребление RAM, загрузку CPU, объём данных. Умножьте RAM на 1.5 — это ваш минимум. CPU на 2 — это запас под всплески.
Шаг 2: Процессор — проверяйте поколение
«2 vCPU» — это бессмысленная цифра без информации о процессоре. Разница между Intel Xeon E5-2620 (2012) и Xeon Platinum 8470Q (2023) — в 3–4 раза по однопоточной производительности.
Что спрашивать у провайдера:
- Модель процессора (хотя бы поколение)
- Выделенное ядро или shared (оверселлинг)?
- Базовая частота
Провайдеры типа Kamatera и Vultr раскрывают модели CPU. DigitalOcean и Linode — «Intel Xeon» без конкретики. AWS Lightsail — вообще не говорит.
Практический совет: возьмите VPS на тестовый период и запустите sysbench cpu run. Если однопоточный результат ниже 1,000 events/sec — процессор старше 2015 года. Для современных нагрузок ищите от 2,500+.
Шаг 3: RAM — не экономьте на памяти
OOM Killer (Out of Memory Killer) в Linux — это когда сервер убивает процессы из-за нехватки памяти. Ваш сайт падает, а в логах — Killed process 12345 (mysqld).
Правила:
- MySQL/PostgreSQL съедают 30–50% доступной RAM (по настройке)
- Кеши (Redis, OpCache) — ещё 20–30%
- Само приложение — 20–30%
- ОС — 0.5–1 GB
Формула: RAM = (Размер БД × 0.5) + (Размер приложения) + 1 GB (ОС) + 25% (запас)
Пример: WordPress с базой 500 MB и темой/плагинами — минимум 2 GB RAM (из них 1 GB — MySQL и кеши).
Swap: обязательно настройте swap размером 1–2 GB, даже если «у меня 8 GB RAM, хватит». Swap — это подушка безопасности при внезапных всплесках.
Шаг 4: Диск — NVMe vs SSD
В 2026 году разница между SATA SSD и NVMe — это не «быстро и очень быстро», а «нормально и приемлемо».
NVMe критичен для:
- Баз данных с интенсивными запросами (OLTP)
- Поисковых индексов (Elasticsearch)
- Сайтов с тысячами товаров и атрибутов
- Реалтайм-аналитики
SSD достаточно для:
- Статических сайтов и блогов
- Лендингов
- Простых API
Стоимость NVMe упала в 2 раза за последние 3 года. Разница в цене VPS с NVMe и SATA SSD — $2–5/мес. Оно того стоит.
Шаг 5: Локация — ближе к пользователям
Задержка (latency) напрямую влияет на конверсию. Исследования Google и Akamai показывают: каждая дополнительная секунда загрузки снижает конверсию на 7%.
Оптимальные дата-центры:
- Аудитория РФ/СНГ → Москва, Франкфурт, Хельсинки
- Европа → Франкфурт, Амстердам, Лондон
- США → Северная Вирджиния, Орегон, Сан-Франциско
- Азия → Сингапур, Токио
Проверка перед покупкой: большинство провайдеров дают тестовые IP. Пропингуйте с разных точек: ping <test-ip> и замерьте latency. Всё что выше 50 мс для целевого региона — плохой выбор.
CDN решает проблему статики, но не динамики. Cloudflare и Fastly раздадут картинки и CSS быстро, но если ваш WordPress генерит страницу 2 секунды на VPS во Франкфурте, пользователь из Сингапура увидит эту задержку.
Шаг 6: Цена — считайте TCO, а не месячный платёж
Скрытые расходы:
- Бэкапы (часто платные, $2–10/мес)
- Панель управления (cPanel $15–30/мес)
- Лицензии (Windows, SQL Server, LiteSpeed)
- Трафик после исчерпания лимита ($0.01–$0.10/GB)
- Дополнительные IP-адреса
Сравнение цен на типовую конфигурацию (4 vCPU / 8 GB / 160 GB NVMe / 5 TB):
| Провайдер | Цена/мес | Выдел. ядра | Бэкапы | Панель |
|---|---|---|---|---|
| Kamatera | $44 | Да | $3/мес | Нет |
| DigitalOcean | $48 | Shared | Включены | Нет |
| Vultr | $48 | Shared | $3.20/мес | Нет |
| Hetzner | ~$25 | Shared | Нет | Нет |
| Linode | $48 | Shared | $4/мес | Нет |
Hetzner — ценовой король для Европы, но без дата-центров в Азии и Америках.
Шаг 7: Поддержка — тест до оплаты
Напишите в поддержку до покупки с техническим вопросом. Замерьте время ответа. Провайдеры с медленной поддержкой на пресейле будут медленными и в продакшене. Проверенные способы:
- Задать вопрос о конфигурации CPU — проверить компетентность
- Спросить про DDoS-защиту — проверить наличие
- Уточнить про миграцию с другого хостера — проверить заинтересованность
Чек-лист финального выбора
Перед покупкой VPS проверьте:
- CPU: выделенное ядро, поколение не старше 2019
- RAM: с запасом 50% от пикового потребления
- Диск: NVMe, с запасом 50% от текущего объёма данных
- Локация: <50 мс до целевой аудитории
- Трафик: лимит с запасом 2× от текущего
- Бэкапы: ежедневные, хранятся 7+ дней
- Поддержка: ответ <1 час на пресейле
- Масштабирование: можно увеличить без пересоздания сервера
- Тестовый период: есть 7–30 дней на возврат денег
- Документация: руководства по типовым настройкам
Типичные ошибки при выборе
- «Купить дешёвый VPS и потом докупить ресурсы» — не все провайдеры позволяют гибко масштабировать. Часто нужно пересоздавать сервер.
- «Shared-ядро — мне хватит» — если сосед по серверу нагружает CPU, ваш сайт тормозит вместе с ним.
- «8 GB RAM на WordPress — зачем?» — сайт на 50K посетителей с WooCommerce спокойно съедает 6–8 GB с кешами.
- «Положу базу и приложение на один сервер» — для проектов с >5K посетителей/день разделяйте web и БД на разные VPS.
- «Бэкапы не нужны, я и так не теряю данные» — все так думают до первого rm -rf не в той директории.