Есть момент, когда managed PostgreSQL перестаёт быть удобным: нужно расширение, которого нет в тарифе, хочется увидеть реальный query plan и настроить work_mem, нужен superuser. Когда хочешь владеть Postgres — конфигом, версией, расширениями, графиком бэкапов — VPS с полным root это честный ответ. Это PostgreSQL-специфичная настройка; для более широкой картины «хостить базу самому» (Postgres vs Redis, где общая машина не годится) смотри общий use-case про базу данных.
Зачем хостить PostgreSQL самому
На своей машине получаешь то, что managed-тарифы выдают по норме:
- Целый
postgresql.conf—shared_buffers,work_mem,max_connections, WAL-настройки, под твою нагрузку, а не дефолт вендора. - Любое расширение.
pgvectorдля эмбеддингов,PostGISдля геоданных,TimescaleDBдля временных рядов,pg_cron,pg_stat_statements— ставь что нужно. Именно тут managed-тариф чаще всего говорит нет. - Своя мажорная версия, обновляемая по твоему графику, не провайдера.
- Superuser и OS под ним — перемести data-директорию, настрой ядро, подними streaming-репликацию на вторую машину.
Если pgvector — причина, по которой ты здесь: Postgres-плюс-pgvector это полноценное векторное хранилище на одной машине — тот же строительный блок за self-hosted RAG-стеком и памятью агента.
Настрой (Ubuntu 24.04, Docker)
# docker-compose.yml — PostgreSQL 16 (+ pgvector via the pgvector image)
services:
db:
image: pgvector/pgvector:pg16
restart: always
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: change-me-strong
POSTGRES_DB: app
command: ["postgres", "-c", "shared_buffers=512MB", "-c", "work_mem=32MB"]
volumes: ["/srv/pg:/var/lib/postgresql/data"]
ports: ["127.0.0.1:5432:5432"] # localhost only; see below to expose safely
docker compose up -d
docker compose exec db psql -U app -c "CREATE EXTENSION IF NOT EXISTS vector;"
Привязанный к 127.0.0.1, он обслуживает приложение на той же машине, ничего не выставляя. Пустить другие серверы — следующий раздел.
Пустить другие серверы — безопасно
Как только другой машине нужна база, меняются две вещи:
- Стабильный, маршрутизируемый адрес — план с dedicated IPv4 (Small-IP $16, Medium-IP $20). NAT-планы делят исходящий IP, годится для исходящего, но не для роли базы, в которую набираются другие.
- Жёстко firewall-ни. Открой 5432 только конкретным клиентским IP, никогда
0.0.0.0/0, и требуй TLS. Открытый Postgres-порт в публичном интернете находят за минуты — закрой через UFW.
Бэкапы — твоя работа
Хостинг значит, что бэкапы на тебе, и правило: делай их до того, как понадобятся. pg_dump по крону для логических бэкапов или WAL-архивирование для point-in-time recovery на всём, что важно. Отгружай дампы с машины и хоть раз протестируй восстановление — бэкап, который ты никогда не восстанавливал, это надежда, а не бэкап. Managed-backups add-on доступен, если не хочешь возиться сам.
Почему EQVPS для PostgreSQL
- Полный root, superuser, твой конфиг — от $8/мес, NVMe (RAID1), что важно, когда база и её WAL пишут одновременно.
- Без KYC, оплата криптой. Имейл для регистрации, USDC/USDT для оплаты.
- ЕС (Германия, Финляндия), root за ~60 секунд. Приноси схему и вперёд.
Общий use-case про базу (обзор Postgres/Redis) → · Self-hosted RAG на масштабе →
Комментарии
Пока нет комментариев. Будьте первым.