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

Letzte Aktualisierung: 02.06.2022

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.

  • Prüfen Sie in den Entwicklertools Ihres Webbrowsers, wie lange jede Phase einer Netzwerkanfrage dauert. Wenn Sie beispielsweise Mozilla Firefox verwenden, enthält die Registerkarte Timing diese Informationen.
  • 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.