Je souhaite charger une grande quantité de données dans Amazon Simple Storage Service (Amazon S3) ou copier une grande quantité de données entre des compartiments S3. Comment optimiser les performances de ce transfert de données ?

Envisagez les méthodes suivantes pour transférer de grandes quantités de données depuis ou vers des compartiments Amazon S3 :

Chargements parallèles à l'aide de l'interface de ligne de commande AWS (AWS CLI)

Remarque : assurez-vous d'utiliser la version la plus récente de l'AWS CLI. Pour plus d'informations, consultez Installation de l'interface de ligne de commande AWS.

Afin de potentiellement réduire le temps global nécessaire au transfert, divisez le transfert en plusieurs opérations qui s'excluent mutuellement. Vous pouvez exécuter plusieurs instances de aws s3 cp (copie), aws s3 mv (déplacement) ou aws s3 sync (synchronisation) en même temps.

Une façon de fractionner votre transfert est d'utiliser les paramètres --exclude et --include afin de séparer les opérations par nom de fichier. Par exemple, si vous devez copier une grande quantité de données d'un compartiment à un autre, et que tous les noms de fichiers commencent par un numéro, vous pouvez exécuter les commandes suivantes sur deux instances de l'AWS CLI.

Remarque : les paramètres --exclude et --include sont traités du côté client. De ce fait, les ressources de votre machine locale peuvent affecter les performances de l'opération.

Exécutez cette commande afin de copier les fichiers dont le nom commence par les numéros 0 à 4 :

aws s3 cp s3://srcbucket/ s3://destbucket/ --recursive --exclude "*" --include "0*" --include "1*" --include "2*" --include "3*" --include "4*"

Exécutez cette commande afin de copier les fichiers dont le nom commence par les numéros 5 à 9 : 

aws s3 cp s3://srcbucket/ s3://destbucket/ --recursive --exclude "*" --include "5*" --include "6*" --include "7*" --include "8*" --include "9*"

Important : si vous devez transférer un très grand nombre d'objets (des centaines de millions), envisagez de créer une application personnalisée à l'aide d'un kit SDK AWS afin d'effectuer la copie. Bien que l'AWS CLI puisse effectuer la copie, une application personnalisée pourrait être plus efficace à cette échelle.

AWS Snowball

Envisagez d'utiliser AWS Snowball pour les transferts entre vos centres de données on-premise et Amazon S3, particulièrement lorsque la taille des données est supérieure à 10 To.

Prenez note des limites suivantes :

  • AWS Snowball ne prend pas en charge les transferts de données entre compartiments.
  • AWS Snowball ne prend pas en charge le chiffrement côté serveur avec les clés gérées par AWS Key Management System (AWS KMS). Pour plus d'informations, consultez Chiffrement côté serveur dans AWS Snowball.

S3DistCp avec Amazon EMR

Envisagez d'utiliser S3DistCp avec Amazon EMR afin de copier les données entre des compartiments Amazon S3. S3DistCp permet la copie en parallèle de grands volumes d'objets.

Important : étant donné que cette option requiert le lancement d'un cluster Amazon EMR, assurez-vous de consulter la tarification Amazon EMR.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 07/01/2016

Date de mise à jour : 16/11/2018