Übersicht

Workloads wie dynamische APIs oder stark personalisierte Webseiten können wenig bis gar nicht zwischengespeichert werden. Sie können jedoch von der Sicherheit und Beschleunigung, die AWS-Edge-Services wie CloudFront und Global Accelerator bieten, profitieren. AWS-Edge-Services werden auf Hunderten weltweit verteilten Points of Presence (PoPs) betrieben, die innerhalb von durchschnittlich 20 bis 30 Millisekunden vom Benutzer entfernt liegen. Der Datenverkehr zum Ursprung wird über das globale AWS-Netzwerk zurückgeleitet und nicht über das öffentliche Internet. Die globale AWS-Infrastruktur ist eine speziell entwickelte, hochverfügbare private Infrastruktur mit geringer Latenz, die auf einem globalen, vollständig redundanten Metro-Glasfasernetz aufbaut, das über terrestrische und transozeanische Kabel auf der ganzen Welt miteinander verbunden ist.

Dynamische Beschleunigung mit CloudFront

CloudFront terminiert nicht nur die TCP/TLS-Verbindung näher an den Benutzern, sondern beschleunigt auch dynamische Inhalte durch:

  • die Bereitstellung von Inhalten über moderne Internetprotokolle wie QUIC oder TLS1.3, auch wenn der Ursprung dies nicht unterstützt.
  • die Aufrechterhaltung von Verbindungen zum Ursprung. Manchmal muss die Anfrage an den Ursprung weitergeleitet werden, z. B. wenn der Inhalt nicht im lokalen Cache vorhanden ist oder wenn er rein dynamisch ist, wie z. B. APIs. Anfragen, die über persistente Verbindungen von POPs weitergeleitet werden, müssen keine neue TCP/TLS-Verbindung zum Ursprung herstellen, wodurch die Latenz mehrerer Roundtrips entfällt und skalierte TCP-Fenster beibehalten werden. Sie können die Wiederverwendung von Verbindungen weiter verbessern, indem Sie das TCP-Keep-Alive-Timeout auf Ihrem Ursprung und in der CloudFront-Konfiguration erhöhen und eventuell Origin Shield aktivieren. Darüber hinaus reduziert die geringere Geschwindigkeit des Verbindungsaufbaus am Ursprung die Skalierungskosten. Insbesondere bei EC2- und ALB-basierten Ursprüngen führt dies zu niedrigeren Gebühren für ausgehende Datenübertragungen (Data Transfer Out, DTO), da der DTO-Overhead beim Senden von TLS-Zertifikaten vom Ursprung reduziert wird. Beachten Sie, dass CloudFront den TLS-Overhead in seinen DTO-Berechnungen nicht erfasst. Sie können die Wiederverwendung von Verbindungen in CloudFront verbessern, indem Sie Origin Shield aktivieren.
    In den folgenden Video-Testimonials beschreiben die Unternehmen Tinder und Slack, wie CloudFront ihnen hilft, ihre API-Antwortzeit deutlich zu reduzieren.

In den folgenden Video-Testimonials beschreiben die Unternehmen Tinder und Slack, wie CloudFront ihnen hilft, ihre API-Antwortzeit deutlich zu reduzieren.

Slack spricht über sichere API-Beschleunigung mit Amazon CloudFront
Leistungsoptimierung in CloudFront: Jede Millisekunde zählt!

Ausführliche Informationen darüber, wie CloudFront den dynamischen HTTP-Verkehr optimiert, finden Sie in diesem Blog. Im Blog wird außerdem beschrieben, wie Sie ein Python-Skript verwenden können, um besser zu verstehen, wie CloudFront die Leistung dynamischer HTTP-Anfragen optimiert.

Um CloudFront als Reverse-Proxy zu verwenden, müssen Sie die Verwaltete Caching-Richtlinie Caching deaktiviert in Ihrer Distribution im entsprechenden Cacheverhalten konfigurieren. Dadurch wird CloudFront angewiesen, von POPs eingehende Anfragen direkt an Ihren Ursprung weiterzuleiten. Wenn Sie keine Richtlinie für Ursprungsanfragen konfigurieren, entfernt CloudFront standardmäßig Cookies, Abfrageparameter und die meisten Header, bevor die Anfrage an Ihren Ursprung weitergeleitet wird. Ausnahmsweise sendet CloudFront den Host-Header mit dem Wert des Domainnamens Ihres Ursprungs, hängt den X-Forwarded-For-Header an, der um die IP des Anforderers erhöht wird, und überschreibt den User-Agent-Header mit dem Wert von Amazon CloudFront. Beachten Sie, dass CloudFront, wenn es als Reverse-Proxy konfiguriert ist, Antworten nicht mit Gzip oder Brotli komprimiert.

Wenn bestimmte Anfragenattribute an CloudFront weitergeleitet werden sollen, müssen Sie diese explizit in der Richtlinie für Ursprungsanfragen konfigurieren. Sie können beispielsweise alle vom Benutzer empfangenen Anfragenattribute weiterleiten, indem Sie die Verwaltete Richtlinie für Ursprungsanfragen AllViewer konfigurieren. Beachten Sie, dass CloudFront dabei den Host-Header so sendet, wie er vom Benutzer empfangen wurde, und nicht den Wert des Domainnamens Ihres Ursprungs. Wenn Ihr API-Ursprung seinen ursprünglichen Domainnamen im Host-Header erwartet, z. B. wie bei API Gateway, konfigurieren Sie stattdessen die Verwaltete Richtlinie für Ursprungsanfragen AllViewerExceptHostHeader.

Um die weitergeleitete Anfrage mit Metadaten von CloudFront anzureichern, z. B. dem Land des Benutzers oder Informationen über sein Gerät, konfigurieren Sie die entsprechenden CloudFront-Header in der Richtlinie für Ursprungsanfragen. Verwenden Sie für benutzerdefinierte dynamische Header wie True-Client-IP eine CloudFront-Funktion für das Viewer-Anforderungsereignis, um sie upstream hinzuzufügen.

Schauen Sie sich diesen Workshop an, um die Leistungsverbesserung dynamischer Inhalte mit CloudFront zu testen.

Dynamische Beschleunigung mit Global Accelerator

Global Accelerator leitet den Benutzerverkehr mithilfe von BGP Anycast an den nächstgelegenen PoP weiter. Von dort leitet Global Accelerator Ihren Benutzer-Traffic über das Amazon-Backbone zu Ihrem Ursprung. Global Accelerator verbessert die Leistung mithilfe der folgenden Techniken:

  • Jumbo-Frame-Unterstützung. Durch die Aktivierung von Jumbo-Frames zwischen dem AWS-Edge-Standort und dem Anwendungsendpunkt in der AWS-Region kann Global Accelerator in jedem Paket bis zu 6-mal mehr Daten (Payload) senden und empfangen. Die Jumbo-Frame-Unterstützung reduziert die Gesamtzeit, die für die Übertragung von Daten zwischen Benutzern und Ihrer Anwendung erforderlich ist.
  • TCP-Terminierung am Edge. Global Accelerator beschleunigt die anfängliche TCP-Einrichtung, indem eine TCP-Verbindung zwischen dem Client und dem AWS PoP hergestellt wird, der dem Kunden am nächsten ist. Fast zeitgleich wird eine zweite TCP-Verbindung zwischen dem Edge-Standort und dem Anwendungsendpunkt in der AWS-Region hergestellt.
  • Großes Fenster auf Empfangsseite, TCP-Puffer und Überlastungsfenster. Bei TCP-terminiertem Datenverkehr ist Global Accelerator in der Lage, größere Datenmengen von Ihrer Anwendung in kürzerer Zeit zu empfangen und zu puffern, indem die empfangsseitigen Fenster- und TCP-Puffereinstellungen in der AWS-Edge-Infrastruktur optimiert werden. Dies ermöglicht schnellere Downloads für Ihre Kunden, die Daten in kürzerer Zeit direkt vom AWS-Edge abrufen. Durch die Übertragung von Daten über das globale AWS-Netzwerk kann Global Accelerator das TCP-Überlastungsfenster hochskalieren, um größere Datenmengen zu senden, als dies normalerweise über das öffentliche Internet möglich ist.
Verbessern von Leistung und Verfügbarkeit mit AWS Global Accelerator

Ressourcen

War diese Seite hilfreich?