Direkt zum Inhalt

Wie optimiere ich die Leistung, wenn ich AWS CLI verwende, um große Dateien auf Amazon S3 hochzuladen?

Lesedauer: 4 Minute
0

Ich möchte die Leistung optimieren, wenn ich die AWS Command Line Interface (AWS CLI) verwende, um große Dateien (1 GB oder größer) auf Amazon Simple Storage Service (Amazon S3) hochzuladen.

Kurzbeschreibung

Wenn du große Dateien auf Amazon S3 hochlädst, empfiehlt es sich, mehrteilige Uploads zu verwenden. Konfiguriere außerdem bei mehrteiligen Uploads einen Schwellenwert für die Objektgröße. Wenn du die AWS CLI zum Hochladen von Dateien verwendest, führen alle übergeordneten aws s3-Befehle automatisch einen mehrteiligen Upload durch, wenn die Objektgröße den Schwellenwert überschreitet. Zu diesen übergeordneten Befehlen gehören aws s3 cp und aws s3 sync.

Wähle eine der folgenden Methoden aus, um die Leistung zu optimieren:

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (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.

Option 1: Den CRT-basierten Client mit AWS CLI verwenden

Gehe wie folgt vor, um den CRT-basierten Client zu verwenden:

  1. Füge den preferred_transfer_client zu der AWS-CLI-Konfigurationsdatei hinzu:

    [default]s3 =
    preferred_transfer_client = crt

    Oder führe den configure-Befehl aus:

    aws configure set default.s3.preferred_transfer_client crt
  2. Führe den cp-Befehl aus, um zu überprüfen, ob der CRT-Client aktiv ist:

    aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crt

    Beispielausgabe, wenn der CRT-Client aktiv ist:

    aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crt  
    \[DEBUG\] \[2025-12-01T07:58:46Z\] \[00007fe20f9b9340\] \[tls-handler\] - Set security policy to AWS-CRT-SDK-TLSv1.0-2025-PQ (minimum\_tls\_version: 128; cipher\_pref: 0)  
    2025-12-01 07:58:46,742 - MainThread - s3transfer.crt - DEBUG - Recommended CRT throughput target in gbps: None  
    2025-12-01 07:58:46,742 - MainThread - s3transfer.crt - DEBUG - Using CRT throughput target in gbps: 10.0
  3. (Optional) Lege die target_bandwidth fest, um den maximalen Durchsatz zu steuern. Füge der AWS-CLI-Konfigurationsdatei einen target_bandwidth-Wert hinzu:

    \[default\]  
    s3 =  
        preferred\_transfer\_client = crt  
        target\_bandwidth = 1Gb/s

    Oder führe den configure-Befehl aus:

    aws configure set default.s3.target_bandwidth 1Gb/s

    Hinweis:  Konfiguriere dies nur, wenn du bestimmte Bandbreitenanforderungen hast. AWS CLI optimiert die Bandbreite automatisch auf der Grundlage der Systemfunktionen. Eine Fehlkonfiguration dieses Werts kann die Netzwerk- oder Systemressourcen überlasten. Es hat sich bewährt, diese Option auf Null zu belassen.

Nachdem du den CRT-basierten Client aktiviert hast, verwendet AWS CLI den Client automatisch für Datei-Uploads. Dies verbessert die Leistung und Zuverlässigkeit im Vergleich zur standardmäßigen AWS-CLI, insbesondere bei großen Datei-Uploads.

Passe mehrteilige Uploads mit diesen Parametern an:

ParameterBeschreibungStandardwertEmpfehlung
max_bandwidthMaximale Bandbreite zum Hochladen von Daten auf Amazon S3Keine (unbegrenzt)Diese Einstellung verhindert eine Überlastung des Netzwerks.
max_concurrent_requestsAnzahl gleichzeitiger Anforderungen an Amazon S310Erhöhe den Wert auf 20–50 für Verbindungen mit hoher Bandbreite und ausreichenden Systemressourcen.
max_queue_sizeMaximale Anzahl von Aufgaben in der Übertragungswarteschlange1000Erhöhe den Wert für Batch-Operationen mit vielen Dateien.
multipart_chunksizeGröße jedes hochgeladenen Teils8 MBErhöhe den Wert auf 16–64 MB bei Dateien von über 1 GB mit weniger als 10 000 Blöcken.
multipart_thresholdDateigröße, die einen mehrteiligen Upload auslöst8 MBBehalte die Standardeinstellung für die meisten [?]-Anwendungsfälle.

Hinweis: Stelle sicher, dass der Computer über genügend Ressourcen verfügt, um die maximale Anzahl gleichzeitiger Anforderungen zu unterstützen, die du benötigst.

Option 2: S3 Transfer Acceleration aktivieren

Amazon S3 Transfer Acceleration bietet schnelle und sichere Übertragungen über große Entfernungen zwischen dem Client und Amazon S3. Transfer Acceleration verwendet die global verteilten Edge-Standorte von Amazon CloudFront.

Bei Transfer Acceleration fallen zusätzliche Gebühren an. Überprüfe daher unbedingt die Preise. Überprüfe das Tool Amazon S3 Transfer Acceleration Speed Comparison um festzustellen, ob Transfer Acceleration die Übertragungsgeschwindigkeiten für den Anwendungsfall verbessert.

Hinweis: Transfer Acceleration unterstützt CopyObject-Kopien in AWS-Regionen nicht.

Gehe wie folgt vor, um Amazon S3 Transfer Acceleration zu aktivieren:

  1. Aktiviere S3 Transfer Acceleration für deinen Bucket.

  2. Gib den beschleunigten Endpunkt für die Übertragung einer einzelnen Datei an:

    aws s3 cp large-file.zip s3://your-bucket-name/ --endpoint-url https://s3-accelerate.amazonaws.com

    Oder konfiguriere den Endpunkt in der CLI-Konfigurationsdatei so, dass er für alle Dateiübertragungen gilt:

    \[default\]  
    s3 =  
        use\_accelerate\_endpoint = true

Ähnliche Informationen

AWS-CLI-S3-Konfiguration

Was ist das AWS Command Line Interface?