Direkt zum Inhalt

Wie behebe ich einen Verbindungsfehler beim Ausführen der Befehle „cp“ oder „sync“ in meinem Amazon S3 Bucket?

Lesedauer: 5 Minute
0

Ich versuche, den AWS Command Line Interface (AWS CLI)-Befehl „cp“ oder „sync“ auf meinem Amazon Simple Storage Service (Amazon S3) Bucket auszuführen. Ich erhalte jedoch eine Fehlermeldung.

Behebung

Hinweis: Wenn du beim Ausführen von AWS CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Um die Befehle cp und sync über AWS CLI auszuführen, muss dein Computer eine Verbindung zu den richtigen Amazon-S3-Endpunkten herstellen. Andernfalls erhältst du eine Fehlermeldung, dass der Dienst keine Verbindung zur Endpunkt-URL herstellen kann, oder dass das Verbindungszeitlimit überschritten wurde. Ergreife je nach Fehler, den du erhältst, die folgenden Maßnahmen zur Problembehandlung.

Fehler „Could not connect to the endpoint URL“

Vergewissere dich, dass du die richtige Region und den richtigen Amazon-S3-Endpunkt verwenden

Wenn du einen Befehl in AWS CLI ausführst, sendet das Tool API-Anfragen an den standardmäßigen Amazon-S3-Endpunkt der AWS-Region. Wenn du eine Region angibst, sendet AWS CLI eine API-Anfrage an einen regionsspezifischen Amazon-S3-Endpunkt. Dann leitet AWS CLI die Anfrage an den regionalen Amazon-S3-Endpunkt des Buckets um.

Möglicherweise wird die Fehlermeldung „Could not connect to the endpoint URL“ angezeigt, wenn in der angegebenen Region oder dem angegebenen Endpunkt ein Tippfehler oder ein Fehler vorliegt. Der folgende Befehl führt beispielsweise zu dieser Fehlermeldung, da der Endpunktname ein zusätzliches e enthält:

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

Bevor du den Befehl cp oder sync ausführen, vergewissere dich, dass die zugehörige Region und der Amazon-S3-Endpunkt korrekt sind. Verwende das Flag**--debug**, wenn du den AWS-CLI-Befehl ausführst, um den Endpunkt zu identifizieren, den die AWS-CLI verwendet. Beispielbefehl:

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

Hinweis: Wenn du Amazon S3 Transfer Acceleration verwendest, aktiviere es für den Bucket. Verwende den Endpunkt bucket-name.s3-accelerate.amazonaws.com. Oder verwende den Dual-Stack-Endpunkt bucket-name.s3-accelerate.dualstack.amazonaws.com, um über IPv6 eine Verbindung zum Bucket herzustellen. Ersetze bucket-name durch deinen Bucket-Namen.

Stelle sicher, dass dein DNS die Amazon-S3-Endpunkte erreichen kann

Verwende ein DNS-Abfragetool wie nslookup, dig oderping, um zu überprüfen, ob dein DNS die Amazon-S3-Endpunkte erreichen kann. Beispielbefehle:

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

Wenn dein DNS keine Verbindung zu den Amazon-S3-Endpunkten herstellen kann, prüfe deine DNS-Konfiguration auf Fehler. Wenn Amazon Route 53 dein DNS-Anbieter ist, findest du weitere Informationen unter Fehlerbehebung bei Amazon Route 53.

Fehler „Verbindungs-Timeout auf Endpunkt-URL“

Stelle sicher, dass dein Netzwerk eine Verbindung zu den Amazon-S3-Endpunkten herstellen kann

Vergewissere dich, dass die Firewall deines Netzwerks Datenverkehr zu den Amazon-S3-Endpunkten an dem Port zulässt, den du für Amazon-S3-Datenverkehr verwendest.

Mit dem folgendentelnet-Befehl wird beispielsweise die Verbindung zum Amazon-S3-Endpunkt ap-southeast-2 auf Port 443 getestet:

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

Führe den folgenden tcpdump-Befehl aus, um Netzwerkpakete zu erfassen und zu analysieren und zu überprüfen, ob dein Computer den TCP-Handshake mit dem Amazon-S3-Endpunkt erfolgreich abschließen kann:

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

Hinweis: Ersetze eth0 durch deine Elastic-Network-Schnittstelle, ap-southeast-2 durch deine Amazon-S3-Endpunktregion und 443 durch deinen Port. Das Flag -s0 erfasst das gesamte Paket und**-w samplecapture.pcap** schreibt das Capture in eine Datei. Du kannst ein Tool wie Wireshark verwenden, um die Informationen in der Datei zu analysieren.

Suche nach dem TCP-Dreiwege-Handshake (SYN, SYN-ACK, ACK), um die Konnektivität zu bestätigen. Wenn du nur SYN-Pakete ohne SYN-ACK-Antworten siehst, liegt ein Firewall- oder Routing-Problem vor.

Führe den folgenden mtr-Befehl aus, um Routing-Probleme oder Paketverluste auf dem Pfad zum Amazon-S3-Endpunkt zu erkennen:

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

Hinweis: Ersetze ap-southeast-2 durch deine Region und 443 durch deinen Port. Das Flag**-n** deaktiviert die DNS-Auflösung, um den Test zu beschleunigen, und das Flag**-T** verwendet TCP-Pakete, die genauer sein können als das Internet Control Messenger Protocol (ICMP). Mit dem vorherigen Befehl werden 200 Testzyklen ausgeführt, um eine bessere statistische Genauigkeit zu erzielen, und es wird ein Bericht generiert.

Unter Windows kannst du WinMTR für ähnliche Routing-Tests verwenden. Achte auf hohe Latenz, verworfene Pakete oder Routing-Schleifen, die die Konnektivität zum Amazon-S3-Endpunkt beeinträchtigen könnten.

Überprüfen der VPC-Konfiguration für eine Amazon EC2 Instance

Wenn du den Fehler „Connection timeout“ auf einer Amazon Elastic Compute Cloud (Amazon EC2)-Instance siehst, überprüfe deine Virtual Private Cloud (VPC)-Konfiguration.

Wenn sich die EC2 Instance in einem öffentlichen Subnetz befindet, überprüfe die folgenden Einstellungen:

Wenn sich die EC2 Instance in einem privaten Subnetz befindet, überprüfe die folgenden Einstellungen:

  • Stelle sicher, dass du der Routing-Tabelle des Subnetzes ein NAT-Gateway zugeordnet hast.
  • Wenn du einen VPC-Endpunkt für Amazon S3 verwendest, stelle sicher, dass in der AWS-CLI-Konfigurationsdatei die richtige Region festgelegt ist.
    Hinweis: VPC-Endpunkte für Amazon S3 sind regionsspezifisch. Beispiel: Du führst sync mit --region us-west-1 aus, aber der VPC-Endpunkt befindet sich in einer anderen Region. Infolgedessen erhältst du den Fehler „Could not connect to the endpoint URL“.

Wenn du AWS PrivateLink verwendest, um innerhalb deiner VPC auf Amazon S3 zuzugreifen, verwende den Reachability Analyzer. Mit diesem Tool kannst du Fehlkonfigurationen in Sicherheitsgruppen, Netzwerk-ACLs oder Routing-Tabellen identifizieren, die die Konnektivität blockieren könnten. Erstelle beispielsweise eine Reachability Analyzer-Analyse, um den Pfad zwischen deiner Instance und dem Schnittstellenendpunkt zu überprüfen.