Ada momen ketika PostgreSQL terkelola berhenti nyaman: Anda ingin ekstensi yang tidak ditawarkan tier itu, Anda ingin melihat query plan sebenarnya dan menyetel work_mem, Anda ingin superuser. Ketika Anda ingin memiliki Postgres — konfigurasi, versi, ekstensi, jadwal backup — VPS dengan root penuh adalah jawaban jujurnya. Ini penyiapan khusus PostgreSQL; untuk gambaran "self-host database" yang lebih luas (Postgres vs Redis, di mana mesin bersama salah), lihat use-case database umum.
Mengapa self-host PostgreSQL
Di mesin Anda sendiri, Anda mendapatkan apa yang dijatah tier terkelola:
- Seluruh
postgresql.conf—shared_buffers,work_mem,max_connections, pengaturan WAL, disetel ke beban kerja Anda, bukan default vendor. - Ekstensi apa pun.
pgvectoruntuk embedding,PostGISuntuk geospasial,TimescaleDBuntuk time series,pg_cron,pg_stat_statements— pasang yang Anda butuhkan. Di sinilah tier terkelola paling sering berkata tidak. - Versi mayor Anda, di-upgrade sesuai jadwal Anda, bukan penyedia.
- Superuser dan OS di bawahnya — pindahkan direktori data, setel kernel, jalankan replikasi streaming ke mesin kedua.
Jika pgvector adalah alasan Anda di sini, perhatikan bahwa Postgres-plus-pgvector adalah vector store lengkap di satu mesin — blok bangunan yang sama di balik tumpukan RAG self-host dan memori agen.
Siapkan (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;"
Terikat ke 127.0.0.1, ia melayani aplikasi di mesin yang sama tanpa mengekspos apa pun. Untuk mengizinkan server lain masuk, itu bagian berikutnya.
Membiarkan server lain terhubung — dengan aman
Begitu mesin lain butuh database, dua hal berubah:
- Alamat yang stabil dan dapat dirutekan — sebuah plan IPv4 khusus (Small-IP $16, Medium-IP $20). Plan NAT berbagi satu IP keluar, baik untuk keluar tetapi tidak untuk menjadi database yang dituju orang lain.
- Firewall dengan ketat. Buka 5432 hanya untuk IP klien tertentu, jangan pernah
0.0.0.0/0, dan wajibkan TLS. Port Postgres terbuka di internet publik ditemukan dalam hitungan menit — kunci dengan firewall UFW.
Backup adalah tugas Anda
Self-host berarti backup ada pada Anda, dan aturannya: lakukan sebelum Anda membutuhkannya. pg_dump di cron untuk backup logis, atau pengarsipan WAL untuk pemulihan point-in-time pada apa pun yang Anda pedulikan. Kirim dump keluar dari mesin, dan uji sebuah pemulihan setidaknya sekali — backup yang belum pernah Anda pulihkan adalah harapan, bukan backup. Add-on backup terkelola tersedia jika Anda lebih suka tidak menjalankannya sendiri.
Mengapa EQVPS untuk PostgreSQL
- Root penuh, superuser, konfigurasi Anda — mulai $8/bln, NVMe (RAID1) yang penting begitu database dan WAL-nya menulis bersamaan.
- Tanpa KYC, pembayaran kripto. Email untuk mendaftar, USDC/USDT untuk membayar.
- UE (Jerman, Finlandia), root dalam ~60 detik. Bawa skema Anda dan lanjutkan.
Use-case database umum (ikhtisar Postgres/Redis) → · RAG self-host dalam skala →
Komentar
Belum ada komentar. Jadilah yang pertama.