AWS S3 zu Hetzner Object Storage migrieren – rclone & MinIO Client Guide

AWS S3 zu teuer? Egress-Kosten explodieren? Wir unterstützen Sie bei der kompletten Migration zu Hetzner Object Storage – von der Analyse bis zum Cutover. 👉 Zur AWS-Migration-Übersicht | Kostenlose Analyse anfragen
Bei einer AWS-Migration ist S3 oft der erste große Brocken: viele Daten, viele Requests – und am Ende muss alles stimmen. Hetzner Object Storage ist S3-kompatibel (Docs), sodass bestehende S3-Tools weiterhin funktionieren – nur mit Hetzner-Endpunkten.
Dieser Guide zeigt einen bewährten Ablauf: Initial Copy → Delta Sync → Cutover, inkl. Tool-Vergleich (rclone vs. MinIO Client vs. AWS CLI) und Verifikations-Checks.
Inhaltsverzeichnis
- Voraussetzungen und Planung
- Tool-Auswahl: rclone vs. MinIO Client vs. AWS CLI
- Step-by-Step: Initial Sync → Delta Sync → Cutover
- Datenintegrität prüfen
- Häufige Fallstricke
- Unser Vorgehen bei WZ-IT
- Weiterführende Guides
Voraussetzungen und Planung
Vorab-Checkliste
Bevor Sie Kommandos ausführen, klären Sie diese Punkte – sie entscheiden über Tool-Wahl und Cutover-Strategie:
| Frage | Warum relevant |
|---|---|
| Bucket-Größe & Objektanzahl | TB? Millionen Objekte? Bestimmt Parallelität und Dauer |
| Änderungsrate | Neue/aktualisierte Objekte pro Stunde/Tag? Anzahl Delta-Syncs |
| Versioning / Object Lock | Compliance-Features müssen ggf. nachgebildet werden |
| Custom Metadata | x-amz-meta-* Header? → Tool-Wahl kritisch! |
⚠️ Wichtig: rclone, s3cmd und
aws s3kopieren keine Custom Metadata. Wenn Sie eigene Metadata-Header setzen, nutzen Sie MinIO Client (mc) (Hetzner Docs).
Ziel-Region/Endpoint wählen
Hetzner Object Storage bietet regionale Endpoints in der EU:
fsn1.your-objectstorage.com(Falkenstein)nbg1.your-objectstorage.com(Nürnberg)hel1.your-objectstorage.com(Helsinki)
Wählen Sie:
- Nahe an Compute-Workloads (Latenz minimieren)
- Nahe an Nutzern (bei Public Assets)
- Nach Compliance-Vorgaben (Datenstandort)
S3-Credentials erstellen
Bei Hetzner erzeugen Sie S3-Zugangsdaten in der Console. Der Secret Key ist nur einmal sichtbar – speichern Sie ihn direkt in Ihrem Secret-Manager (1Password, Vault, KMS), nicht im Klartext-Repo (Hetzner Docs).
Tool-Auswahl: rclone vs. MinIO Client vs. AWS CLI
rclone (empfohlen ohne Custom Metadata)
Stärken:
- Exzellent für Sync, Delta Sync, Listings und Checks
- Kann Source/Destination vergleichen ohne Daten zu verändern
- Ideal für "Initial Copy → Delta → Cutover"
Schwäche:
- Kopiert keine Custom Metadata
MinIO Client mc (empfohlen mit Custom Metadata)
Stärken:
- Erhält Custom Metadata bei der Migration
mc mirrorist sehr migrationsfreundlich (inkrementell nutzbar)
Schwächen:
- Bei sehr großen Datenmengen ggf. Feintuning nötig (Retries, Parallelität)
AWS CLI (aws s3 sync)
Einschränkungen:
- Zwei Profile gleichzeitig nicht möglich – erfordert lokales Zwischenparken (Download aus Quelle, Upload ins Ziel)
- Kopiert keine Custom Metadata
Faustregel:
- Metadata egal? → rclone
- Metadata wichtig? → MinIO
mc - Schnell & simpel, ohne Metadata? → AWS CLI (aber oft umständlich)
Step-by-Step: Initial Sync → Delta Sync → Cutover
Schritt 1: Ziel-Bucket in Hetzner anlegen
Bucket in der Hetzner Console erstellen (Name, Location wählen).
Public-URL-Format bei Hetzner:
https://<bucket-name>.<location>.your-objectstorage.com/<file-name>
Schritt 2: Dry Run mit Teilmenge
Bevor Sie 5–50 TB anwerfen: Testen Sie mit einem Prefix wie test/ oder assets/2025-….
Option A: rclone
# Remotes vorher konfigurieren (aws + hetzner)
rclone sync aws:mein-bucket/assets/ hetzner:mein-bucket/assets/ \
--progress --transfers 32 --checkers 32
Option B: MinIO Client
mc mirror --overwrite --remove aws/mein-bucket/assets/ hetzner/mein-bucket/assets/
Schritt 3: Initial Copy (Bulk Sync)
Jetzt migrieren Sie alles (oder die großen Prefixe zuerst).
rclone Bulk Copy:
rclone sync aws:mein-bucket hetzner:mein-bucket \
--progress --transfers 64 --checkers 64 \
--fast-list --retries 10 --low-level-retries 20
MinIO Client Bulk Copy:
mc mirror --overwrite aws/mein-bucket hetzner/mein-bucket
Tipp: Bei sehr vielen Objekten hilft
--fast-list(rclone), um weniger API-Calls zu verursachen – aber testen Sie das vorher (Memory/Listing-Verhalten).
Schritt 4: Delta Sync (vor Cutover)
Wenn sich Ihr S3-Bucket weiter verändert, machen Sie vor dem Cutover mehrere Delta-Läufe:
- T-24h: Delta Sync
- T-1h: Delta Sync
- T-5min: Finaler Delta Sync nach "Freeze" (wenn möglich)
rclone sync aws:mein-bucket hetzner:mein-bucket \
--progress --transfers 64 --checkers 64
Schritt 5: Cutover (Applikation umstellen)
Was "Cutover" bedeutet, hängt vom Use Case ab:
| Use Case | Aktion |
|---|---|
| Backups/Archiv | Producer schreibt künftig nach Hetzner |
| Static Assets/CDN | Origin-URL im CDN ändern |
| App-Uploads | S3-Endpoint + Credentials in der App ändern |
Beachten Sie: Die Public-URL enthält die Location im Hostnamen (.<location>.).
Datenintegrität prüfen
1. Listings vergleichen
Vergleichen Sie pro Prefix: Anzahl Objekte, Gesamtgröße.
rclone size aws:mein-bucket
rclone size hetzner:mein-bucket
2. rclone check: Größen + Hashes vergleichen
rclone check vergleicht Size und Hashes (z.B. MD5/SHA1) und schreibt Reports, ohne Daten zu verändern (rclone Docs).
rclone check aws:mein-bucket hetzner:mein-bucket --one-way --progress
⚠️ ETag ≠ MD5 bei Multipart Uploads: Bei Objekten, die als Multipart Upload hochgeladen wurden, ist der ETag kein MD5-Digest (AWS Docs). Verlassen Sie sich nicht blind auf ETag-MD5-Vergleiche.
3. Stichproben für kritische Daten
Für "muss 100% stimmen"-Daten (DB-Dumps, Releases, Rechnungen):
- Zufällig 100–1.000 Objekte ziehen (verschiedene Größenklassen)
- Aus beiden Buckets herunterladen und lokal hashen (SHA-256), vergleichen
Häufige Fallstricke
Fallstrick 1: Custom Metadata geht verloren
rclone, aws s3 und s3cmd kopieren keine Custom Metadata. Wenn Sie welche nutzen → MinIO Client verwenden.
Fallstrick 2: Falscher Endpoint
Hetzner-Endpunkte sind locationspezifisch (fsn1/nbg1/hel1). Wenn Sie z.B. fsn1 nutzen, aber der Bucket in nbg1 liegt, sehen Sie "komische" Fehler oder leere Listings.
Fallstrick 3: Public URL funktioniert nicht
Typische Fehler bei Public Buckets:
- Location fehlt (
.<location>.) - Object Key falsch encoded (Spaces/UTF-8)
Fallstrick 4: Kosten/Requests falsch eingeschätzt
Bei Hetzner Object Storage:
- Ingress ist kostenlos
- S3-Operationen (PUT/GET/DELETE) kostenlos
- Abrechnung über Base-Price + inkludierte Quota + Pay-as-you-go
Bei extrem vielen Objekten kann das Migrationstempo durch API/Parallelität begrenzt werden, nicht durch Kosten.
Unser Vorgehen bei WZ-IT
Unser Standard-Flow für AWS S3 → Hetzner Object Storage:
- Assessment: Bucket-Features (Versioning/Object Lock/Metadata), Größen, Änderungsrate
- Pilot: Testprefix migrieren + Validierungs-Checks
- Bulk + Delta: Initial Sync + mehrere Delta-Runs
- Cutover-Plan: Freeze-Fenster, Endpoint-Umstellung, Rollback-Plan
- Monitoring: Fehlerraten, 404s, Latenzen, App-Logs
👉 Wir bauen Ihnen daraus einen konkreten Cutover-Runbook (inkl. Kommandos, Parallelitäts-Tuning, Verifikationsplan).
Weiterführende Guides
Diese Anleitungen könnten Sie ebenfalls interessieren:
- AWS RDS/Aurora PostgreSQL zu Hetzner migrieren – pg_dump/restore Guide
- AWS zu Hetzner Migration – Komplettübersicht – Alle AWS-Services im Überblick
- Cloud-Migration Hub – Alle Provider-Migrationen im Überblick
- Cloud-Kosten sparen: AWS EC2 & RDS – Bis zu 90% Ersparnis
- Hetzner Cloud Volumes einrichten – Block Storage für Ihre Workloads
- Hetzner Expertise – Unsere Hetzner-Services im Überblick
Bereit für die Migration? Bei WZ-IT übernehmen wir Analyse, Migration und Betrieb Ihrer Infrastruktur – von AWS zu kosteneffizienten, europäischen Alternativen.
Häufig gestellte Fragen
Antworten auf wichtige Fragen zu diesem Thema
Die Dauer hängt von Datenmenge, Objektanzahl, Parallelität und Netzwerkbandbreite ab. Grob: Initial Copy dauert Stunden bis Tage, Delta Syncs Minuten bis Stunden.
Custom Metadata (x-amz-meta-*) geht bei rclone, aws s3 und s3cmd verloren. Wenn Custom Metadata wichtig ist, sollte MinIO Client (mc) verwendet werden.
Hetzner bietet regionale Endpoints: fsn1.your-objectstorage.com (Falkenstein), nbg1.your-objectstorage.com (Nürnberg) und hel1.your-objectstorage.com (Helsinki).
Bei Multipart Uploads ist der ETag nicht der MD5-Digest der gesamten Datei. Verlassen Sie sich daher nicht blind auf ETag-MD5-Vergleiche, sondern nutzen Sie rclone check oder Stichproben-Downloads.
Ingress (Upload) ist kostenlos, S3-Operationen (PUT/GET/DELETE) sind ebenfalls kostenlos. Abgerechnet wird über Base-Price plus inkludierte Quota, Pay-as-you-go bei Überschreitung.
Lassen Sie uns über Ihre Idee sprechen
Ob konkrete IT-Herausforderung oder einfach eine Idee – wir freuen uns auf den Austausch. In einem kurzen Gespräch prüfen wir gemeinsam, ob und wie Ihr Projekt zu WZ-IT passt.

Timo Wevelsiep & Robin Zins
Geschäftsführer



