Passer au contenu

Comment puis-je un problème lié à une erreur de connexion liée à l’exécution des commandes « cp » ou « sync » sur un compartiment Amazon S3 ?

Lecture de 6 minute(s)
0

Je souhaite exécuter la commande « cp » ou « sync » de l'interface de ligne de commande AWS (AWS CLI) sur mon compartiment Amazon Simple Storage Service (Amazon S3). Cependant, un message d’erreur s’affiche.

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 les erreurs liées à l’AWS CLI. Assurez-vous également que vous utilisez bien la version la plus récente de l'AWS CLI.

Pour exécuter les commandes cp ou sync sur l’AWS CLI, votre machine doit se connecter aux points de terminaison Amazon S3 appropriés. Sinon, un message d’erreur s’affiche, indiquant que le service ne peut pas se connecter à l’URL du point de terminaison ou que le délai de connexion a expiré. En fonction de l’erreur que vous recevez, effectuez les actions de dépannage suivantes.

Erreur « Could not connect to the endpoint URL »

Vérifier que vous utilisez la région et le point de terminaison Amazon S3 appropriés

Lorsque vous exécutez une commande dans l’AWS CLI, celle-ci envoie des requêtes d’API au point de terminaison Amazon S3 de la région AWS. Lorsque vous spécifiez une région, l'AWS CLI envoie une requête d'API à un point de terminaison Amazon S3 spécifique à la région. L’AWS CLI peut ensuite rediriger la demande vers le point de terminaison Amazon S3 régional du compartiment.

Le message d’erreur « Could not connect to the endpoint URL » peut survenir si la région ou le point de terminaison spécifié contient une faute de frappe ou une erreur. Par exemple, la commande suivante génère cette erreur, car le nom du point de terminaison contient un e de trop :

aws s3 cp filename s3://DOC-EXAMPLE-BUCKET/ --endpoint-url https://s3-acceleratee.amazonaws.com

Avant d’exécuter la commande cp ou sync, vérifiez que la région et le point de terminaison Amazon S3 associés sont bien exacts. Utilisez l'indicateur --debug lorsque vous exécutez la commande AWS CLI pour identifier le point de terminaison utilisé par l'AWS CLI. Exemple de commande :

aws s3 cp filename s3://DOC-EXAMPLE-BUCKET/ --debug

Remarque : Si vous utilisez Amazon S3 Transfer Acceleration, activez-le pour le compartiment. Utilisez le point de terminaison bucket-name.s3-accelerate.amazonaws.com. Vous pouvez également utiliser le point de terminaison à double pile bucket-name.s3-accelerate.dualstack.amazonaws.com pour vous connecter au compartiment via IPv6. Remplacez bucket-name par le nom de votre compartiment.

Vérifier que votre DNS peut se connecter aux points de terminaison Amazon S3

Pour vérifier si le DNS peut se connecter aux points de terminaison Amazon S3, utilisez un outil de requête DNS à l’instar de nslookup, dig ou de ping. Exemples de commande :

nslookup s3.amazonaws.com
dig s3.amazonaws.com
ping s3.amazonaws.com

Si le DNS ne parvient pas à se connecter aux points de terminaison Amazon S3, vous devez alors résoudre les problèmes de configuration de votre DNS. Si vous utilisez Amazon Route 53 comme fournisseur DNS, consultez la section Résolution des problèmes liés à Amazon Route 53.

Erreur « Connect timeout on endpoint URL »

Vérifier que votre réseau peut se connecter à ces points de terminaison Amazon S3

Vérifiez que le pare-feu de votre réseau autorise le trafic vers les points de terminaison Amazon S3 sur le port utilisé pour le trafic Amazon S3.

Par exemple, la commande telnet suivante permet de tester la connexion au point de terminaison Amazon S3 régional ap-southeast-2 sur le port 443 :

telnet s3.ap-southeast-2.amazonaws.com 443

Pour capturer et analyser les paquets réseau et vérifier que votre machine peut établir correctement la liaison TCP avec le point de terminaison Amazon S3, exécutez la commande tcpdump :

sudo tcpdump -i eth0 'host s3.ap-southeast-2.amazonaws.com and port 443' -s0 -w samplecapture.pcap

Remarque : Remplacez eth0 par votre interface réseau Elastic, ap-southeast-2 par votre région de point de terminaison Amazon S3 et 443 par votre port. L'indicateur -s0 capture le paquet complet et -w samplecapture.pcap écrit la capture dans un fichier. Vous pouvez utiliser un outil tel que Wireshark pour analyser les informations contenues dans le fichier.

Recherchez l’établissement d’une liaison à trois voies TCP (SYN, SYN-ACK, ACK) pour confirmer la connectivité. Si vous ne voyez que des paquets SYN sans réponses SYN-ACK, cela signifie qu'un problème de pare-feu ou de routage s’est produit.

Pour détecter les problèmes de routage ou la pertes de paquets sur le chemin menant au point de terminaison Amazon S3, exécutez la commande mtr suivante :

mtr -n -T -c 200 s3.ap-southeast-2.amazonaws.com -P 443 --report

Remarque : Remplacez ap-southeast-2 par votre région et 443 par votre port. L'indicateur -n désactive la résolution DNS pour accélérer le test et l'indicateur -T utilise des paquets TCP qui peuvent être plus précis que le protocole ICMP (Internet Control Messenger Protocol). La commande précédente exécute 200 cycles de test pour une meilleure précision statistique et génère un rapport.

Sous Windows, vous pouvez utiliser WinMTR pour des tests de routage similaires. Recherchez les temps de latence élevés, les paquets abandonnés ou les boucles de routage susceptibles d'affecter la connectivité au point de terminaison Amazon S3.

Dans le cas d’une instance Amazon EC2, vérifier la configuration du VPC

Si l'erreur « Connection timeout » (Délai de connexion) s'affiche sur une instance Amazon Elastic Compute Cloud (Amazon EC2), vérifiez la configuration de votre cloud privé virtuel (VPC).

Si l’instance EC2 se trouve dans un sous-réseau public, vérifiez les paramètres suivants :

Si l’instance EC2 se trouve dans un sous-réseau privé, vérifiez les paramètres suivants :

  • Assurez-vous d'associer une passerelle NAT à la table de routage du sous-réseau.
  • Si vous utilisez le point de terminaison de VPC pour Amazon S3, vérifiez que le fichier de configuration de l’AWS CLI indique la région appropriée.
    Remarque : Les points de terminaison de VPC pour Amazon S3 sont spécifiques à chaque région. Par exemple, vous exécutez sync avec --region us-west-1, mais le point de terminaison de VPC se trouve dans une autre région. Vous recevez alors le message d’erreur « Could not connect to the endpoint URL ».

Lorsque vous utilisez AWS PrivateLink pour accéder à Amazon S3 dans votre VPC, utilisez l'Analyseur d'accessibilité. Cet outil vous aide à identifier les erreurs de configuration dans les groupes de sécurité, les ACL réseau ou les tables de routage susceptibles de bloquer la connectivité. Par exemple, créez une analyse de l’Analyseur d’accessibilité pour vérifier le chemin entre votre instance et le point de terminaison d’interface.

AWS OFFICIELA mis à jour il y a un an