Comment puis-je améliorer les vitesses de transfert pour copier des données entre mon compartiment S3 et mon instance EC2 ?

Lecture de 5 minute(s)
0

Je souhaite améliorer la vitesse de transfert de données depuis mon instance Amazon Elastic Compute Cloud (Amazon EC2) vers mon compartiment Amazon Simple Storage Service (Amazon S3).

Brève description

Les vitesses de transfert lorsque vous copiez, déplacez ou synchronisez des données d'Amazon EC2 vers Amazon S3 dépendent de plusieurs facteurs. Pour améliorer les vitesses de transfert entre une instance EC2 et un compartiment S3, appliquez les méthodes décrites dans la résolution suivante.

Solution

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

La mise en réseau améliorée fournit une bande passante plus élevée, des performances de paquets par seconde (PPS) supérieures et des latences plus faibles entre les instances. Vous pouvez activer la mise en réseau améliorée sans frais supplémentaires.

Si le taux de PPS de votre instance EC2 semble atteindre son plafond, cela signifie que l'instance a probablement atteint les seuils supérieurs du pilote d'interface réseau. Dans ce cas, activez la mise en réseau améliorée.

**Remarque :**Assurez-vous de consulter les exigences de l'instance pour une 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 global nécessaire pour terminer le transfert de données, divisez le transfert en plusieurs opérations s'excluant mutuellement. Par exemple, si vous utilisez l'interface de ligne de commande AWS (AWS CLI), vous pouvez exécuter des instances simultanées d'AWS S3 cp, AWS S3 mv ou AWS S3 sync. Si vous répartissez les données entre plusieurs préfixes, exécutez plusieurs instances de l'interface de ligne de commande AWS pour effectuer des opérations de synchronisation distinctes en parallèle.

Par exemple, vous pouvez exécuter des opérations de synchronisation parallèles pour différents préfixes :

  • aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/folder1 s3://destination-AWSDOC-EXAMPLE-BUCKET/folder1
  • aws s3 sync s3://source-AWSDOC-EXAMPLE-BUCKET/folder2 s3://destination-AWSDOC-EXAMPLE-BUCKET/folder2

**Remarque :**Si vous recevez des erreurs lorsque vous exécutez des commandes AWS CLI, vérifiez que vous utilisez une version récente d’AWS CLI.

Personnalisez les configurations de télé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 :

  • **multipart_chunksize :**Cette valeur définit la taille de chaque partie chargée par l'interface de ligne de commande AWS dans le cadre d'un téléchargement partitionné pour un fichier individuel. Ce paramètre vous permet de décomposer un fichier plus volumineux en parties plus petites pour accélérer les vitesses de télé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.
  • **nombre maximal de \ _requêtes simultanées :**Par défaut, l'interface de ligne de commande AWS prend en charge le multithreading. 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 obtenir une réponse stagnante. Toutefois, associez une valeur max_concurrent_requests plus élevée à des charges de travail parallèles pour obtenir de meilleures vitesses de transfert globales.
    **Remarque :**Plus de ressources sont consommées sur votre machine lorsque vous exécutez davantage de threads. Vous devez vous assurer que votre machine dispose de suffisamment de ressources pour prendre en charge le nombre maximum de demandes simultanées que vous souhaitez.

Utiliser un point de terminaison VPC pour Amazon S3

Si votre instance EC2 se trouve dans la même région AWS que le compartiment S3, utilisez un point de terminaison de cloud privé virtuel (VPC) pour Amazon S3. Les points de terminaison VPC peuvent contribuer à améliorer les performances globales et à réduire la charge sur votre traduction d'adresses réseau (NAT).

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 qu'un compartiment Amazon S3. Lorsque vous utilisez un point de terminaison VPC, le trafic de données entre le VPC et Amazon S3 est acheminé sur le réseau AWS.

Utiliser l'accélération du transfert S3 entre des régions géographiquement éloignées

La vitesse de transfert des données peut être plus élevée si l'instance EC2 et le compartiment S3 sont géographiquement plus proches l'un de l'autre. Si l'instance et le compartiment se trouvent dans des régions géographiquement éloignées, activez Amazon S3 Transfer Acceleration. L'accélération des transferts entraîne des frais supplémentaires. N'oubliez donc pas de consulter la tarification d'Amazon S3.

Pour déterminer si l'accélération des transferts améliorera les vitesses de transfert en fonction de votre cas d'utilisation, utilisez l'outil de comparaison des vitesses d'accélération de transfert Amazon S3.

Mettez à niveau votre type d'instance EC2

L'utilisation élevée du processeur des instances EC2 peut influencer les vitesses de transfert. Vous pouvez mettre à niveau votre instance vers un autre type d'instance qui fournit de meilleures performances en termes de mémoire et de réseau. Les tailles d'instance plus importantes pour un type d'instance offrent généralement de meilleures performances réseau que les tailles d'instance plus petites du même type.

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

Utiliser des transferts fragmentés

Si vous transférez des fichiers volumineux, les chargements partitionnés et les fichiers GET à distance peuvent contribuer à améliorer les performances globales de transfert.

Informations connexes

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

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an