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. Si vous utilisez l'AWS CLI, toutes les commandes aws s3 de haut niveau effectuent automatiquement un chargement partitionné lorsque l'objet est volumineux. Ces commandes de haut niveau incluent aws s3 cp et aws s3 sync.
Pour optimiser les performances, choisissez l'une des méthodes suivantes :
Si vous avez besoin de transferts de données à grande échelle ou de charges de travail complexes, utilisez le client basé sur AWS CRT pour AWS CLI.
Remarque : Vous devez utiliser la version 2 de l'AWS CLI pour cette méthode. Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez l’article Résoudre les erreurs AWS CLI.
Résolution
Utiliser le client basé sur CRT avec l'AWS CLI
Activer le client basé sur CRT
Pour activer le client basé sur CRT, configurez l'AWS CLI. Pour ce faire, ajoutez la configuration à votre fichier de configuration AWS CLI (~/.aws/config) ou utilisez l'AWS CLI pour la définir.
Ajoutez le preferred_transfer_client à votre fichier de configuration AWS CLI :
[default]
s3 =
preferred_transfer_client = crt
Saisissez la commande suivante dans votre terminal :
aws configure set default.s3.preferred_transfer_client crt
Configurer l'option target_bandwidth (facultatif)
Cette option contrôle la bande passante cible que le client de transfert essaie d'atteindre pour les chargements et les téléchargements S3. Par défaut, l'AWS CLI choisit une bande passante cible qui correspond à la bande passante réseau maximale du système.
Remarque : Soyez prudent lorsque vous configurez la valeur target_bandwidth. Si la valeur est supérieure aux capacités des ressources de votre client local, vous risquez de surcharger votre client. Il est recommandé de laisser cette option nulle.
Une fois que vous avez activé le client CRT, l'AWS CLI utilise automatiquement le client pour les opérations Amazon S3, y compris les chargements de fichiers. Cela améliore les performances et la fiabilité par rapport à l'AWS CLI standard, en particulier pour les chargements de fichiers volumineux.
Personnaliser les configurations de chargement
Personnalisez les configurations de l'AWS CLI pour Amazon S3 à l'aide des paramètres suivants :
- max_concurrent_requests Cette valeur définit le nombre de requêtes pouvant être envoyées simultanément à Amazon S3. La valeur par défaut est de 10 %.
Remarque : Si vous exécutez des threads supplémentaires, votre machine consomme davantage de ressources. Assurez-vous que votre machine dispose de ressources suffisantes pour prendre en charge le nombre maximal de requêtes simultanées désirées.
- max_queue_size Cette valeur définit le nombre maximum de tâches dans la file d'attente. La valeur par défaut est de 1 000.
- multipart_threshold Cette valeur définit le seuil de taille pour les chargements partitionnés de fichiers individuels. La valeur par défaut est de 8 Mo.
- multipart_chunksize Cette valeur définit la taille de chaque partie chargée par l'AWS CLI dans le cadre d'un chargement partitionné pour un fichier individuel. Ce paramètre permet de réduire un fichier volumineux (par exemple, 300 Mo) en petites portions pour accélérer le chargement. La valeur par défaut est de 8 Mo.
Remarque : Un chargement partitionné exige qu'un seul fichier soit chargé en moins de 10 000 parties distincte. Vérifiez que la taille des parties définie correspond à la taille du fichier et au nombre de parties.
- max_bandwidth Cette valeur définit la bande passante maximale pour charger des données vers Amazon S3. Il n'existe aucune valeur par défaut.
Activer Amazon 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.
Informations connexes
Configuration S3 de l'AWS CLI
Qu’est-ce que l'interface de la ligne de commande AWS ?