Databases

Databases

In diesem Kapitel findest du Anleitungen und Best Practices für relationale und NoSQL-Datenbanken auf YourCloud: Provisioning, Backup, Performance-Tuning, Verbindungssicherheit und Migration.

Übersicht

YourCloud unterstützt verwaltete Datenbanken (Postgres, MySQL/MariaDB) sowie das Bereitstellen eigener DB-Server auf VMs. Für Persistenz empfehlen wir Block-Volumes mit regelmäßigen Snapshots und Offsite-Backups.

1. Datenbank provisionieren

  1. Managed DB (empfohlen): Wähle im Dashboard Services → Neue Datenbank → Postgres / MySQL. Gib Version, Größe und Backup-Intervall an.
  2. Self-hosted auf VM: Erstelle eine VM (Template: Ubuntu) und ein separates Volume für /var/lib/postgresql oder /var/lib/mysql.
  3. Netzwerk: Reserviere eine Private IP und (optional) eine statische Public IP. Konfiguriere Firewall-Regeln (nur notwendige Ports).

2. Verbindung & Authentifizierung

Verwende TLS und starke Passwörter / Key-basierte Auth für DB-Zugänge.

Beispiel: Postgres-Connection-String

postgresql://username:password@db.internal.yourcloud:5432/mydatabase

Beispiel: MySQL-Connection

mysql://user:password@db.internal.yourcloud:3306/mydb

3. Backups & Snapshots

  • Snapshots: Volume-Snapshots sind schnell und ideal für Punkt-in-Zeit-Recovery.
  • Logical Backups: Verwende pg_dump / mysqldump für portable Exporte.
  • Retention: Standard: 7 Tage, empfohlen: tägliche Backups + wöchentliche Archivierung (30+ Tage).
  • Offsite: Exportiere kritische Backups in einen Objekt-Storage oder externen S3-kompatiblen Bucket.

4. Performance & Tuning

Tipps zur Optimierung:

  • Nutze dedizierte Volumes auf SSD-Tier für niedrige Latenz.
  • Provisioniere ausreichend RAM — Datenbanken sind speicherintensiv.
  • Setze Connection Pooling (z. B. PgBouncer, ProxySQL) ein, um Verbindungs-Overhead zu reduzieren.
  • Indexe Felder sinnvoll und überwache langsame Queries (Slow Query Log).
  • Für hohe I/O-Last horizontale Sharding- oder Replikationsstrategien planen.

5. Sicherheit

  • Always-on TLS für Verbindungen (Client ↔ DB).
  • IP-Whitelist für Admin-/App-Zugänge.
  • Regelmäßiges Rotieren von Credentials & Nutzung von Secrets-Manager.
  • Aktualisiere DB-Versionen regelmäßig, um Sicherheitsfixes zu erhalten.

6. High-Availability & Replication

Für Produktions-Workloads empfehlen wir Replikation (Master/Replica), automatische Failover und Read-Replicas für skalierbare Lese-Lasten.

  • Postgres Streaming Replication
  • MySQL Group Replication / Galera
  • Automatisches Failover mit Patroni oder Konsul-basierten Lösungen

7. Migration & Upgrade

  1. Exportiere Daten (pg_dump / mysqldump) oder verwende logical replication.
  2. Teste Migrationen in einer Staging-Umgebung.
  3. Beim Major-Upgrade: Plane Rollback-Strategie & vollständige Backups ein.

8. Praktische Beispiele

Postgres Backup (cron)

# daily pg_dump
0 2 * * * pg_dump -U dbuser -h db.internal.yourcloud mydb | gzip > /backups/mydb-$(date +\%F).sql.gz

MySQL Restore

# restore
gunzip < mydb-2025-11-01.sql.gz | mysql -u root -p mydb

9. Monitoring & Alerts

  • Wichtige Metriken: CPU, Memory, I/O, Connections, Query Latency.
  • Setze Alerts bei hoher Latenz, vielen Verbindungen oder vollem Disk-Usage.
  • Nutze Prometheus + Grafana oder integrierte Monitoring-Tools.

Weiterführende Links