Direkt zum Inhalt

Wie übertrage ich große Datenmengen von einem Amazon S3-Bucket in einen anderen?

Lesedauer: 4 Minute
0

Ich möchte mindestens 1 TB an Daten von einem Amazon Simple Storage Service (Amazon S3)-Bucket in einen anderen Bucket übertragen.

Lösung

Verwende eine der folgenden Methoden, um große Datenmengen von einem Amazon S3-Bucket in einen anderen zu übertragen:

  • AWS Command Line Interface (AWS CLI)
  • Regionsübergreifende Replikation (Cross-Region Replication, CRR) oder gleichregionale Replikation (Same-Region Replication, SRR)
  • Amazon S3 Batch Operations
  • S3DistCP mit Amazon EMR
  • AWS DataSync

Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

AWS CLI

Um die Datenübertragungszeit zu verkürzen, teile die Übertragung in mehrere sich gegenseitig ausschließende Operationen auf. Verwende beispielsweise die AWS CLI, um mehrere parallele Operationen wie aws s3 cp, aws s3 mv oder aws s3 sync auszuführen. Du kannst mehr Upload-Threads erstellen, wenn du die Parameter--exclude and --include verwendest, um Operationen nach Dateinamen zu filtern.

Hinweis: Da die Parameter --exclude und --include auf der Clientseite verarbeitet werden, können Ressourcen auf dem lokalen Computer die Leistung der Operation beeinträchtigen.

Führe die folgenden Befehle aus, um eine große Datenmenge von einem Bucket in einen anderen zu kopieren:

Hinweis: Die Dateinamen beginnen mit einer Zahl.

  1. Führe den folgenden cp-Befehl aus, um die Dateien zu kopieren, deren Namen mit den Zahlen 0 bis 4 beginnen:

    aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*"
    
  2. Führe den folgenden cp-Befehl in einer zweiten AWS-CLI-Operation aus, um die Dateien zu kopieren, deren Namen mit den Zahlen 5 bis 9 beginnen:

    aws s3 cp s3://source-awsexamplebucket/ s3://destination-awsexamplebucket/ --recursive --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"
    

Du kannst auch die folgenden AWS-CLI-S3-Konfigurationswerte anpassen, um die Datenübertragungszeit zu verbessern:

  • Verwende multipart_chunksize, um die Größe jedes Teils festzulegen, den die AWS CLI in einem mehrteiligen Upload für eine einzelne Datei hochlädt. Du kannst eine größere Datei in kleinere Teile zerlegen, um schnellere Upload-Geschwindigkeiten zu erzielen. 
    Hinweis: Für einen mehrteiligen Upload kannst du eine einzelne Datei in maximal 10 000 verschiedenen Teilen hochladen. Stelle sicher, dass die von dir festgelegte Blockgröße die Größe der Teildatei und die Anzahl der Teile ausgleicht.
  • Verwende max_concurrent_requests, um die Anzahl der Anforderungen festzulegen, die du gleichzeitig an Amazon S3 senden kannst. Der Standardwert ist 10, und du kannst ihn auf einen höheren Wert erhöhen. Stelle sicher, dass der Computer über ausreichende Ressourcen verfügt, um die maximale Anzahl gleichzeitiger Anforderungen zu unterstützen.

CRR oder SSR

Richte CRR oder SSR im Quell-Bucket ein, damit Amazon S3 automatisch neue Objekte aus dem Quell-Bucket in den Ziel-Bucket replizieren kann. Verwende ein Präfix oder Tag, um die Objekte zu filtern, die Amazon S3 repliziert. Weitere Informationen findest du unter Elemente der Replikationskonfigurationsdatei.

Nachdem du die Replikation konfiguriert hast, repliziert Amazon S3 nur neue Objekte in den Ziel-Bucket, keine vorhandenen Objekte. Weitere Informationen findest du unter Replizieren vorhandener Objekte mit Batch-Replikation und Was wird mit Replikationskonfigurationen nicht repliziert?

Amazon S3 Batch Operations

Du kannst Amazon S3 Batch Operations verwenden, um mehrere Objekte mit einer einzigen Anforderung zu kopieren. Wenn du einen Batch-Operationsauftrag erstellst, kannst du einen Amazon S3 Inventory-Bericht verwenden, um die Objekte anzugeben, für die Amazon S3 die Operation ausführt. Du kannst auch ein CSV-Manifest verwenden, um einen Batch-Auftrag anzugeben. Dann ruft Amazon S3 Batch Operations die API auf, um die Operation auszuführen.

Nach Abschluss der Batch-Operation erhältst du eine Benachrichtigung und optional einen Abschlussbericht.

S3DistCp mit Amazon EMR

Die S3DistCp-Operation auf Amazon EMR kann eine große Anzahl von Objekten parallel in alle Amazon S3-Buckets kopieren. S3DistCp kopiert zuerst die Dateien aus dem Quell-Bucket auf die Worker-Knoten in einem Amazon-EMR-Cluster. Dann schreibt die Operation die Dateien von den Worker-Knoten in den Ziel-Bucket. Weitere Informationen findest du unter Sieben Tipps für die Verwendung von S3DistCp auf Amazon EMR, um Daten effizient zwischen HDFS und Amazon S3 zu verschieben.

Wichtig: Da du Amazon EMR mit S3DistCp verwenden musst, solltest du unbedingt die Amazon EMR-Preise überprüfen.

AWS DataSync

Um mit AWS DataSync große Datenmengen von einem Amazon S3-Bucket in einen anderen Bucket zu verschieben, musst du einen Übertragungsort erstellen. Einen Allzweck-Bucket findest du unter Erstellen des Übertragungsorts für einen Amazon S3-Allzweck-Bucket. Informationen zum Outpost-Bucket findest du unter Erstellen des Übertragungsorts für einen S3 in Outposts-Bucket.

Hinweis:

Ähnliche Informationen

Wie ermittle ich die Datenübertragungskosten in Amazon S3?

AWS OFFICIALAktualisiert vor einem Jahr