Direkt zum Inhalt

AWS S3 Sync: Der vollständige Leitfaden zur Dateisynchronisation

Lerne, wie du mit der AWS CLI lokale Dateien mit Amazon S3 synchronisierst. Dieses praktische Tutorial führt dich durch die Installation, die grundlegenden Operationen, die erweiterten Optionen und die Sicherungsstrategien, um die Dateisynchronisation zwischen deiner lokalen Umgebung und der AWS Cloud zu meistern.
Aktualisierte 17. März 2025  · 15 Min. Lesezeit

Die Verwaltung der Dateisynchronisierung zwischen lokalen Systemen und Cloud-Speichern sollte dir keine Kopfschmerzen bereiten.

AWS S3 bietet ein praktisches Befehlszeilen-Tool, das die Synchronisierung deiner Dateien zwischen deiner lokalen Umgebung und Amazons Simple Storage Service-Bucket (S3) vereinfacht. Dieses Tool ist besonders wertvoll für Entwickler, Systemadministratoren und alle, die konsistente Dateiversionen über mehrere Standorte hinweg pflegen müssen. Mit nur ein paar Befehlen kannst du effizient Dateien übertragen, Backups erstellen und Disaster-Recovery-Lösungen implementieren.

Die AWS-Befehlszeilenschnittstelle (CLI) macht diese Vorgänge für eine Vielzahl von Benutzern zugänglich. Sicher, es ist nicht so bequem wie Google Drive oder OneDrive, aber es hat ein paar Tricks in petto.

In diesem Lernprogramm erfährst du alles, was du über die AWS S3-Synchronisierung wissen musst, von der grundlegenden Einrichtung bis hin zu fortgeschrittenen Nutzungsmustern.

>Was genau ist S3? Lerne die Grundlagen mit unserem Leitfaden zu S3.

Was ist AWS S3 Sync?

AWS S3 sync ist ein leistungsstarkes Befehlszeilen-Tool, das im AWS CLI-Toolkit enthalten ist. Es wurde entwickelt, um Dateien in kürzester Zeit zwischen deinem lokalen Dateisystem und einem S3-Bucket zu synchronisieren.

Betrachte S3 sync als rsync für die Cloud. Der Befehl analysiert Quell- und Zielort, stellt Unterschiede fest und überträgt dann nur das, was notwendig ist, damit sie übereinstimmen. Dieser Ansatz spart Bandbreite, Zeit und potenzielle Kosten im Vergleich zu naiven Dateiübertragungsmethoden.

Unter der Haube macht S3 sync API-Aufrufe, um Objekt-Metadaten wie Dateigröße und Änderungszeitstempel zu vergleichen. Wenn es Unterschiede feststellt, kümmert es sich um das Hoch- oder Herunterladen von Dateien.

Die Schönheit von S3 sync liegt in seiner Einfachheit. Ein einfacher Befehl sieht etwa so aus:

aws s3 sync /local/directory s3://my-bucket/path

Natürlich musst du die CLI so einrichten, dass sie die Befehle von aws verwendet, aber du verstehst schon - es ist ganz einfach zu bedienen.

Kurz gesagt, die S3-Synchronisierung verbirgt die komplexen Vorgänge, die hinter den Kulissen ablaufen, und bietet dir eine einfache Möglichkeit, konsistente Dateistände in verschiedenen Umgebungen aufrechtzuerhalten. Egal, ob du wichtige Daten sicherst, Web-Assets bereitstellst oder große Datenmengen verwaltest - S3 sync nimmt dir die ganze Arbeit ab.

Einrichten der AWS CLI und AWS S3

Bevor du mit dem Synchronisieren von Dateien mit S3 beginnen kannst,musst du das AWS CLI richtig einrichten und konfigurieren. Das klingt vielleicht einschüchternd, wenn du neu bei AWS bist, aber es dauert nur ein paar Minuten.

Die Einrichtung des CLI umfasst zwei Hauptschritte: die Installation des Tools und die Konfiguration. Als Nächstes gehe ich auf beide Schritte ein.

Installation der AWS CLI

Die Installation der AWS CLI variiert je nach Betriebssystem leicht.

Für Windows-Systeme:

Für Linux-Systeme:

Führe die folgenden drei Befehle über das Terminal aus:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Für macOS-Systeme:

Angenommen, du hast Homebrew installiert, dann führe diese eine Zeile im Terminal aus:

brew install awscli

Wenn du kein Homebrew hast, kannst du stattdessen diese beiden Befehle verwenden:

curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /

Du kannst den Befehl aws --version auf allen Betriebssystemen ausführen, um zu überprüfen, ob AWS CLI installiert wurde. Hier ist, was du sehen solltest:

AWS CLI Version

Abbildung 1 - AWS CLI-Version

Konfigurieren der AWS CLI

Nachdem du die CLI installiert hast, musst du sie mit deinen AWS-Anmeldedaten konfigurieren.

Angenommen, du hast bereits ein AWS-Konto, dann logge dich ein und gehe zum IAM-Service. Dort erstellst du einen neuen Benutzer mit programmatischem Zugriff. Du solltest dem Benutzer die entsprechende Berechtigung zuweisen, die mindestens S3-Zugriff ist:

AWS IAM-Benutzer

Abbildung 2 - AWS IAM-Benutzer

Wenn du das getan hast, gehe zu "Sicherheitsdaten", um einen neuen Zugangsschlüssel zu erstellen. Nach der Erstellung hast du sowohl die Access Key ID als auch den Secret Access Key. Schreibe sie an einem sicheren Ort auf, denn du wirst in Zukunft nicht mehr auf sie zugreifen können:

AWS IAM-Benutzeranmeldeinformationen

Abbildung 3 - AWS IAM-Benutzeranmeldeinformationen

Zurück im Terminal führst du den Befehl aws configure aus. Du wirst aufgefordert, deine Zugangsschlüssel-ID, deinen geheimen Zugangsschlüssel, deine Region (in meinem Falleu-central-1 ) und dein bevorzugtes Ausgabeformat (json) einzugeben:

AWS CLI-Konfiguration

Abbildung 4 - AWS CLI-Konfiguration

Um zu überprüfen, ob du über die CLI erfolgreich mit deinem AWS-Konto verbunden bist, führe den folgenden Befehl aus:

aws sts get-caller-identity

Das ist die Ausgabe, die du sehen solltest:

AWS CLI-Befehl zum Testen der Verbindung

Abbildung 5 - AWS CLI-Befehl zum Testen der Verbindung

Und das war's - nur noch ein Schritt, bevor du den S3-Sync-Befehl verwenden kannst!

Einrichten eines AWS S3 Buckets

Der letzte Schritt besteht darin, einen S3-Bucket zu erstellen, in dem deine synchronisierten Dateien gespeichert werden. Das kannst du über die CLI oder die AWS Management Console tun. Ich entscheide mich für Letzteres, nur um die Dinge zu variieren.

Um zu beginnen, gehe auf die Seite des S3-Dienstes in der Management-Konsole und klicke auf die Schaltfläche "Bucket erstellen". Dort wählst du einen eindeutigen Bucket-Namen (der weltweit in AWS eindeutig ist), scrollst nach unten und klickst auf die Schaltfläche "Erstellen":

AWS Bucket erstellen

Abbildung 6 - Erstellung eines AWS Buckets

Der Bucket ist nun erstellt und du siehst ihn sofort in der Managementkonsole. Du kannst auch über die CLI überprüfen, ob sie erstellt wurde:

aws s3 ls

Alle verfügbaren S3 Buckets

Abbildung 7 - Alle verfügbaren S3-Buckets

Beachte, dass S3-Buckets standardmäßig privat sind. Wenn du den Bucket zum Hosten öffentlicher Dateien (z. B. Website-Assets) verwenden willst, musst du die Bucket-Richtlinien und -Berechtigungen entsprechend anpassen.

Jetzt bist du bereit, Dateien zwischen deinem lokalen Rechner und AWS S3 zu synchronisieren!

Grundlegender AWS S3 Sync-Befehl

Jetzt, wo du die AWS CLI installiert und konfiguriert hast und ein S3-Bucket bereitsteht, kannst du mit der Synchronisierung beginnen! Die grundlegende Syntax für den AWS S3 Sync-Befehl ist ziemlich einfach. Ich zeige dir, wie es funktioniert.

Der Befehl S3 sync folgt diesem einfachen Muster:

aws s3 sync <source> <destination> [options]

Sowohl die Quelle als auch das Ziel können entweder ein lokaler Verzeichnispfad oder ein S3 URI (beginnend mit s3://) sein. Je nachdem, wie du synchronisieren willst, ordnest du diese unterschiedlich an.

Dateien von einem lokalen zu einem S3 Bucket synchronisieren

Ich habe vor kurzem mit Ollama Deep Research herumgespielt. Sagen wir, das ist der Ordner, den ich mit S3 synchronisieren möchte. Das Hauptverzeichnis befindet sich unter dem Ordner Documents. So sieht es aus:

Lokale Ordnerinhalte

Lokale Ordnerinhalte

Das ist der Befehl, den ich ausführen muss, um den lokalen Ordner code-files mit dem Ordner backup im S3-Bucket zu synchronisieren:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup

Der Ordner backup auf dem S3-Bucket wird automatisch erstellt, wenn er nicht existiert.

Das siehst du auf der Konsole aufgedruckt:

S3-Synchronisationsprozess

Abbildung 9 - S3-Synchronisierungsprozess

Nach ein paar Sekunden ist der Inhalt des lokalen Ordners code-files auf dem S3-Bucket verfügbar:

Inhalt des S3-Eimers

Abbildung 10 - Inhalt des S3-Buckets

Das Schöne an der S3-Synchronisierung ist, dass sie nur Dateien hochlädt, die im Ziel nicht existieren oder lokal geändert wurden. Wenn du denselben Befehl noch einmal ausführst, ohne etwas zu ändern, wirst du... nichts sehen! Das liegt daran, dass AWS CLI festgestellt hat, dass alle Dateien bereits synchronisiert und auf dem neuesten Stand sind.

Jetzt nehme ich zwei kleine Änderungen vor - ich erstelle eine neue Datei (new_file.txt) und aktualisiere eine bestehende Datei (requirements.txt). Wenn du den Sync-Befehl erneut ausführst, werden nur die neuen oder geänderten Dateien hochgeladen:

S3-Synchronisationsprozess (2)

Abbildung 11 - S3-Synchronisierungsprozess (2)

Und das ist alles, was du wissen musst, wenn du lokale Ordner mit S3 synchronisierst. Aber was ist, wenn du den umgekehrten Weg gehen willst?

Synchronisieren von Dateien aus dem S3-Bucket in ein lokales Verzeichnis

Wenn du Dateien von deinem S3-Bucket auf deinen lokalen Rechner herunterladen möchtest, musst du nur die Quelle und das Ziel umdrehen:

aws s3 sync s3://testbucket-dradecic/backup /Users/dradecic/Documents/code-files-from-s3 

Mit diesem Befehl werden alle Dateien aus dem Ordner backup in deinem S3-Bucket in einen lokalen Ordner namens code-files-from-s3 heruntergeladen. Auch hier gilt: Wenn der lokale Ordner nicht existiert, wird er von der CLI für dich erstellt:

S3 zu lokaler Synchronisation

Abbildung 12 - S3 zu lokaler Synchronisation

Es ist erwähnenswert, dass die S3-Synchronisierung nicht bidirektional ist. Es geht immer von der Quelle zum Ziel, sodass das Ziel mit der Quelle übereinstimmt. Wenn du eine Datei lokal löschst und sie dann mit S3 synchronisierst, ist sie immer noch in S3 vorhanden. Ähnlich verhält es sich, wenn du eine Datei in S3 löschst und von S3 nach lokal synchronisierst, bleibt die lokale Datei unangetastet.

Wenn du möchtest, dass das Ziel genau mit der Quelle übereinstimmt (einschließlich Löschungen), musst du das --delete Flag verwenden, das ich im Abschnitt "Erweiterte Optionen" erläutern werde.

Erweiterte AWS S3 Sync Optionen

Der grundlegende S3-Sync-Befehl, den wir bereits kennengelernt haben, ist an sich schon leistungsstark, aber AWS hat ihn mit zusätzlichen Optionen ausgestattet, die dir mehr Kontrolle über den Synchronisierungsprozess geben. 

In diesem Abschnitt zeige ich dir einige der nützlichsten Flags, die du dem Basisbefehl hinzufügen kannst.

Nur neue oder geänderte Dateien synchronisieren

Standardmäßig verwendet die S3-Synchronisierung einen einfachen Vergleichsmechanismus, der die Dateigröße und die Änderungszeit prüft, um festzustellen, ob eine Datei synchronisiert werden muss. Dieser Ansatz erfasst jedoch nicht immer alle Änderungen, vor allem wenn es sich um Dateien handelt, die zwar geändert wurden, aber die gleiche Größe haben.

Für eine genauere Synchronisierung kannst du das --exact-timestamps Flag verwenden:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exact-timestamps

Dies zwingt S3 sync dazu, Zeitstempel mit einer Genauigkeit von Millisekunden zu vergleichen. Beachte, dass die Verwendung dieses Flags den Synchronisierungsprozess etwasverlangsamen kann, da es detailliertere Vergleiche erfordert.

Bestimmte Dateien ausschließen oder einschließen

Manchmal möchtest du nicht alle Dateien in einem Verzeichnis synchronisieren. Vielleicht möchtest du temporäre Dateien, Protokolle oder bestimmte Dateitypen ausschließen (wie in meinem Fall .DS_Store ). Hier kommen die Flaggen --exclude und --include ins Spiel.

Aber zur Veranschaulichung: Nehmen wir an, ich möchte mein Code-Verzeichnis synchronisieren, aber alle Python-Dateien ausschließen:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exclude "*.py"

Jetzt werden viel weniger Dateien mit S3 synchronisiert:

S3-Synchronisierung mit ausgeschlossenen Python-Dateien

Abbildung 13 - S3-Synchronisierung mit ausgeschlossenen Python-Dateien

Du kannst auch --exclude und --include kombinieren, um komplexere Muster zu erstellen. Schließe zum Beispiel alles außer Python-Dateien aus:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --exclude "*" --include "*.py"

Die Muster werden in der angegebenen Reihenfolge ausgewertet, die Reihenfolge ist also wichtig! Hier siehst du, was du siehst, wenn du diese Flaggen benutzt:

Ausschluss- und Einschlussflaggen

Abbildung 14 - Ausschluss- und Einschlussflaggen

Jetzt werden nur noch die Python-Dateien synchronisiert, und wichtige Konfigurationsdateien fehlen.

Löschen von Dateien aus dem Ziel

Standardmäßig fügt die S3-Synchronisierung nur Dateien im Ziel hinzu oder aktualisiert sie - sie löscht sie nicht. Das heißt, wenn du eine Datei in der Quelle löschst, bleibt sie nach der Synchronisierung im Ziel erhalten.

Damit das Ziel die Quelle genau widerspiegelt, einschließlich der Löschungen, verwendest du das Flag --delete:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --delete

Wenn du diesen Vorgang zum ersten Mal ausführst, werden alle lokalen Dateien mit S3 synchronisiert:

Flagge löschen

Abbildung 15 - Flagge löschen

Dies ist besonders nützlich, um exakte Repliken von Verzeichnissenzu erhalten . Aber Vorsicht - dieses Flag kann bei falscher Verwendung zu Datenverlust führen.

Nehmen wir an, ich lösche config.py aus meinem lokalen Ordner und führe den Sync-Befehl mit dem Flag --delete aus:

Flagge löschen

Abbildung 16 - Flagge löschen (2)

Wie du siehst, synchronisiert der Befehl nicht nur neue und geänderte Dateien, sondern löscht auch Dateien aus dem S3-Bucket, die im lokalen Verzeichnis nicht mehr existieren.

Trockenlauf für sichere Synchronisierung einrichten

Die gefährlichsten S3-Sync-Operationen sind diejenigen, die das --delete Flag beinhalten. Um zu vermeiden, dass du versehentlich wichtige Dateien löschst, kannst du das --dryrun Flag verwenden, um den Vorgang zu simulieren, ohne tatsächlich Änderungen vorzunehmen:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --delete --dryrun

Um das zu demonstrieren, habe ich die Dateien requirements.txt und settings.toml aus einem lokalen Ordner gelöscht und dann den Befehl ausgeführt:

Trockenübung

Bild 17 - Trockenübung

Das zeigt dir genau, was passieren würde, wenn du den Befehl wirklich ausführst, einschließlich der Dateien, die hochgeladen, heruntergeladen oder gelöscht würden.

Ich empfehle immer, --dryrun zu verwenden, bevor du einen S3-Sync-Befehl mit dem --delete -Flag ausführst, besonders wenn du mit wichtigen Daten arbeitest.

Für den S3-Sync-Befehl gibt es noch viele andere Optionen, z.B. --acl für das Setzen von Berechtigungen, --storage-class für die Auswahl der S3-Speicherebene und --recursive für das Durchlaufen von Unterverzeichnissen. In der offiziellen AWS CLI-Dokumentation findest du eine vollständige Liste der Optionen.

Nachdem du nun mit den grundlegenden und erweiterten S3-Synchronisierungsoptionen vertraut bist, schauen wir uns an, wie du diese Befehle für praktische Szenarien wie Backups und Wiederherstellungen verwenden kannst.

AWS S3 Sync für die Sicherung und Wiederherstellung verwenden

Einer der beliebtesten Anwendungsfälle für die AWS S3-Synchronisierung ist das Sichern wichtiger Dateien und deren Wiederherstellung bei Bedarf. Lass uns herausfinden, wie du mit dem Sync-Befehl eine einfache Sicherungs- und Wiederherstellungsstrategie umsetzen kannst.

Backups auf S3 erstellen

Das Erstellen von Backups mit S3 sync ist ganz einfach: Du musst nur den Befehl sync von deinem lokalen Verzeichnis zu einem S3-Bucket ausführen. Es gibt jedoch einige Best Practices, die du für effektive Backups befolgen solltest.

Zunächst ist es eine gute Idee, deine Backups nach Datum oder Version zu organisieren. Hier ist ein einfacher Ansatz, der einen Zeitstempel im S3-Pfad verwendet:

# Create a timestamp variable
TIMESTAMP=$(date +%Y-%m-%d-%H-%M-%S)

# Run the backup
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backups/$TIMESTAMP

Dadurch wird für jedes Backup ein neuer Ordner mit einem Zeitstempel wie 2025-03-10-18-56-42 erstellt. Hier ist, was du auf S3 sehen wirst:

Backups mit Zeitstempel

Abbildung 18 - Backups mit Zeitstempel

Für kritische Daten solltest du vielleicht mehrere Backup-Versionen aufbewahren. Das geht ganz einfach, indem du das zeitstempelbasierte Backup regelmäßig durchführst.

Du kannst auch die Option --storage-class verwenden, um eine kostengünstigere Speicherklasse für deine Backups festzulegen:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backups/$TIMESTAMP --storage-class STANDARD_IA

Inhalte mit einer benutzerdefinierten Speicherklasse sichern

Abbildung 19 - Sicherung von Inhalten mit einer benutzerdefinierten Speicherklasse

Dabei wird die Speicherklasse S3 Infrequent Access verwendet, die weniger kostet, aber eine geringe Abrufgebühr hat. Für die Langzeitarchivierung kannst du sogar die Speicherklasse Glacier verwenden:

aws s3 sync /Users/dradecic/Documents/important-data s3://testbucket-dradecic/backups/$TIMESTAMP --storage-class GLACIER

Bedenke aber, dass es Stunden dauert, bis die in Glacier gespeicherten Dateien abgerufen werden können, also sind sie nicht für Daten geeignet, die du schnell brauchst.

Wiederherstellung von Dateien aus S3

Die Wiederherstellung von einem Backup ist genauso einfach - einfach die Quelle und das Ziel umkehren in deinem Sync-Befehl um:

# Restore from the most recent backup (assuming you know the timestamp)
aws s3 sync s3://testbucket-dradecic/backups/2025-03-10-18-56-42 /Users/dradecic/Documents/restored-data

Dadurch werden alle Dateien aus diesem speziellen Backup in dein lokales Verzeichnis restored-data heruntergeladen:

Wiederherstellung von Dateien aus S3

Abbildung 20 - Wiederherstellung von Dateien aus S3

Wenn du dich nicht mehr an den genauen Zeitstempel erinnerst, kannst du zunächst alle deine Backups auflisten:

aws s3 ls s3://testbucket-dradecic/backups/

Das zeigt dir dann etwas wie:

Liste der Backups

Abbildung 21 - Liste der Backups

Du kannst auch bestimmte Dateien oder Verzeichnisse aus einem Backup wiederherstellen, indem du die exclude/include-Flags verwendest, die wir bereits besprochen haben:

# Restore only the config files
aws s3 sync s3://testbucket-dradecic/backups/2025-03-10-18-56-42 /Users/dradecic/Documents/restored-configs --exclude "*" --include "*.config" --include "*.toml" --include "*.yaml"

Für geschäftskritische Systeme empfehle ich, deine Backups mit geplanten Aufgaben zu automatisieren (z. B. Cron-Jobs unter Linux/macOS oder Task Scheduler unter Windows). So stellst du sicher, dass du deine Daten regelmäßig sicherst, ohne daran denken zu müssen, es manuell zu tun.

Fehlerbehebung bei AWS S3 Sync

Die AWS S3-Synchronisierung ist ein zuverlässiges Tool, aber es kann gelegentlich zu Problemen kommen. Die meisten Fehler, die du siehst, sind jedoch von Menschen gemacht.

Häufige Synchronisationsfehler

Gehen wir einige häufige Probleme und ihre Lösungen durch.

  • Der Fehler "Zugriff verweigert" bedeutet in der Regel, dass dein IAM-Benutzer nicht die notwendigen Rechte hat, um auf den S3-Bucket zuzugreifen oder bestimmte Vorgänge durchzuführen. Um dies zu beheben, versuche eine der folgenden Möglichkeiten:
    • Überprüfe, ob dein IAM-Benutzer die entsprechenden S3-Berechtigungen hat (s3:ListBucket, s3:GetObject, s3:PutObject).
    • Vergewissere dich, dass die Bucket-Policy deinem Nutzer den Zugang nicht explizit verweigert.
    • Stelle sicher, dass der Bucket selbst den öffentlichen Zugang nicht blockiert, wenn du öffentliche Operationen benötigst.
  • No such file or directory Der Fehler tritt typischerweise auf, wenn der Quellpfad, den du im Sync-Befehl angegeben hast, nicht existiert. Die Lösung ist ganz einfach: Überprüfe deine Pfade und stelle sicher, dass sie existieren. Achte besonders auf Tippfehler in Eimernamen oder lokalen Verzeichnissen.
  • Dateigrößenbegrenzung Fehler können auftreten, wenn du große Dateien synchronisieren willst. Standardmäßig kann die S3-Synchronisierung Dateien bis zu einer Größe von 5 GB verarbeiten. Bei größeren Dateien werden Zeitüberschreitungen oder unvollständige Übertragungen angezeigt.
    • Für Dateien, die größer als 5 GB sind, solltest du das Flag --only-show-errors in Kombination mit dem Flag --size-only verwenden. Diese Kombination hilft bei großen Dateiübertragungen, indem sie die Ausgabe minimiert und nur die Dateigrößen vergleicht:
aws s3 sync /Users/dradecic/large-files s3://testbucket-dradecic/large-files --only-show-errors --size-only

Optimierung der Sync-Leistung

Wenn deine S3-Synchronisierung langsamer läuft als erwartet, gibt es einige Optimierungen, die du vornehmen kannst, um sie zu beschleunigen.

  • Parallele Überweisungen verwenden. Standardmäßig verwendet S3 sync eine begrenzte Anzahl von parallelen Operationen. Du kannst diesen Wert mit dem Parameter --max-concurrent-requests erhöhen:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --max-concurrent-requests 20
  • Anpassen der Stückchengröße. Bei großen Dateien kannst du die Übertragungsgeschwindigkeit optimieren, indem du die Chunk-Größe anpasst. Dadurch werden große Dateien in 16 MB große Stücke aufgeteilt, anstatt der standardmäßigen 8 MB, was bei guten Netzwerkverbindungen schneller sein kann:
aws s3 sync /Users/dradecic/large-files s3://testbucket-dradecic/backup --cli-read-timeout 120 --multipart-threshold 64MB --multipart-chunksize 16MB
  • Verwende --no-progress für Skripte. Wenn du die S3-Synchronisierung in einem automatisierten Skript ausführst, verwende das Flag --no-progress, um die Ausgabe zu reduzieren und die Leistung zu verbessern:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --no-progress
  • Lokale Endpunkte verwenden. Wenn sich deine AWS-Ressourcen in der gleichen Region befinden, kann die Angabe des regionalen Endpunkts die Latenz verringern:
aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --endpoint-url https://s3.eu-central-1.amazonaws.com

Diese Optimierungen können die Synchronisierungsleistung erheblich verbessern, vor allem bei großen Datenübertragungen oder wenn sie auf weniger leistungsstarken Rechnern laufen.

Wenn du nach dem Ausprobieren dieser Lösungen immer noch Probleme hast, verfügt die AWS CLI über eine integrierte Debugging-Option. Füge einfach --debug zu deinem Befehl hinzu, um detaillierte Informationen darüber zu erhalten, was während des Synchronisierungsprozesses passiert:

aws s3 sync /Users/dradecic/Documents/code-files s3://testbucket-dradecic/backup --debug

Erwarte eine Menge detaillierter Logmeldungen, ähnlich wie diese:

Sync im Debug-Modus ausführen

Abbildung 22 - Sync im Debug-Modus ausführen

Und das war's dann auch schon mit der Fehlerbehebung bei AWS S3 Sync. Natürlich können auch andere Fehler auftreten, aber in 99 % der Fälle findest du die Lösung in diesem Abschnitt.

Zusammenfassung von AWS S3 Sync

Zusammenfassend lässt sich sagen, dass die AWS S3-Synchronisierung eines der seltenen Tools ist, die sowohl einfach zu bedienen als auch unglaublich leistungsstark sind. Du hast alles gelernt, von grundlegenden Befehlen bis hin zu erweiterten Optionen, Sicherungsstrategien und Tipps zur Fehlerbehebung.

Für Entwickler, Systemadministratoren oder alle, die mit AWS arbeiten, ist der S3-Sync-Befehl ein unverzichtbares Werkzeug - er spart Zeit, reduziert die Bandbreitennutzung und stellt sicher, dass deine Dateien dort sind, wo du sie brauchst, wenn du sie brauchst.

Ob du wichtige Daten sicherst, Web-Assets bereitstellst oder einfach nur verschiedene Umgebungen synchron hältst, AWS S3 sync macht den Prozess einfach und zuverlässig.

Der beste Weg, sich mit S3 sync vertraut zu machen, ist, es zu benutzen. Versuche, einen einfachen Synchronisierungsvorgang mit deinen eigenen Dateien einzurichten und erkunde dann nach und nach die fortgeschrittenen Optionen, die deinen speziellen Bedürfnissen entsprechen.

Denke daran, immer zuerst --dryrun zu benutzen, wenn du mit wichtigen Daten arbeitest, besonders wenn du das --delete Flag benutzt. Es ist besser, sich eine zusätzliche Minute Zeit zu nehmen, um zu überprüfen, was passieren wird, als aus Versehen wichtige Dateien zu löschen.

Wenn du mehr überAWS erfahren möchtest, schau dir diese Kurse von DataCamp an:

Du kannst dich mit DataCamp sogar auf die AWS-Zertifizierungsprüfungen vorbereiten - AWS Cloud Practitioner (CLF-C02).

FAQs

Was ist AWS S3 sync und wie funktioniert es?

AWS S3 sync ist ein Befehlszeilen-Tool, das mit der AWS CLI geliefert wird und dazu dient, Dateien zwischen lokalen Systemen und Amazon S3-Buckets zu synchronisieren. Es vergleicht die Dateien in der Quelle und im Ziel, stellt Unterschiede fest und überträgt dann nur das, was nötig ist, damit sie übereinstimmen. Das spart Bandbreite und Zeit im Vergleich zu vollständigen Uploads oder Downloads.

Kann ich Dateien sowohl mit einem S3-Bucket als auch von einem anderen synchronisieren?

Ja, AWS S3 Sync funktioniert bidirektional. Du kannst mit aws s3 sync /local/directory s3://my-bucket/path lokale Dateien mit einem S3-Bucket synchronisieren oder mit aws s3 sync s3://my-bucket/path /local/directory Dateien von einem S3-Bucket mit deinem lokalen System synchronisieren. Der Befehl sorgt dafür, dass das Ziel immer mit der Quelle übereinstimmt.

Werden bei der AWS S3-Synchronisierung automatisch Dateien gelöscht?

Standardmäßig werden bei der S3-Synchronisierung keine Dateien im Ziel gelöscht, die in der Quelle nicht vorhanden sind. Du kannst jedoch das Flag --delete zu deinem Sync-Befehl hinzufügen, damit das Ziel die Quelle exakt widerspiegelt, einschließlich der Löschungen. Verwende diese Funktion mit Vorsicht und überlege dir, ob du sie nicht zuerst mit dem --dryrun Flag testen solltest.

Wie kann ich die AWS S3-Synchronisierung für große Dateien optimieren?

Bei großen Dateien kannst du die Leistung der S3-Synchronisierung mit verschiedenen Parametern optimieren, z. B. --max-concurrent-requests, um die parallelen Übertragungen zu erhöhen, --multipart-chunksize, um die Chunk-Größe anzupassen, und --cli-read-timeout, um Timeouts zu verhindern. Bei Dateien über 5 GB kombinierst du die Flags --only-show-errors und --size-only, um die Leistung zu verbessern.

Kann ich Backups mit AWS S3 sync automatisieren?

Ja, AWS S3 sync ist perfekt für die Erstellung automatischer Backups. Du kannst geplante Aufgaben einrichten (Cron-Jobs unter Linux/macOS oder Taskplaner unter Windows), um regelmäßig Synchronisierungsbefehle mit Zeitstempeln in deinem Zielpfad auszuführen. Für eine kostengünstige Langzeitlagerung kannst du mit dem Parameter --storage-class Lagerklassen wie STANDARD_IA oder GLACIER angeben.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist mit Sitz in Kroatien. Top Tech Writer mit über 700 veröffentlichten Artikeln, die mehr als 10 Millionen Mal aufgerufen wurden. Buchautor von Machine Learning Automation with TPOT.
Themen

Lerne mehr über AWS mit diesen Kursen!

Lernpfad

AWS Cloud Practitioner (CLF-C02)

0 Min.
Bereite dich auf Amazons AWS Certified Cloud Practitioner (CLF-C02) vor, indem du lernst, wie du die wichtigsten AWS-Rechen-, Datenbank- und Speicherdienste nutzen und sichern kannst.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Mehr anzeigenMehr anzeigen