Под задачу

Сервер для базы данных: свой VPS или облачная база

Небольшому сайту или боту обычно хватает базы на том же VPS, где работает он сам: платить за неё отдельно не нужно, и открывать её наружу не приходится. Отдельный сервер или облачная база нужны, когда базе тесно, к ней ходят несколько серверов или следить за ней некому. Ниже — сколько стоят облачные базы MySQL и PostgreSQL у Timeweb Cloud, Beget и Selectel, что в них входит и как не открыть базу всему интернету.

Обновлено 02.10.2026≈ 16 мин чтения
Содержание 11

Коротко

  • Небольшому сайту или боту хватит базы на том же VPS. Сайт подключается к ней на самом сервере, и отдельно платить за неё не нужно. На обычном хостинге MySQL и вовсе входит в тариф.
  • Облачная база — это MySQL или PostgreSQL, которую ставит и обслуживает провайдер. Самый простой тариф стоит 790 ₽ в месяц у Timeweb Cloud (1 ядро и 2 ГБ памяти) и 990 ₽ у Beget (2 ядра и 2 ГБ). У Selectel база с 2 ядрами и 4 ГБ стоит 4 125,22 ₽.
  • Смотрите на итог, а не на цену тарифа. Калькулятор Timeweb Cloud сразу добавляет IP-адрес и копии: помесячно выходит 1 110 ₽, а 999 ₽ на экране — цена в месяц при оплате сразу за год.
  • За обслуживание вы доплачиваете 210–380 ₽ в месяц. Настолько облачная база с 2 ядрами и 4 ГБ дороже VPS той же мощности у Beget и Timeweb Cloud.
  • Копии у всех устроены по-разному. Beget делает их бесплатно, не реже раза в три дня. Selectel — тоже бесплатно, с восстановлением на любой момент за 7 дней. У Timeweb Cloud копии платные, и отвечаете за них вы. Свою выгрузку базы держите в любом случае.
  • Не открывайте базу всему интернету. Подключайтесь к ней через приватную сеть провайдера или пускайте только адрес своего сайта.

Где держать базу: три варианта

На том же VPSНа отдельном VPSОблачная база
Кто ставит и обслуживает СУБДвывыпровайдер
Кто делает копиивывызависит от провайдера
Сколько стоитвходит в цену VPSцена второго сервераот 790 ₽ в месяц
Настройки СУБДлюбыелюбыете, что открыл провайдер
Память и процессорделит с сайтомтолько под базутолько под базу

На том же VPS база не стоит ничего сверх сервера, а сайт подключается к ней, не выходя в сеть. Пока сайту и базе хватает памяти, этого достаточно.

Отдельный сервер под базу нужен, когда:

  • сайту и базе тесно на одном сервере — памяти не хватает обоим;
  • к базе ходят несколько серверов — например, два сервера сайта или сайт и бот;
  • базе нужен сервер мощнее, чем сайту.

Облачная база — тот же отдельный сервер, только СУБД на нём ставит и обслуживает провайдер, а вы получаете адрес базы, логин и пароль. Она выручает, если следить за сервером и обновлениями некому.

На обычном хостинге база MySQL уже входит в тариф, и обслуживает её хостинг. Эта статья — для тех, у кого VPS или кто его выбирает. Чем они различаются, разобрано в статье Чем VPS отличается от обычного хостинга.

Сколько стоит облачная база

ПровайдерЯдраПамятьДискВ месяц
Timeweb Cloud12 ГБ20 ГБ790 ₽
Timeweb Cloud24 ГБ40 ГБ1 580 ₽
Timeweb Cloud48 ГБ80 ГБ3 160 ₽
Beget22 ГБ20 ГБ990 ₽
Beget24 ГБ40 ГБ1 350 ₽
Beget48 ГБ80 ГБ3 060 ₽
Selectel24 ГБ32 ГБ4 125,22 ₽

Цены — при помесячной оплате, без доплат за публичный адрес и платные копии, сверены 2 октября 2026 года. MySQL у всех трёх провайдеров стоит столько же, сколько PostgreSQL.

Что добавится к цене

Timeweb Cloud. В калькуляторе сразу включены публичный IP-адрес за 200 ₽ в месяц и автоматические копии за 6 ₽ в месяц за гигабайт — у самого простого тарифа это 120 ₽. Вместе с ними база стоит 1 110 ₽ в месяц. А калькулятор сначала показывает 999 ₽ в месяц: это цена при оплате сразу за 12 месяцев со скидкой 10 %.

IP-адрес нужен, только если к базе подключаются из интернета или через веб-интерфейс — phpMyAdmin для MySQL и Adminer для PostgreSQL. Если сайт работает на сервере Timeweb Cloud и база с ним в одной приватной сети, адрес можно не брать. Базы есть в Москве, Санкт-Петербурге и Нидерландах; в таблице — московские цены, младшие тарифы в Петербурге стоят столько же.

Beget. Облачные базы есть только в Санкт-Петербурге: Москва и Казахстан в калькуляторе недоступны. Копии входят в цену. По умолчанию база доступна только из приватной сети аккаунта, а отдельной строки за доступ из интернета в калькуляторе нет — если он нужен, уточните условия при заказе.

Selectel. Деньги списываются каждый час, и база оплачивается, даже когда выключена. Копии входят в цену. Доступ из интернета — ещё 393,15 ₽ в месяц за адрес основного сервера. Если деньги на счёте кончились, база блокируется, но плата за неё продолжает начисляться, а через 14 дней без пополнения её удаляют.

Свой VPS вместо облачной базы

Сравним с обычными VPS той же мощности у тех же провайдеров:

Облачная базаVPSРазница
Beget: 2 ядра, 4 ГБ1 350 ₽, диск 40 ГБ990 ₽, диск 40 ГБ, без публичного IPv4360 ₽
Beget: то же, VPS с IPv41 350 ₽, диск 40 ГБ1 140 ₽210 ₽
Timeweb Cloud: 2 ядра, 4 ГБ1 580 ₽, диск 40 ГБ1 200 ₽, диск 50 ГБ и IP-адрес380 ₽

Цены VPS сверены 30 сентября 2026 года. Публичный IPv4 для VPS у Beget — ещё 150 ₽ в месяц. За 210–380 ₽ в месяц провайдер ставит и обновляет СУБД и отвечает за сервер под ней, а Beget ещё и делает копии. Если вы готовы делать это сами, VPS дешевле и даёт доступ ко всем настройкам. Обратите внимание: у Beget за 990 ₽ в месяц можно взять либо облачную базу с 2 ГБ памяти, либо VPS с 4 ГБ без публичного IPv4.

Кто за что отвечает

Timeweb CloudBegetSelectel
Сервер под базой и установка СУБДпровайдерпровайдерпровайдер
Резервные копии и восстановлениевыпровайдерпровайдер
Подключение к базе и доступ к нейвывывы

Так ответственность делят сами провайдеры — в таблицах на страницах своих облачных баз. Как сайт работает с базой — какие запросы делает, какие таблицы и индексы заводит, — всегда ваша забота: Selectel пишет это прямо. Если сайт тормозит из-за медленных запросов, облачная база сама этого не исправит.

Beget не даёт административного доступа ни к базе, ни к серверу под ней: частые параметры меняются в панели, остальные — через поддержку.

Резервные копии: свою выгрузку делайте всё равно

Копии в облачных базах устроены по-разному:

  • Beget делает копии сам, бесплатно, не реже раза в три дня. Если восстановить базу из такой копии, пропадёт всё, что изменилось после неё, — в худшем случае за три дня.
  • Selectel делает копии сам, бесплатно, и хранит их 7 дней. Восстановить базу можно на любой момент за это время. Но скачать копию к себе нельзя, а восстанавливается база в новый кластер с новыми адресами — их придётся поменять в настройках сайта.
  • Timeweb Cloud делает копии по расписанию, которое задаёте вы: каждый день, неделю или месяц, за 6 ₽ в месяц за гигабайт. Скачать копию можно только у баз MySQL и PostgreSQL, созданных после 1 января 2025 года. Выгрузка базы в SQL-файл пока в бете, и провайдер просит не полагаться на неё как на единственный способ копирования важных данных.

Все эти копии хранятся у того же провайдера. У Beget удаление базы необратимо, а Selectel удаляет ресурсы через 14 дней после того, как на счёте кончились деньги. Поэтому раз в день выгружайте базу к себе — на другой сервер или в хранилище другого провайдера, как в статье Резервные копии сайта.

Как выгрузить базу PostgreSQL

pg_dump -h АДРЕС_БАЗЫ -U ivan -Fc shop > shop.dump

Команда спросит пароль пользователя ivan и сохранит базу shop в файл shop.dump. Адрес базы, имя пользователя и имя базы возьмите из панели провайдера. Ключ -Fc сохраняет базу в сжатом формате, из которого её восстанавливает программа pg_restore.

Копию стоит проверить. Создайте в панели пустую базу, например shop_proverka, и разверните копию в неё:

pg_restore -h АДРЕС_БАЗЫ -U ivan -d shop_proverka shop.dump

Учтите три вещи:

  • pg_dump не выгружает базы новее себя. В Ubuntu 24.04 он 16-й версии, в 26.04 — 18-й, а калькулятор Timeweb Cloud по умолчанию предлагает PostgreSQL 18. Если сервер сайта на Ubuntu 24.04, выберите при создании базы версию 16 или выгружайте базу с сервера на 26.04.
  • Пользователи в копию не попадают. pg_dump сохраняет одну базу, без пользователей и их паролей, — на новом месте их нужно завести заново.
  • Для большой базы такой выгрузки мало. Для небольшой её хватает, а для регулярных копий большой рабочей базы документация PostgreSQL советует физические копии с журналом изменений — так устроены, например, копии Selectel.

Для MySQL то же делает mysqldump: команды и скрипт для ежедневной копии — в статье Резервные копии сайта. К облачной базе подключайтесь с ключом -h и её адресом — как при переносе сайта.

Сколько памяти отдать базе

И MySQL, и PostgreSQL сразу после установки берут под кэш данных всего 128 МБ. Если база живёт на отдельном сервере, кэш увеличивают, чтобы база реже читала данные с диска:

  • PostgreSQL — параметр shared_buffers в файле /etc/postgresql/ВЕРСИЯ/main/postgresql.conf. Документация советует начинать с четверти памяти: на сервере с 4 ГБ — 1 ГБ. Ставить больше 40 % мало смысла: PostgreSQL опирается ещё и на кэш самой системы.
  • MySQL — параметр innodb_buffer_pool_size в разделе [mysqld] файла /etc/mysql/mysql.conf.d/mysqld.cnf. На сервере только под базу ему можно отдать до 80 % памяти.

После правки файла перезапустите базу. Если база и сайт на одном VPS, столько отдавать нельзя: память нужна ещё PHP и веб-серверу. Оставьте значения скромнее и посмотрите, сколько памяти свободно, командой free -h.

В облачной базе Selectel параметры СУБД настраивает сам провайдер, а у Beget частые параметры меняются в панели, остальные — через поддержку.

Сколько места занимает база

Размер базы PostgreSQL покажет запрос:

SELECT pg_size_pretty(pg_database_size('shop'));

Размер баз MySQL в мегабайтах:

SELECT table_schema, ROUND(SUM(data_length + index_length) / 1024 / 1024) AS mb
FROM information_schema.tables GROUP BY table_schema;

Цифры MySQL приблизительные и могут отставать примерно на сутки. Диск облачной базы берите по размеру базы с запасом на ближайший рост, но не «на вырост»: у Timeweb Cloud и Beget конфигурацию потом можно только увеличить, а уменьшить нельзя.

Как не открыть базу всему интернету

Базу должно быть видно только серверам, которые с ней работают. Проверьте, какие адреса она слушает:

sudo ss -tlnp

Найдите строки с портом 5432 (PostgreSQL) или 3306 (MySQL). Если перед портом стоит 127.0.0.1 или [::1], база принимает подключения только с самого сервера — так и должно быть, когда сайт на том же VPS. Если 0.0.0.0, [::] или звёздочка — база слушает все адреса, и от интернета её отделяет только фаервол.

PostgreSQL сразу после установки слушает только localhost, MySQL из пакетов Ubuntu — только 127.0.0.1. Но сам MySQL по умолчанию слушает все адреса, поэтому если он поставлен не из пакетов Ubuntu, проверьте это обязательно.

Лучше всего — приватная сеть

Если база на отдельном сервере или в облаке, подключайтесь к ней через приватную сеть провайдера: серверы видят друг друга, а из интернета базу не видно. У Beget облачная база сама попадает в приватную сеть аккаунта и по умолчанию доступна только из неё. У Timeweb Cloud публичный адрес базе можно не подключать или убрать позже. Для этого сервер сайта должен быть у того же провайдера.

Если без интернета не обойтись

Пускайте к базе только IP-адрес сервера сайта.

Облачная база. У Beget в настройках базы есть поле «Доступ по внешнему IP-адресу»: впишите туда адрес сайта и не пишите 0.0.0.0/0 — эта запись пускает всех. У Selectel публичный адрес подключается к каждому серверу кластера отдельно, а входящие подключения фильтрует облачный файрвол или группа безопасности: настройте их так, чтобы проходил только адрес сайта.

Свой PostgreSQL на VPS. В файле /etc/postgresql/ВЕРСИЯ/main/postgresql.conf укажите, какие адреса слушать:

listen_addresses = 'localhost,IP_БАЗЫ'

IP_БАЗЫ — адрес самого сервера базы, по которому к нему подключается сайт. Затем в файле pg_hba.conf из той же папки добавьте строку:

hostssl shop ivan IP_САЙТА/32 scram-sha-256

Она пускает пользователя ivan к базе shop только с адреса сайта, только по зашифрованному соединению и только по паролю. Перезапустите PostgreSQL:

sudo systemctl restart postgresql.service

Свой MySQL на VPS. В файле /etc/mysql/mysql.conf.d/mysqld.cnf замените строку bind-address:

bind-address = 127.0.0.1,IP_БАЗЫ

Перезапустите MySQL командой sudo systemctl restart mysql.service, войдите в него командой sudo mysql -u root и заведите пользователя, которому можно входить только с адреса сайта:

CREATE USER 'ivan'@'IP_САЙТА' IDENTIFIED WITH caching_sha2_password BY 'ПАРОЛЬ';
GRANT ALL PRIVILEGES ON shop.* TO 'ivan'@'IP_САЙТА';
exit

Не заводите пользователей с хостом '%': так MySQL пускает с любого адреса.

Фаервол. Откройте порт базы только для адреса сайта:

sudo ufw allow proto tcp from IP_САЙТА to any port 5432 comment 'db for site'

Для MySQL вместо 5432 укажите 3306. Затем проверьте правила:

sudo ufw status numbered

Правила, где у порта базы в последнем столбце стоит Anywhere, быть не должно: такое правило пускает всех. Удалите его командой sudo ufw delete НОМЕР. Как включить фаервол, если он ещё выключен, — в статье Как настроить VPS с нуля.

Реплики: когда они нужны

Реплика — копия базы на соседнем сервере, которая всё время повторяет изменения основного сервера, мастера. Если мастер сломается, его место займёт реплика, и база продолжит работать. У Selectel без реплик база при поломке недоступна, пока мастер не восстановят, хотя данные не теряются. С репликами провайдер обещает, что запись в базу будет работать 99,95 % времени, а чтение — 99,99 %.

Каждый сервер оплачивается отдельно: у Selectel база с одной репликой стоит 8 250,45 ₽ в месяц вместо 4 125,22 ₽, у Timeweb Cloud три сервера по самому простому тарифу — 2 690 ₽ вместо 1 110 ₽. У Selectel, когда реплика становится мастером, адрес мастера меняется — заранее прочитайте в документации провайдера, как сайту к нему подключаться.

Реплика не заменяет копию: если по ошибке удалить таблицу, она тут же пропадёт и на реплике. Небольшому сайту реплика обычно не нужна — хватит копий и проверенного восстановления.

На сайте есть партнёрские ссылки на Timeweb Cloud и Beget: если вы оплатите базу или сервер после перехода по ним, провайдер заплатит нам процент. Для вас цена от этого не меняется. У Selectel партнёрских ссылок у нас нет. Цены облачных баз сверены 2 октября 2026 года, цены VPS — 30 сентября.

Кому что

  • Сайт или бот на одном VPS — оставьте базу там же, не открывайте её наружу и настройте ежедневную выгрузку по статье Резервные копии сайта. Сервер подберите по рейтингу VPS.
  • Сайт на обычном хостинге — MySQL уже в тарифе, отдельный сервер не нужен.
  • Базу некому обслуживать — облачная база Beget: от 990 ₽ в месяц, копии в цене. Но только в Санкт-Петербурге.
  • Нужна база в Москве или самый дешёвый тариф — облачная база Timeweb Cloud: от 790 ₽ в месяц, с IP-адресом и копиями — от 1 110 ₽. Копии настраиваете и проверяете вы.
  • Нужны восстановление на любой момент и реплики — Selectel: от 4 125,22 ₽ в месяц, копии за 7 дней в цене.
  • База большая, и есть кому её администрировать — отдельный VPS: он на 210–380 ₽ в месяц дешевле облачной базы той же мощности, и все настройки ваши.
  • База для 1С — у неё свои требования к серверу, они разобраны в статье Сервер для 1С.

Частые ошибки

  1. Открывать базу всему интернету. Правило фаервола без адреса, запись 0.0.0.0/0 в списке доступа или пользователь MySQL с хостом '%' пускают к базе любого, кто подберёт пароль.
  2. Подключать сайт к базе под root. Заведите сайту отдельного пользователя с правами только на его базу и с длинным случайным паролем.
  3. Надеяться только на копии провайдера. У Timeweb Cloud копии — ваша забота, у Beget между копиями может пройти до трёх дней, а у Selectel копию не скачать. Делайте и свою выгрузку.
  4. Сравнивать облачные базы по цене тарифа. У Timeweb Cloud к тарифу добавятся IP-адрес и копии, а калькулятор сначала считает оплату за год.
  5. Брать базу «на вырост». У Timeweb Cloud и Beget конфигурацию можно только увеличить.
  6. Отдавать базе почти всю память на общем VPS. Советы про 25 % и 80 % памяти — для сервера только под базу. Если на том же сервере сайт, память нужна и ему.
  7. Путать реплику с копией. Удалённая по ошибке таблица пропадёт и на реплике.
  8. Забыть про новый адрес после восстановления. У Selectel база восстанавливается в новый кластер, и адреса в настройках сайта нужно поменять.
  9. Выбирать версию наспех. У Timeweb Cloud тип базы и её версию после создания не поменять, а pg_dump не выгрузит базу новее себя.

Что почитать дальше

Цены и условия облачных баз — по калькуляторам и документации Timeweb Cloud, Beget и Selectel на 2 октября 2026 года, цены VPS — на 30 сентября. Настройки MySQL и PostgreSQL — по документации MySQL 8.4 и PostgreSQL 18, справке Ubuntu Server и файлам настроек из пакетов Ubuntu 24.04 и 26.04, команды фаервола — по справке ufw. Перед оплатой откройте калькулятор провайдера: если цены разошлись с нашими, верьте провайдеру.

Проверено и обновлено: 02.10.2026