Има момент, в който управляваният PostgreSQL спира да бъде удобен: искате разширение, което нивото не предлага, искате да видите реалния план за заявка и да настроите work_mem, искате суперпотребител. Когато искате да притежавате Postgres — конфигурацията, версията, разширенията, графика за резервни копия — VPS с пълен root е честният отговор. Това е специфичната за PostgreSQL настройка; за по-широката картина „самостоятелно хостване на база данни" (Postgres срещу Redis, къде споделена машина е грешна) вижте общия случай на употреба за база данни.
Защо да хоствате PostgreSQL сами
На собствената ви машина получавате това, което управляваните нива дават на дажби:
- Целият
postgresql.conf—shared_buffers,work_mem,max_connections, WAL настройки, настроени към вашето натоварване, не по подразбиране на доставчика. - Всяко разширение.
pgvectorза embeddings,PostGISза геопространствени данни,TimescaleDBза времеви редове,pg_cron,pg_stat_statements— инсталирайте каквото ви трябва. Точно тук управляваното ниво най-често казва не. - Вашата главна версия, надградена по вашия график, не на доставчика.
- Суперпотребител и ОС отдолу — преместете директорията с данни, настройте ядрото, пуснете стрийминг репликация към втора машина.
Ако pgvector е причината да сте тук, отбележете, че Postgres плюс pgvector е пълноценно векторно хранилище на една машина — същият градивен блок зад самостоятелно хостван 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, той обслужва приложение на същата машина, без да излага нищо. За да пуснете други сървъри вътре, това е следващият раздел.
Да позволите на други сървъри да се свързват — сигурно
В момента, в който друга машина се нуждае от базата данни, две неща се променят:
- Стабилен, маршрутизируем адрес — план с отделен IPv4 (Small-IP $16, Medium-IP $20). NAT плановете споделят изходящ IP, добър за изходящ трафик, но не и за това да сте база данни, към която други се свързват.
- Твърд файъруол. Отворете 5432 само за конкретните клиентски IP, никога
0.0.0.0/0, и изисквайте TLS. Отворен Postgres порт в публичния интернет се намира за минути — заключете го с файъруол UFW.
Резервните копия са ваша работа
Самостоятелното хостване означава, че резервните копия са на вас, и правилото е: правете ги, преди да ви потрябват. pg_dump на cron за логически резервни копия, или архивиране на WAL за възстановяване до точка във времето за всичко, за което ви е грижа. Изпращайте дъмповете извън машината и тествайте възстановяване поне веднъж — резервно копие, което никога не сте възстановявали, е надежда, не резервно копие. Добавка за управлявани резервни копия е налична, ако предпочитате да не го изпълнявате сами.
Защо EQVPS за PostgreSQL
- Пълен root, суперпотребител, вашата конфигурация — от $8/мес, NVMe (RAID1), който има значение веднага щом база данни и нейният WAL пишат едновременно.
- Без KYC, крипто плащане. Имейл за регистрация, USDC/USDT за плащане.
- ЕС (Германия, Финландия), root за ~60 секунди. Донесете схемата си и тръгвайте.
Общ случай на употреба за база данни (преглед Postgres/Redis) → · Самостоятелно хостван RAG в мащаб →
Коментари
Още няма коментари. Бъди първият.