L'utilisation de la console Amazon S3 pour le téléchargement ou le transfert de données vers Amazon S3 convient pour les petites quantités de données. Existe-t-il un moyen plus efficace pour transférer des quantités de données plus importantes ?

L'interface conviviale de la console Amazon S3 permet de télécharger ou de copier facilement de petites quantités de données vers les compartiments Amazon S3. Dans le cas de volumes plus importants de données, vous pouvez avoir recours à d'autres méthodes afin d'optimiser les opérations.

Utilisez les méthodes suivantes lors du transfert de quantités importantes de données à partir ou à destination de compartiments S3.

Si les compartiments S3 se trouvent dans la même région, vous pouvez utiliser l'interface de ligne de commande AWS pour exécuter simultanément plusieurs instances de commandes cp (copier), mv (déplacer) ou sync (synchroniser) AWS S3 avec le filtre --exclude afin d'améliorer les performances de traitement des multithreads. Comme décrit dans la section Utilisation de filtres Exclude et Include, vous pouvez démarrer plusieurs instances de l'interface de ligne de commande AWS afin de lancer simultanément les commandes cp, mv ou sync avec des filtres --exclude s'excluant mutuellement. Ainsi, chaque instance exécute les opérations uniquement sur les objets qui ne sont pas exclus explicitement. Par exemple, dans le cas d'un compartiment S3 source nommé s3://srcbucket/ et un compartiment S3 de destination nommé s3://destbucket/ où la source contient un grand nombre de fichiers commençant par une lettre minuscule, vous pouvez ouvrir deux instances de l'interface de ligne de commande AWS, puis exécuter les commandes suivantes pour effectuer une copie multithread des fichiers de s3://srcbucket/ vers s3://destbucket/ :

aws s3 cp s3://srcbucket/ s3://destbucket/

--recursive --exclude "a*" --exclude "b*" --exclude "c*" --exclude "d*" --exclude "e*"

--exclude "f*" --exclude "g*" --exclude "h*" --exclude "i*" --exclude "j*" --exclude "k*"

--exclude "l*" --exclude "m*" --exclude "n*"

aws s3 cp s3://srcbucket/ s3://destbucket/

--recursive --exclude "o*" --exclude "p*" --exclude "q*" --exclude "r*" --exclude "s*"

--exclude "t*" --exclude "u*" --exclude "v*" --exclude "w*" --exclude "x*"

--exclude "y*" --exclude "z*"

Il s'agit là d'un exemple très simple qui ne prend pas en compte l'existence éventuelle de dossiers, de majuscules ou de chiffres. La première instance de la commande copie tous les fichiers qui ne commencent pas par les lettres minuscules a à n, tandis que la deuxième instance de la commande copie tous les fichiers qui ne commencent pas par les lettres minuscules o à z. Lors de l'utilisation de cette méthode, vérifiez vos paramètres exclude pour éviter les conflits potentiels suite à l'exécution par les deux instances d'opérations sur les mêmes fichiers.

Pour tirer parti de threads supplémentaires, limitez la portée du filtre --exclude pour chaque instance de l'interface de commande AWS que vous exécutez. Il est possible d'utiliser la même procédure pour déplacer ou synchroniser des fichiers entre les compartiments source et de destination. L'utilisation de plusieurs threads peut améliorer de manière significative le débit de données. En outre, ces commandes prennent en charge l'utilisation d'un répertoire local comme source ou destination, ce qui vous permet de copier, déplacer ou synchroniser des fichiers de votre ordinateur local vers un compartiment Amazon S3.

Cette approche peut néanmoins entraîner des ralentissements en raison de plusieurs requêtes de noms de clés/fichiers séquentiels à destination de S3. Pour en savoir plus sur cette limitation potentielle, consultez Considérations en matière de débit de demandes et de performances.

Envisagez d'utiliser AWS Import/Export Snowball pour les téléchargements S3 supérieurs à 1 To. Snowball est une solution de transport de données reposant sur des appliances sécurisées. Elle peut prendre en charge le transfert de volumes de données de l'ordre de plusieurs pétaoctets, depuis et vers AWS. L'utilisation de Snowball permet de relever les défis courants liés aux transferts de données à grande échelle, tels que les coûts réseau élevés, les délais de transfert prolongés et les problèmes de sécurité. Grâce à Snowball, vous pouvez transférer des données facilement, rapidement et de manière sécurisée, le tout à seulement un cinquième du coût d'un transfert via une connexion Internet haut débit.

Pour en savoir plus, consultez AWS Import/Export Snowball.

Lorsque la rapidité de transfert est primordiale, envisagez d'utiliser S3DistCp avec Amazon Elastic MapReduce (Amazon EMR). Lors de l'utilisation de S3DistCp avec un cluster EMR, il est possible de déplacer rapidement des objets entre deux compartiments S3. Le cluster EMR génère un coût supplémentaire mais offre une tolérance aux pannes et une vitesse optimales. Pour plus d'informations sur cette option, consultez Copie distribuée à l'aide de S3DistCp.

Amazon S3, copier, déplacer, synchroniser, performances, optimiser, exclure, multithread


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