Wie behebe ich Fehler und reduziere die erhöhte Latenz von CloudFront?

Lesedauer: 5 Minute
0

Ich sehe eine erhöhte Latenz bei Antworten von Amazon CloudFront. Wie kann ich die Ursache identifizieren und die Latenz reduzieren?

Kurzbeschreibung

Um die Latenz von CloudFront zu beheben, ermitteln Sie zunächst, welche der folgenden Ereignisse zur Latenz beitragen:

  • Die Zeit, die Anfragen zwischen dem Client und den CloudFront-Edge-Standorten benötigen. Dazu gehören die Suche nach dem Domain Name System (DNS) sowie TCP- und SSL/TLS-Verhandlungen.
  • Die Zeit, die Anfragen zwischen CloudFront und dem Ursprung benötigen. Dazu gehören der ursprüngliche DNS-Lookup-Prozess, TCP- und SSL/TLS-Verhandlungen mit dem Ursprung und die Zeit, die der Ursprung benötigt, um ein Objekt zu verarbeiten und mit ihm zu antworten.

Folgen Sie dann den Schritten zur Problembehandlung für die Ereignisse, die die meiste Latenz verursachen.

Lösung

Ermitteln Sie Ereignisse, die Latenz von CloudFront verursachen:

Führen Sie einen der folgenden Schritte aus, um festzustellen, welche Ereignisse eine Latenz von CloudFront verursachen:

  • Führen Sie den folgenden cURL-Befehl aus:
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com

Hinweis: Ersetzen Sie example.com durch Ihren CloudFront-Domainnamen oder alternativen Domainnamen (CNAME) und URL-Pfad.

Lesen Sie basierend auf der benötigten Zeit für jedes Ereignis oder jede Anfrage den entsprechenden Abschnitt zur Lösung in diesem Artikel.

Wenn Sie in der Vergangenheit eine Latenz beobachtet haben, überprüfen Sie die Felder benötigte Zeit und Zeit bis zum ersten Byte in den CloudFront-Zugriffsprotokollen. CloudFront-Zugriffsprotokolle protokollieren nicht die Zeit, die der Client für den DNS-Lookup-Prozess und die TCP- und SSL/TLS-Verhandlungen benötigt

Reduzierung der Latenz in der DNS-Auflösung

  • Erhöhen Sie die DNS-Caching-Zeit im clientseitigen DNS.
  • Erhöhen Sie die Time to Live (TTL) des Caches auf dem lokalen DNS-Server.
  • Erhöhen Sie die TTL im DNS-Eintrag in Ihrem DNS-Registrar/Anbieter.
  • Wenn der Resolver-DNS-Server Ihres Internetdienstanbieters Latenz verursacht, sollten Sie die Verwendung öffentlicher DNS-Server in Betracht ziehen.

Reduzierung der Latenz in der TCP- und SSL/TLS-Verhandlungszeit

  • Überprüfen Sie Ihre lokale Netzwerkbandbreite und Internetbandbreite.
  • Prüfen Sie, ob bei Ihrem Internetdienstanbieter oder Router Netzwerkstörungen vorliegen.
  • Optimieren Sie die Leistung Ihres lokalen Netzwerks über Ihren Internetdienstanbieter oder Netzwerkrouten.
  • Vergewissern Sie sich, dass Sie den richtigen DNS-Resolver verwenden, der es Ihrem Webbrowser ermöglicht, den nächstgelegenen und richtigen POP-Standort zu finden.
  • Halten Sie Ihre Zertifizierungskette kurz, um die Leistung der HTTPS-Site zu verbessern.
  • Die Latenz kann durch eine Firewall, einen Proxy oder einen lokalen Router verursacht werden. Um festzustellen, was davon Latenz verursacht, führen Sie von Ihrem System den folgenden MTR-Befehl aus. Weitere Informationen finden Sie unter Netzwerkprobleme mit MTR diagnostizieren.
mtr -rw example.com --no-dns

Hinweis: Ersetzen Sie example.com durch Ihren Domainnamen.

Reduzierung der Latenz in der Zeit bis zum ersten Byte (TTFB) und der gesamten benötigten Zeit (TTL)

Wenn CloudFront „X-Cache:Hit from cloudfront“ zurückgibt

CloudFront gibt die Antwort „X-Cache:Hit from cloudfront“ zurück, wenn Anforderungen aus dem Edge-Standort bedient werden. So reduzieren Sie die Latenz:

Im Falle, das CloudFront „X-Cache:Miss from cloudfront“ zurückgibt

Im Falle, das CloudFront „X-Cache:Miss from cloudfront“ zurückgibt, wenn die Anfrage an den Ursprung gesendet wird. So reduzieren Sie die Latenz:

  • Reduzieren Sie die Roundtrip-Zeit (RTT) zwischen dem CloudFront-Edge-Standort und Ihrem Ursprungsstandort. Wenn eine Anfrage von einem CloudFront-Edge-Standort an den nächstgelegenen Ursprungsstandort geleitet wird, ist die RTT geringer. TTFB ist jedoch betroffen, wenn die Anfrage von einem geografisch vom Ursprung entfernten Edge-Standort stammt. Um die RTT zu optimieren, replizieren Sie den Ursprungsserver in mehreren Regionen, die geografisch näher an Ihren Benutzern liegen. Richten Sie dann den DNS Ihres Ursprungs-Domainnamens so ein, dass er die Anfrage, basierend auf Latenz oder Geolokalisierung, an die Ursprungsserver weiterleitet. Wenn Sie Amazon Route 53 als Ihren DNS-Anbieter verwenden, finden Sie weitere Informationen unter Auswählen einer Routing-Richtlinie.
  • Aktivieren Sie die automatische CloudFront-Komprimierung, um Dateien zu komprimieren und die Download-Geschwindigkeit zu reduzieren. Wenn Ihr Dateiformat von CloudFront Automatic Compression nicht unterstützt wird, komprimieren Sie diese Datei in Ihrem Ursprung vor und stellen Sie sie mit dem Content-Encoding-Header bereit.
  • Überprüfen Sie die Latenz vom Ursprung bis zu CloudFront, indem Sie die Ursprungs-Latenzmetrik aktivieren. Hinweis: Es gelten die Standardtarife von CloudWatch.
  • Schalten Sie CloudFront Origin Shield ein.
  • Fügen Sie Richtlinien für Antwort-Header mit aktivierter Server-Timing-Header-Funktion hinzu. Mithilfe dieser Funktion können Sie die Ereignisse verstehen, die zur Latenz zwischen CloudFront und dem Ursprung beitragen.

Relevante Informationen

Wie kann ich die Latenz langsamer Antworten von CloudFront reduzieren?

Wie kann ich Probleme mit der Latenz in meiner statischen Website, die auf Amazon S3 gehostet und über CloudFront bereitgestellt wird, beheben?

Welche Informationen sollte ich dem AWS Support zur Diagnose von Problemen mit der Latenz der CloudFront-Webverteilung geben?

Wie kann ich feststellen, was die Anforderungslatenz für meinen Edge-optimierten API-Endpunkt in API Gateway verursacht?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren