Docs

Von AWS S3 zu chili migrieren

Dieser Guide bringt Sie in unter 30 Minuten von AWS S3 (oder einem anderen S3-kompatiblen Quellspeicher) zu chili. Sie konfigurieren ein Quell- und ein Ziel-Remote in rclone, kopieren die Objekte mit Prüfsummen-Verifikation, verifizieren das Ergebnis und sichern den Ziel-Bucket optional per Object Lock ab. Das Ergebnis ist eine vollständige, verifizierte Kopie Ihrer Daten in der Schweiz.

Voraussetzungen

  • rclone ab Version 1.60 (rclone version)
  • Zugang zum Quellspeicher: bei AWS S3 ein Access Key und Secret mit Leserechten auf den Quell-Bucket
  • chili-Zugangsschlüssel (Access Key und Secret) aus dem Portal und ein Ziel-Bucket oder die Berechtigung, einen anzulegen
  • genügend Bandbreite: die Migration ist ein Client-Side-Transfer (siehe Schritt 3)

1. Quell-Remote (AWS S3) konfigurieren

Legen Sie das Quell-Remote per rclone config an oder tragen Sie es direkt in ~/.config/rclone/rclone.conf ein. Für Amazon S3 setzt rclone den Provider explizit auf AWS (rclone-Dokumentation):

[aws-s3]
type = s3
provider = AWS
access_key_id = AKIA...
secret_access_key = ...
region = eu-central-1

region auf die Region des Quell-Buckets setzen.

2. Ziel-Remote (chili) konfigurieren

chili ist ein generischer S3-Provider. Tragen Sie ein separates Remote mit dem chili-Endpoint ein:

[chili]
type = s3
provider = Other
access_key_id = AKIA...
secret_access_key = ...
endpoint = https://<ENDPOINT>

Verbindung zu beiden Remotes testen:

rclone lsd aws-s3:
rclone lsd chili:

3. Trockenlauf

AWS S3 und chili sind verschiedene Provider mit verschiedenen Endpoints, also verschiedene rclone-Remotes. Damit ist diese Migration ein Client-Side-Transfer: rclone lädt von AWS herunter und lädt zu chili wieder hoch. Eine Server-Side-Copy ist hier nicht möglich, denn die setzt laut rclone-Dokumentation dasselbe Remote für Quelle und Ziel voraus.

Prüfen Sie zuerst mit --dry-run, was übertragen würde, ohne Daten zu bewegen:

rclone copy aws-s3:QUELL-BUCKET chili:ZIEL-BUCKET --dry-run --fast-list

4. Migrations-Kopie ausführen

rclone copy überträgt nur neue und geänderte Dateien und löscht am Ziel nie (rclone-Dokumentation). Das macht den Befehl gefahrlos wiederholbar, etwa nach einem Abbruch:

rclone copy aws-s3:QUELL-BUCKET chili:ZIEL-BUCKET \
  --checksum --transfers 8 --fast-list --progress --s3-no-check-bucket

Die Flags im Detail:

  • --checksum vergleicht Hash und Grösse statt Zeitstempel und Grösse. Wenn Quelle und Ziel beide S3 sind, ist das laut rclone-Dokumentation der empfohlene Flag für maximale Effizienz.
  • --transfers 8 erhöht die Parallelität (Default ist 4, siehe rclone-Flags). Der Wert 8 ist nur ein Beispiel; passen Sie ihn an Bandbreite und Quotas an.
  • --fast-list nutzt rekursive Listings und reduziert so die Anzahl S3-Transaktionen bei grossen Buckets, braucht aber mehr Arbeitsspeicher (rclone-Flags).
  • --progress (-P) zeigt den Fortschritt während der Übertragung (rclone-Flags).
  • --s3-no-check-bucket überspringt den Bucket-Exists-/Create-Check. Sinnvoll, wenn der Ziel-Bucket bereits existiert oder die Credentials kein CreateBucket können (rclone-Dokumentation).

Soll der Ziel-Bucket die Quelle exakt spiegeln und überzählige Ziel-Objekte löschen, verwenden Sie rclone sync statt copy (rclone-Dokumentation). Setzen Sie das nur ein, wenn das Löschen am Ziel ausdrücklich gewollt ist, und immer erst mit --dry-run.

5. Integrität verifizieren

rclone check vergleicht Quelle und Ziel über Grössen und Hashes (MD5 oder SHA1) und meldet Abweichungen (rclone-Dokumentation):

rclone check aws-s3:QUELL-BUCKET chili:ZIEL-BUCKET --checksum

Wenn kein gemeinsamer Hash verfügbar ist oder Sie die Daten vollständig prüfen wollen, lädt --download beide Seiten herunter und vergleicht den Inhalt on-the-fly (rclone-Dokumentation):

rclone check aws-s3:QUELL-BUCKET chili:ZIEL-BUCKET --download

rclone cryptcheck ist nur nötig, wenn das Ziel ein verschlüsseltes crypt-Remote ist (rclone-Dokumentation). Bei einer reinen S3-zu-S3-Migration ohne Crypt-Layer bleiben Sie bei rclone check.

6. Object Lock am Ziel-Bucket (optional)

Object Lock (WORM) wird serverseitig am Bucket gesetzt, nicht vom Client. Legen Sie den Ziel-Bucket mit aktiviertem Object Lock und einer Default-Retention an, bevor Sie migrieren, dann erben alle hochgeladenen Objekte die Sperre automatisch. So bleibt die Kopie auch dann unveränderlich, wenn die schreibende Maschine später kompromittiert wird. Die genaue Region- und Location-Einstellung übernehmen Sie gemäss chili-Portal.

Verifizieren

Zum Abschluss ein Read-/Restore-Test gegen chili. Da chili keine Egress-Gebühren erhebt, kostet dieser Test nichts. Laden Sie ein migriertes Objekt zurück und vergleichen Sie es mit dem Original:

rclone copyto chili:ZIEL-BUCKET/pfad/zu/objekt.dat ./restore-test.dat
rclone check aws-s3:QUELL-BUCKET chili:ZIEL-BUCKET --checksum --one-way

Erwartete Ausgabe von rclone check bei vollständiger Migration:

NOTICE: S3 bucket ZIEL-BUCKET: 0 differences found
NOTICE: S3 bucket ZIEL-BUCKET: <N> matching files

Werden 0 Differenzen gemeldet, liegen alle Quell-Objekte bei chili.

Häufige Stolpersteine

  • Endpoint-Schreibweise: übernehmen Sie den chili-Endpoint aus dem Portal als vollständige URL, inklusive https://. Ohne Protokoll oder mit Tippfehler schlägt die TLS-Verbindung fehl.
  • Falsches Remote für die Verifikation: cryptcheck nur bei crypt-Remotes; sonst check.
  • Server-Side-Copy erwartet: diese Migration läuft client-side. Planen Sie die Übertragungsdauer entsprechend der Bandbreite ein und führen Sie rclone möglichst nahe an einer der beiden Seiten aus.
  • Region am Quell-Remote: stimmt die region des AWS-Remotes nicht mit dem Quell-Bucket überein, kann das Listing fehlschlagen.
  • Chunk- und Cutoff-Grössen: falls Sie --s3-upload-cutoff oder --s3-chunk-size anpassen wollen, prüfen Sie die aktuellen Defaults in den Advanced options der rclone-S3-Dokumentation.

Das Ergebnis: eine vollständige, prüfsummenverifizierte Kopie Ihrer S3-Daten in der Schweiz, in Zürich oder Genf und auf Wunsch georedundant, ohne Egress-Gebühren.