Come posso ottimizzare le prestazioni quando utilizzo AWS CLI per caricare file di grandi dimensioni in Amazon S3?
Desidero ottimizzare le prestazioni quando utilizzo l'Interfaccia della linea di comando AWS (AWS CLI) per caricare file di grandi dimensioni (1 GB o più) in Amazon Simple Storage Service (Amazon S3).
Breve descrizione
Se carichi file di grandi dimensioni in Amazon S3, è consigliabile utilizzare i caricamenti in più parti. Inoltre, configura una dimensione massima dell'oggetto per i caricamenti in più parti. Quando utilizzi AWS CLI per caricare file, tutti i comandi aws s3 di alto livello eseguono automaticamente un caricamento in più parti quando la dimensione dell'oggetto supera la soglia configurata. I comandi di alto livello includono aws s3 cp e aws s3 sync.
Per ottimizzare le prestazioni, scegli uno dei seguenti metodi:
- Utilizza il client basato su AWS Common Runtime (CRT) e personalizza le configurazioni del caricamento in più parti. Utilizza questo metodo per trasferimenti di dati su larga scala o carichi di lavoro complessi.
- Attiva Accelerazione del trasferimento Amazon S3. Utilizza questo metodo per trasferimenti geograficamente distanti.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Opzione 1: Utilizza il client basato su CRT con AWS CLI
Per utilizzare il client basato su CRT, completa i seguenti passaggi:
-
Aggiungi preferred_transfer_client al file di configurazione di AWS CLI:
[default]s3 = preferred_transfer_client = crtOppure esegui il comando configure:
aws configure set default.s3.preferred_transfer_client crt -
Esegui il comando cp per verificare che il client CRT sia attivo:
aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crtEsempio di output quando il client CRT è attivo:
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 -
(Facoltativo) Imposta target_bandwidth per controllare il throughput massimo. Aggiungi un valore target_bandwidth al file di configurazione di AWS CLI:
[default] s3 = preferred_transfer_client = crt target_bandwidth = 1Gb/sOppure esegui il comando configure:
aws configure set default.s3.target_bandwidth 1Gb/sNota: configuralo solo se hai requisiti di larghezza di banda specifici. AWS CLI ottimizza automaticamente la larghezza di banda in base alle funzionalità del sistema. Una configurazione errata di questo valore può sovraccaricare le risorse di rete o di sistema. È consigliabile lasciare questa opzione impostata su un valore nullo.
Dopo aver attivato il client basato su CRT, AWS CLI lo utilizza automaticamente per il caricamento dei file. Ciò migliora le prestazioni e l'affidabilità rispetto alla configurazione standard di AWS CLI, in particolare per il caricamento di file di grandi dimensioni.
Personalizza i caricamenti in più parti con questi parametri:
| Parametro | Descrizione | Valore predefinito | Raccomandazione |
|---|---|---|---|
| max_bandwidth | Larghezza di banda massima per caricare dati in Amazon S3 | Nessuna (illimitata) | Impostala per evitare la saturazione della rete. |
| max_concurrent_requests | Numero di richieste concorrenti ad Amazon S3 | 10 | Aumentalo a 20-50 per connessioni ad alta larghezza di banda con risorse di sistema adeguate. |
| max_queue_size | Numero massimo di operazioni nella coda di trasferimento | 1.000 | Aumentalo per operazioni in batch con molti file. |
| multipart_chunksize | Dimensione di ogni parte caricata | 8 MB | Aumentala a 16-64 MB per file superiori a 1 GB con meno di 10.000 blocchi. |
| multipart_threshold | Dimensione del file che attiva un caricamento in più parti | 8 MB | Mantieni l'impostazione predefinita per la maggior parte dei casi d'uso [?]. |
Nota: verifica che il computer disponga di risorse sufficienti per supportare il numero massimo di richieste concorrenti di cui hai bisogno.
Opzione 2: Attiva Accelerazione del trasferimento S3
Accelerazione del trasferimento Amazon S3 consente di eseguire trasferimenti rapidi e sicuri su lunghe distanze tra il client e Amazon S3. Accelerazione del trasferimento utilizza le posizioni edge distribuite a livello globale di Amazon CloudFront.
Accelerazione del trasferimento comporta costi aggiuntivi, per cui consulta i prezzi. Per stabilire se Accelerazione del trasferimento effettivamente migliora le velocità di trasferimento nello specifico caso d'uso, utilizza lo strumento di confronto della velocità di Accelerazione del trasferimento Amazon S3.
Nota: Accelerazione del trasferimento non supporta le copie CopyObject tra Regioni AWS.
Per attivare Accelerazione del trasferimento Amazon S3, completa i seguenti passaggi:
-
Attiva Accelerazione del trasferimento S3 per il bucket.
-
Specifica l'endpoint accelerato per un singolo trasferimento di file:
aws s3 cp large-file.zip s3://your-bucket-name/ --endpoint-url https://s3-accelerate.amazonaws.comOppure configura l'endpoint nel file di configurazione di CLI per applicarlo a tutti i trasferimenti di file:
[default] s3 = use_accelerate_endpoint = true
Informazioni correlate
AWS CLI S3 Configuration (Configurazione di S3 in AWS CLI)
- Argomenti
- Storage
- Lingua
- Italiano
Video correlati

