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
- Managed DB (empfohlen): Wähle im Dashboard Services → Neue Datenbank → Postgres / MySQL. Gib Version, Größe und Backup-Intervall an.
-
Self-hosted auf VM:
Erstelle eine VM (Template: Ubuntu) und ein separates Volume für
/var/lib/postgresqloder/var/lib/mysql. - 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/mysqldumpfü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
- Exportiere Daten (pg_dump / mysqldump) oder verwende logical replication.
- Teste Migrationen in einer Staging-Umgebung.
- 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.