Сервер для базы данных: свой VPS или облачная база
Небольшому сайту или боту обычно хватает базы на том же VPS, где работает он сам: платить за неё отдельно не нужно, и открывать её наружу не приходится. Отдельный сервер или облачная база нужны, когда базе тесно, к ней ходят несколько серверов или следить за ней некому. Ниже — сколько стоят облачные базы MySQL и PostgreSQL у Timeweb Cloud, Beget и Selectel, что в них входит и как не открыть базу всему интернету.
Содержание 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 Cloud | 1 | 2 ГБ | 20 ГБ | 790 ₽ |
| Timeweb Cloud | 2 | 4 ГБ | 40 ГБ | 1 580 ₽ |
| Timeweb Cloud | 4 | 8 ГБ | 80 ГБ | 3 160 ₽ |
| Beget | 2 | 2 ГБ | 20 ГБ | 990 ₽ |
| Beget | 2 | 4 ГБ | 40 ГБ | 1 350 ₽ |
| Beget | 4 | 8 ГБ | 80 ГБ | 3 060 ₽ |
| Selectel | 2 | 4 ГБ | 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 ГБ, без публичного IPv4 | 360 ₽ |
| Beget: то же, VPS с IPv4 | 1 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 Cloud | Beget | Selectel | |
|---|---|---|---|
| Сервер под базой и установка СУБД | провайдер | провайдер | провайдер |
| Резервные копии и восстановление | вы | провайдер | провайдер |
| Подключение к базе и доступ к ней | вы | вы | вы |
Так ответственность делят сами провайдеры — в таблицах на страницах своих облачных баз. Как сайт работает с базой — какие запросы делает, какие таблицы и индексы заводит, — всегда ваша забота: 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, когда реплика становится мастером, адрес мастера меняется — заранее прочитайте в документации провайдера, как сайту к нему подключаться.
Реплика не заменяет копию: если по ошибке удалить таблицу, она тут же пропадёт и на реплике. Небольшому сайту реплика обычно не нужна — хватит копий и проверенного восстановления.
Кому что
- Сайт или бот на одном VPS — оставьте базу там же, не открывайте её наружу и настройте ежедневную выгрузку по статье Резервные копии сайта. Сервер подберите по рейтингу VPS.
- Сайт на обычном хостинге — MySQL уже в тарифе, отдельный сервер не нужен.
- Базу некому обслуживать — облачная база Beget: от 990 ₽ в месяц, копии в цене. Но только в Санкт-Петербурге.
- Нужна база в Москве или самый дешёвый тариф — облачная база Timeweb Cloud: от 790 ₽ в месяц, с IP-адресом и копиями — от 1 110 ₽. Копии настраиваете и проверяете вы.
- Нужны восстановление на любой момент и реплики — Selectel: от 4 125,22 ₽ в месяц, копии за 7 дней в цене.
- База большая, и есть кому её администрировать — отдельный VPS: он на 210–380 ₽ в месяц дешевле облачной базы той же мощности, и все настройки ваши.
- База для 1С — у неё свои требования к серверу, они разобраны в статье Сервер для 1С.
Частые ошибки
- Открывать базу всему интернету. Правило фаервола без адреса, запись 0.0.0.0/0 в списке доступа или пользователь MySQL с хостом
'%'пускают к базе любого, кто подберёт пароль. - Подключать сайт к базе под root. Заведите сайту отдельного пользователя с правами только на его базу и с длинным случайным паролем.
- Надеяться только на копии провайдера. У Timeweb Cloud копии — ваша забота, у Beget между копиями может пройти до трёх дней, а у Selectel копию не скачать. Делайте и свою выгрузку.
- Сравнивать облачные базы по цене тарифа. У Timeweb Cloud к тарифу добавятся IP-адрес и копии, а калькулятор сначала считает оплату за год.
- Брать базу «на вырост». У Timeweb Cloud и Beget конфигурацию можно только увеличить.
- Отдавать базе почти всю память на общем VPS. Советы про 25 % и 80 % памяти — для сервера только под базу. Если на том же сервере сайт, память нужна и ему.
- Путать реплику с копией. Удалённая по ошибке таблица пропадёт и на реплике.
- Забыть про новый адрес после восстановления. У Selectel база восстанавливается в новый кластер, и адреса в настройках сайта нужно поменять.
- Выбирать версию наспех. У Timeweb Cloud тип базы и её версию после создания не поменять, а pg_dump не выгрузит базу новее себя.
Что почитать дальше
- Чем VPS отличается от обычного хостинга — когда хватит хостинга с MySQL в тарифе.
- Рейтинг VPS 2026 — цены серверов, если базу держать на своём.
- Как настроить VPS с нуля — пользователь, ключ и фаервол на новом сервере.
- Резервные копии сайта — скрипт ежедневной выгрузки базы и где хранить копии.
- Как перенести сайт на другой хостинг без простоя — как выгрузить базу и загрузить её на новом месте.
- Облачный сервер — чем облако отличается от VPS и что в нём оплачивается отдельно.
- Как разместить сайт на VPS: nginx с нуля — сайт и PHP на том же сервере, что и база.
- VPS для телеграм-бота — сколько памяти нужно боту с базой.
Проверено и обновлено: 02.10.2026