Comment optimiser les performances lorsque j'utilise l'AWS CLI pour charger des fichiers volumineux vers Amazon S3 ?
Je souhaite optimiser les performances lorsque j'utilise l'interface de la ligne de commande AWS (AWS CLI) pour charger des fichiers volumineux (1 Go ou plus) vers Amazon Simple Storage Service (Amazon S3).
Brève description
Si vous chargez des fichiers volumineux sur Amazon S3, il est recommandé de tirer parti des chargements partitionnés. Configurez également un seuil de taille d'objet pour les chargements partitionnés. Lorsque vous utilisez l'interface de ligne de commande AWS pour charger des fichiers, toutes les commandes AWS s3 de haut niveau effectuent automatiquement un chargement partitionné lorsque la taille de l'objet dépasse le seuil. Ces commandes de haut niveau incluent aws s3 cp et aws s3 sync.
Pour optimiser les performances, choisissez l'une des méthodes suivantes :
- Utilisez le client basé sur AWS Common Runtime (CRT) et personnalisez les configurations de chargement partitionné. Utilisez cette méthode pour les transferts de données à grande échelle ou les charges de travail complexes.
- Activez Amazon S3 Transfer Acceleration. Utilisez cette méthode pour les transferts géographiquement éloignés.
Résolution
Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Option 1 : Utiliser le client basé sur CRT avec l'AWS CLI
Pour utiliser le client basé sur CRT, procédez comme suit :
-
Ajoutez la valeur preferred_transfer_client à votre fichier de configuration AWS CLI :
[default]s3 = preferred_transfer_client = crtVous pouvez également exécuter la commande configure :
aws configure set default.s3.preferred_transfer_client crt -
Exécutez la commande cp pour vérifier que le client CRT est actif :
aws s3 cp large-file.zip s3://your-bucket-name/ --debug 2>&1 | grep -i crtExemple de sortie lorsque le client CRT est actif :
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 -
(Facultatif) Définissez la valeur target_bandwidth pour contrôler le débit maximal. Ajoutez une valeur target_bandwidth à votre fichier de configuration de l'AWS CLI :
\[default\] s3 = preferred\_transfer\_client = crt target\_bandwidth = 1Gb/sVous pouvez également exécuter la commande configure :
aws configure set default.s3.target_bandwidth 1Gb/sRemarque : ne configurez cette option que si vous avez des exigences spécifiques en matière de bande passante. L'AWS CLI optimise automatiquement la bande passante en fonction des capacités de votre système. Une mauvaise configuration de cette valeur peut surcharger les ressources de votre réseau ou de votre système. Il est recommandé de laisser cette option nulle.
Une fois que vous avez activé le client CRT, l'AWS CLI l'utilise automatiquement pour le chargement de fichiers. Cela améliore les performances et la fiabilité par rapport à l'AWS CLI standard, en particulier pour les chargements de fichiers volumineux.
Personnalisez les chargements partitionnés à l'aide des paramètres suivants :
| Paramètre | Description | Valeur par défaut | Recommandation |
|---|---|---|---|
| max_bandwidth | Bande passante maximale pour charger des données sur Amazon S3 | Aucun (illimité) | Configurez cette option pour éviter toute saturation du réseau. |
| max_concurrent_requests | Nombre de requêtes simultanées adressées à Amazon S3 | 10 | Augmentez la valeur à 20-50 pour les connexions à haut débit avec des ressources système adéquates. |
| max_queue_size | Nombre maximum de tâches dans la file d'attente de transfert | 1 000 | Augmentez les opérations par lots avec de nombreux fichiers. |
| multipart_chunksize | Taille de chaque partie chargée | 8 Mo | Augmentez la taille à 16-64 Mo pour les fichiers supérieurs à 1 Go, contenant moins de 10 000 blocs. |
| multipart_threshold | Taille de fichier déclenchant un chargement partitionné | 8 Mo | Conservez la valeur par défaut pour la plupart des [?] cas d'utilisation. |
Remarque : assurez-vous que votre machine dispose de ressources suffisantes pour prendre en charge le nombre maximal de requêtes simultanées désirées.
Option 2 : Activer S3 Transfer Acceleration
Amazon S3 Transfer Acceleration permet des transferts rapides et sécurisés sur de longues distances entre votre client et Amazon S3. Transfer Acceleration utilise les emplacements périphériques répartis dans le monde entier d'Amazon CloudFront.
Transfer Acceleration entraîne des frais supplémentaires. N'oubliez donc pas de consulter la tarification. Pour déterminer si Transfer Acceleration améliore les vitesses de transfert en fonction de votre cas d'utilisation, utilisez l’outil de comparaison des vitesses d'Amazon S3 Transfer Acceleration.
Remarque : Transfer Acceleration ne prend pas en charge les copies CopyObject dans les régions AWS.
Pour activer Amazon S3 Transfer Acceleration, procédez comme suit :
-
Activez S3 Transfer Acceleration pour votre compartiment.
-
Spécifiez le point de terminaison accéléré pour un transfert de fichier unique :
aws s3 cp large-file.zip s3://your-bucket-name/ --endpoint-url https://s3-accelerate.amazonaws.comVous pouvez également configurer le point de terminaison dans votre fichier de configuration CLI pour qu'il s'applique à tous les transferts de fichiers :
\[default\] s3 = use\_accelerate\_endpoint = true
Informations connexes
- Sujets
- Storage
- Langue
- Français
Vidéos associées


Contenus pertinents
demandé il y a 2 ans
demandé il y a un an
demandé il y a 2 ans
demandé il y a un an
AWS OFFICIELA mis à jour il y a 5 ans