Есть конкретный момент, когда managed-база перестаёт быть удобством и становится стеной. Вам нужно расширение, которого нет в тарифе. Вы хотите видеть реальный план запроса и настроить work_mem. Вам нужен суперюзер. Managed-сервис — отличный дефолт ровно до момента, когда нужно владеть этим самому, — и тогда честный ответ это VPS с полным root.
Эта страница про то, как правильно поднять свой PostgreSQL или Redis и внятно сказать, где общая машина — верный выбор, а где нет.
Что базе данных реально нужно
Базы данных заботятся о двух вещах, до которых игровому серверу дела нет: память под рабочий набор и дисковый I/O. Примерная картина:
- Одно приложение — инстанс Postgres (или Redis) плюс бэкенд-сервис. Рабочий набор обычно 1.7-2 ГБ. Small ($8) тянет без драмы.
- Несколько приложений или реальная продакшн-конкуренция — больше соединений, крупнее кеши, фоновые задачи. Medium ($12) даёт запас.
- До базы должны дотягиваться другие машины — нужен стабильный маршрутизируемый адрес, то есть тариф с выделенным IPv4 (Small-IP $16 и выше). Об этом ниже.
Redis ещё легче — он упирается в память, так что подберите тариф под датасет плюс накладные, и всё. Postgres — тот, кто вознаграждает за небольшой тюнинг.
Настоящая причина self-host: контроль
Вот где VPS оправдывает своё место. На своей машине вам достаётся:
- Весь
postgresql.conf—shared_buffers,work_mem,max_connections, настройки WAL, всё, под вашу нагрузку, а не под дефолты вендора. - Любое расширение.
pgvectorдля эмбеддингов и семантического поиска,PostGISдля геоданных,TimescaleDBдля временных рядов,pg_cron,pg_stat_statements— ставьте, что нужно. Managed-тарифы часто ограничивают список расширений или прячут его за тариф повыше. - Суперюзер и ОС под ним. Можете перенести каталог данных, тюнить ядро, гонять
pg_dumpпо своему расписанию и поднять потоковую репликацию на другую машину, если захотите.
Если ничего из этого вам не важно — managed-база это правда нормально, и стоит взять её. Эта страница для случая, когда важно.
Где общая машина — не тот инструмент
Прямо: общий VPS с vCPU не построен под тяжёлый OLTP — сотни транзакций в секунду с критичными к задержке записями. Такая нагрузка живёт или умирает на гарантированном дисковом I/O и ровной частоте, а общие тарифы ни того, ни другого не обещают. Если это про вас — вам нужно выделенное железо, и мы скажем это сейчас, а не будем смотреть, как ваш p99 позорит нас обоих.
Для куда более частого случая — база за одним приложением, внутренний инструмент, аналитическое хранилище, кеш — общий тариф ровно то, что надо.
Бэкапы не опциональны
Self-host значит бэкапы — ваша работа, и единственное правило: делайте их до того, как понадобятся. Для Postgres — pg_dump по крону для логических бэкапов или архивация WAL для point-in-time восстановления всего, что вам реально дорого. Отправляйте дампы с машины — в объектное хранилище или на другой сервер — чтобы мёртвый диск не унёс бэкапы с собой. Проверьте восстановление хотя бы раз. Бэкап, который вы ни разу не восстанавливали, — это надежда, а не бэкап.
Как дать другим серверам подключиться
Если база обслуживает только приложение на той же машине — привяжите её к localhost, и всё, нечего открывать. Как только внутрь нужно другой машине, меняются две вещи:
- Нужен стабильный маршрутизируемый адрес — это тариф с выделенным IPv4 (Small-IP $16, Medium-IP $20). NAT-тарифы делят адрес — это нормально для исходящего, но не для роли базы, к которой звонятся другие серверы.
- Закрываете фаерволом жёстко. Открывайте 5432 (или 6379) только конкретным IP, которым надо, никогда не
0.0.0.0/0, и требуйте TLS. Открытый порт Postgres в публичном интернете находят за минуты.
Выбор тарифа
| Конфигурация | Тариф |
|---|---|
| БД за одним приложением, только localhost | Small ($8) |
| Несколько приложений / продакшн-конкуренция | Medium ($12) |
| Другие серверы должны подключаться | Small-IP ($16) / Medium-IP ($20) |
| Тяжёлый OLTP, сотни TPS | выделенное железо, не общий VPS |
Большинство своих баз стартуют на Small и дорастают до Medium или тарифа с выделенным IP по мере добавления приложений или внешних клиентов.
Почему здесь
Полный root значит это ваша база до самого низа — каждая строка конфига, каждое расширение, ваше расписание бэкапов, никакой тариф не решает, что вам можно ставить. Оплата криптой (USDC или USDT на Base, Ethereum или Polygon), без KYC, без документов. Root примерно за 60 секунд после оплаты, а Postgres может принимать соединения ещё через пару минут.
Честное резюме: self-host, когда хотите контроль — расширения, тюнинг, суперюзер — и когда нагрузка умеренная. Для базы небольшого-среднего приложения общий тариф — верный инструмент. Для сотен TPS критичного к задержке OLTP — нет, и мы это скажем. Готовы? Выберите тариф.