Passer au contenu

Comment puis-je améliorer les vitesses de transfert lorsque je copie des données entre mon compartiment Amazon S3 et une instance Amazon EC2 ?

Lecture de 5 minute(s)
0

Je souhaite améliorer la vitesse lorsque je transfère des données depuis mon instance Amazon Elastic Compute Cloud (Amazon EC2) vers mon compartiment Amazon Simple Storage Service (Amazon S3).

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.

Utiliser la mise en réseau améliorée sur l'instance Amazon EC2

Prérequis : si vous utilisez un adaptateur réseau amélioré (ENA), remplissez les prérequis pour améliorer la mise en réseau de votre instance. Si vous utilisez l'interface Intel 82599 VF, préparez votre instance pour une mise en réseau améliorée.

Examinez les métriques de votre instance avec Amazon CloudWatch. Si la valeur NetworkPacketsOut de votre instance est supérieure à la valeur attendue, activez la mise en réseau améliorée.

Utiliser des charges de travail parallèles pour le transfert de données

Pour réduire le temps nécessaire à l’achèvement du transfert de données, divisez le transfert en plusieurs opérations s'excluant mutuellement. Par exemple, si vous utilisez l'AWS CLI, exécutez plusieurs commandes cp, mv ou sync de l’AWS CLI simultanément.

Si vous répartissez les données entre plusieurs préfixes, exécutez plusieurs opérations de l'AWS CLI qui effectuent des synchronisations distinctes en même temps. Pour obtenir des instructions, consultez la section Exécuter plusieurs opérations de l'interface de ligne de commande AWS de la rubrique Comment améliorer les performances de transfert de données lorsque j'utilise la commande de synchronisation de l'interface de ligne de commande AWS pour Amazon S3 ?

Personnaliser les configurations de chargement sur l'interface de ligne de commande AWS

Pour accélérer le transfert de données, personnalisez les valeurs de configuration de l'AWS CLI suivantes pour Amazon S3 :

  • La valeur multipart_chunksize définit la taille de chaque partie chargée par l'AWS CLI dans le cadre d'un chargement partitionné pour un fichier individuel. Optimisez cette valeur pour séparer les fichiers plus volumineux en parties de plus petite taille afin d'accélérer les vitesses de chargement.
    Remarque : un chargement partitionné nécessite que vous ne téléchargiez qu'un seul fichier en 10 000 parties distinctes au maximum. Assurez-vous que la taille des segments que vous définissez est équilibrée entre la taille du fichier et le nombre de pièces.
  • Modifiez la valeur max_concurrent_requests pour augmenter le nombre de demandes que vous pouvez envoyer simultanément à Amazon S3. La valeur par défaut est de 10 %. Après avoir augmenté cette valeur, vous pouvez recevoir une réponse stagnante. Associez une valeur max_concurrent_requests plus élevée à des charges de travail parallèles pour obtenir de meilleures vitesses de transfert globales. Par défaut, l'interface de ligne de commande AWS prend en charge le multithreading.
    Remarque : vous devez vous assurer que votre machine dispose de ressources suffisantes pour prendre en charge le nombre maximum de demandes simultanées que vous souhaitez.

Utiliser un point de terminaison de VPC pour Amazon S3

Si votre instance se trouve dans la même région AWS que votre compartiment Amazon S3, utilisez un point de terminaison de passerelle Amazon Virtual Private Cloud (Amazon VPC).

Vous pouvez également vous connecter en privé à un VPC sans passerelle Internet, appareil NAT ou connexion VPN. Les instances d'un VPC n'ont pas besoin d'adresses IP publiques pour communiquer avec des ressources, telles que votre compartiment Amazon S3. Lorsque vous utilisez un point de terminaison Amazon VPC, le trafic de données entre votre VPC et Amazon S3 est acheminé sur le réseau AWS.

Remarque : les points de terminaison de VPC pour Amazon S3 ne prennent pas en charge les demandes provenant de différentes régions AWS.

Utiliser Amazon S3 Transfer Acceleration entre des régions géographiquement éloignées

Les vitesses de transfert de données peuvent augmenter lorsque votre instance et le compartiment Amazon S3 se trouvent dans des régions géographiquement proches. Si l'instance et le compartiment se trouvent dans des régions géographiquement éloignées, activez Amazon S3 Transfer Acceleration. Avant d'activer Amazon S3 Transfer Acceleration, consultez la tarification Amazon S3.

Pour déterminer si Transfer Acceleration améliore les vitesses de transfert de données pour votre instance, utilisez l’outil de comparaison des vitesses d'Amazon S3 Transfer Acceleration.

Remarque : lorsque vous utilisez S3 Transfer Acceleration, vous ne pouvez pas utiliser l'appel d'API CopyObject entre les régions.

Mettre à niveau votre type d'instance Amazon EC2

L'utilisation élevée du processeur des instances Amazon EC2 peut avoir un impact sur les vitesses de transfert des données. Vous pouvez remplacer votre instance par un type d'instance offrant de meilleures performances en termes de mémoire et de réseau.

Remarque : pour assurer une connexion réseau fiable entre les instances EC2 et Amazon S3, choisissez un type d'instance avec une connectivité d'au moins 10 Gbit/s.

Utiliser des transferts fragmentés

Si vous transférez des fichiers volumineux, utilisez des chargements partitionnés et des requêtes HTTP partitionnées avec intervalles.

Informations connexes

Bonnes pratiques en matière de modèles de conception : optimisation des performances d'Amazon S3

AWS OFFICIELA mis à jour il y a 5 mois