Как выбрать VPS под базу данных
База данных на своём VPS — это предсказуемая цена и полный доступ к настройкам: можно поставить нужную версию, включить расширения и настроить резервное копирование под себя. Управляемые базы в облаках удобнее, но стоят в разы дороже за тот же объём памяти. Если вы готовы сами следить за обновлениями и бэкапами, сервер под базу окупается быстро.
Память важнее ядер
Базы данных держат горячие данные в оперативной памяти: PostgreSQL — в shared_buffers и кэше файловой системы, MySQL и MariaDB — в буферном пуле InnoDB, Redis — целиком. Пока рабочий набор помещается в память, запросы отвечают за миллисекунды; как только перестаёт — каждый запрос идёт на диск, и скорость падает в десятки раз. Поэтому первым делом прикиньте объём активных данных и берите память с запасом:
- до 5 ГБ данных — блог, небольшой магазин, бэкенд бота: хватает 2 ГБ RAM;
- 10–30 ГБ — CRM, интернет-магазин с каталогом, аналитика: от 4 ГБ, лучше 8 ГБ;
- больше 50 ГБ или сотни запросов в секунду — от 16 ГБ и выделенные ядра.
Ядра нужны для параллельных запросов и тяжёлых отчётов. Для типичной веб-нагрузки 2 ядер достаточно, а таблица выше по умолчанию отсортирована по цене гигабайта памяти — это главный параметр для базы.
Диск: только NVMe
База постоянно делает мелкие случайные чтения и записи, а журнал транзакций требует быстрой синхронной записи. На HDD и дешёвых SATA SSD с общим доступом это превращается в задержки и «подвисания» при каждой контрольной точке. Берите тарифы на NVMe и закладывайте место втрое больше текущего объёма данных: индексы, журналы WAL или binlog, временные файлы сортировки и локальные бэкапы занимают не меньше самих таблиц.
PostgreSQL, MySQL или Redis
- PostgreSQL — универсальный выбор для новых проектов: строгие транзакции, JSON, полнотекстовый поиск, расширения вроде PostGIS. Подробнее о требованиях — на странице VPS для PostgreSQL.
- MySQL и MariaDB — стандарт для WordPress, Bitrix и большинства CMS; на небольших объёмах потребляют меньше памяти. См. VPS для MySQL.
- Redis — кэш, очереди и сессии; всё хранится в памяти, поэтому её объём и определяет тариф. См. VPS для Redis.
Безопасность и бэкапы
Никогда не открывайте порт базы в интернет: PostgreSQL (5432), MySQL (3306) и Redis (6379) должны слушать только 127.0.0.1 или частную сеть. Если приложение стоит на другом сервере, соединяйте их через WireGuard или SSH-туннель. Открытые базы находят сканеры за часы, и данные шифруют вымогатели.
Бэкап на том же сервере — не бэкап. Настройте ежедневный дамп (pg_dump, mysqldump) или непрерывное архивирование журнала и копируйте его в другое место: в объектное хранилище или на отдельный VPS для бэкапов. Раз в месяц проверяйте, что из копии действительно можно восстановиться.
Где разместить
Ставьте базу в том же дата-центре, что и приложение: каждые лишние 30–50 мс сети умножаются на число запросов к странице. Если храните персональные данные россиян, по 152-ФЗ база должна быть в России — для этого есть подборка VPS в России.