Passer au contenu

Comment optimiser les performances lorsque j'utilise l'AWS CLI pour charger des fichiers volumineux vers Amazon S3 ?

Lecture de 5 minute(s)
0

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 :

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 :

  1. Ajoutez la valeur preferred_transfer_client à votre fichier de configuration AWS CLI :

    [default]s3 =
    preferred_transfer_client = crt

    Vous pouvez également exécuter la commande configure :

    aws configure set default.s3.preferred_transfer_client crt
  2. 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 crt

    Exemple 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
  3. (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/s

    Vous pouvez également exécuter la commande configure :

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

    Remarque : 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ètreDescriptionValeur par défautRecommandation
max_bandwidthBande passante maximale pour charger des données sur Amazon S3Aucun (illimité)Configurez cette option pour éviter toute saturation du réseau.
max_concurrent_requestsNombre de requêtes simultanées adressées à Amazon S310Augmentez la valeur à 20-50 pour les connexions à haut débit avec des ressources système adéquates.
max_queue_sizeNombre maximum de tâches dans la file d'attente de transfert1 000Augmentez les opérations par lots avec de nombreux fichiers.
multipart_chunksizeTaille de chaque partie chargée8 MoAugmentez la taille à 16-64 Mo pour les fichiers supérieurs à 1 Go, contenant moins de 10 000 blocs.
multipart_thresholdTaille de fichier déclenchant un chargement partitionné8 MoConservez 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 :

  1. Activez S3 Transfer Acceleration pour votre compartiment.

  2. 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.com

    Vous 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

Configuration S3 de l'AWS CLI

Qu’est-ce que l'interface de la ligne de commande AWS ?

AWS OFFICIELA mis à jour il y a 7 mois