Bester VPS für PostgreSQL 2026: Eigene Datenbank selbst hosten
REVIEW 10 min read fordnox

Bester VPS für PostgreSQL 2026: Eigene Datenbank selbst hosten

Finde den besten VPS für das Hosting von PostgreSQL. Vergleiche Spezifikationen, optimiere die Leistung und betreibe deinen eigenen Datenbankserver für weniger als bei verwalteten Diensten.


Bester VPS für PostgreSQL 2026

PostgreSQL ist die fortschrittlichste Open-Source-Datenbank der Welt. Hoste sie selbst auf einem VPS und spare dir die 50–500 $/Monat für verwaltete Datenbankdienste. Falls MySQL eher dein Stil ist, schau dir unseren MySQL-VPS-Leitfaden an.

Warum PostgreSQL selbst hosten?

FaktorVerwaltet (AWS RDS)Selbst gehosteter VPS
2 vCPU, 4GB RAM100+ $/Mo~7 $/Mo
4 vCPU, 8GB RAM200+ $/Mo~15 $/Mo
KontrolleEingeschränktVollständig
ErweiterungenEinigeAlle
WartungAutomatischManuell

Selbst hosten kostet 90 % weniger bei vergleichbaren Spezifikationen.

VPS-Anforderungen

Die PostgreSQL-Leistung hängt ab von:

RAM (Am wichtigsten)

Speicher (Am zweitwichtigsten)

CPU

Netzwerk

Bester VPS für PostgreSQL

1. Hetzner CX21 (Bestes Preis-Leistungs-Verhältnis)

5,39 €/Mo | 2 vCPU, 4GB RAM, 40GB NVMe

AMD EPYC CPUs bieten hervorragende Einzelkern-Leistung. NVMe-Speicher bewältigt Datenbank-I/O zuverlässig.

Ideal für: Kleine bis mittlere Anwendungen

2. Hostinger KVM2 (Bestes RAM/Dollar-Verhältnis)

5,99 $/Mo | 2 vCPU, 8GB RAM, 100GB NVMe

8GB RAM bedeutet mehr Daten im Arbeitsspeicher. Ideal für Cache-intensive Workloads.

3. Hetzner CX31 (Bester für Wachstum)

10,49 €/Mo | 2 vCPU, 8GB RAM, 80GB NVMe

8GB RAM mit schnellem NVMe. Hetzners Netzwerk bewältigt Replikationsverkehr zuverlässig.

4. Vultr High Frequency (Beste Leistung)

48 $/Mo | 4 vCPU (3GHz+), 16GB RAM, 256GB NVMe

Hohe Taktfrequenz = schnellere Einzelabfrage-Leistung. Lohnt sich für latenzempfindliche Anwendungen.

PostgreSQL-Installationsanleitung

Schritt 1: VPS erstellen

Ubuntu 22.04, 4GB+ RAM. Per SSH verbinden:

ssh root@your-vps-ip

Schritt 2: PostgreSQL installieren

# Add PostgreSQL repository
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Install
sudo apt update
sudo apt install -y postgresql-16

# Start service
sudo systemctl enable postgresql
sudo systemctl start postgresql

Schritt 3: Datenbank und Benutzer erstellen

sudo -u postgres psql
CREATE USER myapp WITH PASSWORD 'secure-password';
CREATE DATABASE myapp_production OWNER myapp;
GRANT ALL PRIVILEGES ON DATABASE myapp_production TO myapp;
\q

Schritt 4: Fernzugriff konfigurieren

Bearbeite /etc/postgresql/16/main/postgresql.conf:

listen_addresses = '*'

Bearbeite /etc/postgresql/16/main/pg_hba.conf:

# Allow connections from app servers
host    myapp_production    myapp    10.0.0.0/8    scram-sha-256
# Or specific IP
host    myapp_production    myapp    1.2.3.4/32    scram-sha-256

Neustart:

sudo systemctl restart postgresql

Schritt 5: Firewall

ufw allow from 10.0.0.0/8 to any port 5432
# Or specific IP
ufw allow from 1.2.3.4 to any port 5432

Leistungsoptimierung

Speicherkonfiguration

Bearbeite /etc/postgresql/16/main/postgresql.conf:

# For 4GB RAM VPS
shared_buffers = 1GB                 # 25% of RAM
effective_cache_size = 3GB           # 75% of RAM
maintenance_work_mem = 256MB
work_mem = 16MB                      # Per-operation

# For 8GB RAM VPS
shared_buffers = 2GB
effective_cache_size = 6GB
maintenance_work_mem = 512MB
work_mem = 32MB

Schreibleistung

wal_buffers = 64MB
checkpoint_completion_target = 0.9
checkpoint_timeout = 15min
max_wal_size = 4GB
min_wal_size = 1GB

Abfrageleistung

random_page_cost = 1.1              # For SSD
effective_io_concurrency = 200       # For SSD
default_statistics_target = 100

Connection Pooling

Verwende PgBouncer für viele Verbindungen:

apt install pgbouncer

# /etc/pgbouncer/pgbouncer.ini
[databases]
myapp = host=127.0.0.1 dbname=myapp_production

[pgbouncer]
listen_addr = *
listen_port = 6432
auth_type = scram-sha-256
auth_file = /etc/pgbouncer/userlist.txt
pool_mode = transaction
max_client_conn = 1000
default_pool_size = 20

Deine Anwendung verbindet sich mit Port 6432 statt 5432.

Backup-Strategie

Kontinuierliche Archivierung (WAL)

In postgresql.conf aktivieren:

archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/wal_archive/%f'
wal_level = replica

Tägliche Backups

#!/bin/bash
# /home/postgres/backup.sh
DATE=$(date +%Y%m%d)
BACKUP_DIR=/var/backups/postgresql

pg_dump -Fc myapp_production > $BACKUP_DIR/myapp-$DATE.dump

# Keep 7 days
find $BACKUP_DIR -mtime +7 -delete

# Upload to S3
aws s3 cp $BACKUP_DIR/myapp-$DATE.dump s3://my-backups/postgres/

Cron:

0 3 * * * /home/postgres/backup.sh

Point-in-Time Recovery

Mit aktivierter WAL-Archivierung:

# Restore base backup
pg_restore -d myapp_production backup.dump

# Replay WAL to specific time
recovery_target_time = '2026-02-08 14:30:00'

Überwachung

Integrierte Statistiken

-- Active connections
SELECT * FROM pg_stat_activity;

-- Table sizes
SELECT pg_size_pretty(pg_total_relation_size('table_name'));

-- Slow queries
SELECT * FROM pg_stat_statements ORDER BY mean_time DESC LIMIT 10;

pgAdmin

docker run -d \
  -p 8080:80 \
  -e PGADMIN_DEFAULT_EMAIL=admin@admin.com \
  -e PGADMIN_DEFAULT_PASSWORD=admin \
  dpage/pgadmin4

Prometheus + Grafana

# postgres_exporter
docker run -d \
  -p 9187:9187 \
  -e DATA_SOURCE_NAME="postgresql://postgres:password@localhost:5432/postgres?sslmode=disable" \
  prometheuscommunity/postgres-exporter

Replikation einrichten

Streaming-Replikation

Auf dem Primärserver postgresql.conf bearbeiten:

wal_level = replica
max_wal_senders = 3
wal_keep_size = 1GB

Auf dem Replikat:

pg_basebackup -h primary-ip -D /var/lib/postgresql/16/main -U replicator -Fp -Xs -P -R

Das Replikat folgt automatisch dem Primärserver.

Logische Replikation

Für selektive Tabellenreplikation:

-- On primary
CREATE PUBLICATION my_pub FOR TABLE users, orders;

-- On replica
CREATE SUBSCRIPTION my_sub
  CONNECTION 'host=primary-ip dbname=myapp user=replicator'
  PUBLICATION my_pub;

Gängige Erweiterungen

-- Full-text search
CREATE EXTENSION pg_trgm;

-- UUID generation
CREATE EXTENSION "uuid-ossp";

-- JSON operations
-- Built-in, no extension needed

-- Geographic data
CREATE EXTENSION postgis;

-- Query statistics
CREATE EXTENSION pg_stat_statements;

-- Cron jobs
CREATE EXTENSION pg_cron;

Sicherheitshärtung

SSL-Verbindungen (siehe auch unseren VPS-Sicherheitsleitfaden)

# Generate certificate
openssl req -new -x509 -days 365 -nodes -text \
  -out /etc/postgresql/16/main/server.crt \
  -keyout /etc/postgresql/16/main/server.key

In postgresql.conf:

ssl = on
ssl_cert_file = '/etc/postgresql/16/main/server.crt'
ssl_key_file = '/etc/postgresql/16/main/server.key'

In pg_hba.conf:

hostssl all all 0.0.0.0/0 scram-sha-256

Starke Passwörter

Verwende scram-sha-256 (Standard ab PostgreSQL 14+):

SET password_encryption = 'scram-sha-256';
ALTER USER myapp PASSWORD 'new-secure-password';

Verbindungen einschränken

# Only allow from app servers
host myapp_production myapp 10.0.0.0/8 scram-sha-256
host all all 0.0.0.0/0 reject

Selbst gehostet vs. Verwaltet

FaktorSelbst gehostetRDS/Verwaltet
Kosten5–20 $/Mo100–500 $/Mo
Einrichtung1–2 Stunden5 Minuten
BackupsManuelle EinrichtungAutomatisch
UpdatesManuellAutomatisch
ErweiterungenAlleEingeschränkt
FeinabstimmungVolle KontrolleEingeschränkt
SupportCommunityAnbieter

Wähle Selbst-Hosting, wenn:

Wähle verwaltete Dienste, wenn:

Leitfaden zur Ressourcendimensionierung

BenutzerDatenmengeVPS-SpezifikationenAnbieter
<1K<5GB2 vCPU, 4GBHetzner CX21
1–10K5–50GB2 vCPU, 8GBHetzner CX31
10–100K50–200GB4 vCPU, 16GBHetzner CX41
>100K>200GB8+ vCPU, 32GB+Dediziert

FAQ

Ist PostgreSQL schwer zu verwalten?

Mittelmäßig. Die Ersteinrichtung dauert 1–2 Stunden. Laufend: Backups, Updates, Überwachung. Plane 2–4 Stunden/Monat ein.

Wie aktualisiere ich PostgreSQL?

Verwende pg_upgrade oder pg_dump/restore. Plane 30–60 Minuten Ausfallzeit ein.

Kann ich PostgreSQL und meine App auf demselben VPS betreiben?

Ja, für kleine Projekte. Separate Server für den Produktionsbetrieb im größeren Maßstab.

Was ist mit Hochverfügbarkeit?

Verwende Streaming-Replikation mit automatischem Failover (Patroni) für HA-Setups.

Sollte ich Docker verwenden?

Für die Entwicklung: ja. Für die Produktion: eine native Installation ist einfacher und performanter.

Empfohlene Konfiguration

AnwendungsfallVPSMonatliche Kosten
EntwicklungHetzner CX113,79 €
Kleine ProduktionHetzner CX215,39 €
Mittlere ProduktionHetzner CX3110,49 €
Hohe LeistungVultr HF48 $

Starte mit Hetzner CX21 für 5,39 €/Monat — das ist 95 % günstiger als ein vergleichbarer RDS-Dienst.

~/best-vps-for-postgresql/get-started

Ready to get started?

Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.

Get Hostinger VPS — $4.99/mo

// up to 75% off + free domain included

// related topics

bester vps für postgresql postgresql hosting selbst gehostetes postgres postgres vps datenbankserver

// related guides

Andrius Putna

Andrius Putna

I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.

// last updated: February 8, 2026. Disclosure: This article may contain affiliate links.