Blog
Latenzbasiertes Routing in AWS, Global Accelerator gegenüber Route53

Die Entfernung wirkt sich auf die Leistung aus. Wenn Sie sich weiter entfernen, kann die Latenz
leicht ein Drittel oder eine halbe Sekunde für einen Hin- und Rückweg erreichen. Das
kann ein Problem sein, wenn Sie Kunden auf der ganzen Welt bedienen. Zum Glück
gibt es...
Global Accelerator
Global Accelerator löst einige häufige DNS-Probleme1
, da es sich nicht auf IP-Adress-Caches verlässt. Er verfügt über 2 statische IPv4-Adressen
als einen einzigen festen Zugangspunkt, über den sich Benutzer verbinden können, und
Sie müssen keine DNS-Konfiguration vornehmen.
Die 2 statischen IPv4-Adressen werden in unabhängigen Netzwerkzonen
gehostet, um Fehlertoleranz zu gewährleisten. Ähnlich wie ein AZ ist eine Netzwerkzone eine
isolierte Einheit mit einer eigenen physischen Infrastruktur. Wenn
Sie einen Accelerator konfigurieren und eine IPv4-Adresse aus einer Netzwerkzone
aufgrund der Blockierung von IP-Adressen durch bestimmte
Client-Netzwerke oder aufgrund von Netzwerkunterbrechungen nicht mehr verfügbar ist, können die Client-Anwendungen
einen erneuten Versuch mit der gesunden statischen IP-Adresse aus der anderen isolierten
Netzwerkzone unternehmen.
Da die IPv4-Adressen von den global
verteilten Edge-Standorten von AWS bekannt gegeben werden, kann Ihr Datenverkehr in die
AWS Backbone-Netzwerk
da es schneller ist, den Datenverkehr über Edge-Standorte zu leiten, als
große Teile des Internets zu durchqueren.
Global Accelerator verwendet BGP (Border Gateway Protocol) Anycast, um
Datenverkehr über mehrere Pfade (Edge-Standorte) zu seinem
Ziel zu leiten. Ich könnte Ihnen erklären, wie BGP in Laiensprache funktioniert,
aber ich verwende lieber die Formulierung von Luc van Donkersgoed, denn ich mag die
Art, wie er es erklärt.
Eine BGP-Ankündigung ist - abgesehen von ihren vielen technischen Feinheiten -
eine Möglichkeit für Router, anderen Routern mitzuteilen 'Ich bin in der Lage und
die bereit sind, Datenverkehr für diese IP-Adressen zu empfangen". Wenn eine andere
Router, zum Beispiel bei Ihrem Internet-Provider, empfängt den Verkehr
für eine dieser Adressen, wird er sie an den Router weiterleiten, der
ankündigen und diesen Verkehr verarbeiten. Jedes Mal, wenn sich ein Paket bewegt
von einem Router zu einem anderen System, nennt man das einen Hop. Jeder Hop
kostet Verarbeitungszeit, so dass weniger Sprünge eine geringere Latenz bedeuten.
Vielleicht gibt es eine Möglichkeit, dies zu veranschaulichen. Das klingt alles
sehr abstrakt, oder? Denken Sie einfach daran, dass Global
Accelerator Ihren Datenverkehr über den optimalsten
Standortpfad zu seinem Ziel leitet.Es ist wichtig zu wissen, dass das AWS Backbone-Netzwerk sehr
effizient ist und über dedizierte Glasfaserleitungen verfügt, die weniger Sprünge
zwischen Ländern und Kontinenten ermöglichen. Sie verwenden Ihren lokalen ISP, um sich mit dem
Edge-Standort zu verbinden, anstatt Ihren lokalen ISP zu verwenden, um
den ganzen Weg zu einer bestimmten Adresse zu routen, was sehr
lange Zeit dauern kann, einschließlich vieler Netzwerksprünge, die jeweils ein
Risiko darstellen können.
Route 53 latenzbasiertes Routing
Mit latenzbasiertem Routing kann Amazon Route 53 Ihre Benutzer
zum AWS-Endpunkt mit der niedrigsten verfügbaren Latenz leiten. Sie könnten eine
aktiv-aktive Architektur betreiben, bei der sich Ihr Stack über mehrere Regionen
erstreckt (dies kann für die Notfallwiederherstellung und/oder die Latenz
von Vorteil sein). Die DNS-Server von Route 53 entscheiden2,
basierend auf den Netzwerkbedingungen der letzten X Wochen, welche
Instanzen in welchen Regionen bestimmte Benutzer bedienen sollen. Ich
lebe derzeit in Amsterdam. Wenn Unternehmen X beschließen würde,
latenzbasiertes Routing zu implementieren und seinen Stack sowohl in Irland
als auch in Mumbai laufen lassen würde, würde ich wahrscheinlich zu eu-west-1 geleitet werden und ein Benutzer in
Japan würde wahrscheinlich zu ap-south-1 geleitet werden.
Inwiefern unterscheidet sich dies von geolokalisierten Routing-Richtlinien?
Es scheint, dass beide Richtlinien mich (in Amsterdam) an
eu-west-1 weiterleiten. Sie sind jedoch nicht dafür gemacht
leiten Sie mich einfach an die nächstgelegene Ressource weiter. Wenn Unternehmen X nun
beschließt, die folgende Anforderung hinzuzufügen:
Aus Compliance-Gründen sollten die Daten der Kunden aus Irland in Irland und die Daten der Kunden aus Mumbai in Mumbai gespeichert werden.
Jetzt gibt es mehr als nur einen feinen Unterschied in diesen Routing-Richtlinien
, wir müssen jetzt etwas sicherstellen. Was wir mit
latenzbasiertem Routing nicht tun können, ist, dass es auf unserem Netzwerkpfad mehrere
Hick-Ups gegeben haben könnte, die dazu geführt haben, dass einige Anfragen
an ap-south-1 weitergeleitet wurden (was gegen unsere Vereinbarung verstoßen würde). Nun
könnten wir diese zusätzliche Anforderung lösen, indem wir das auf Geolocation
basierende Routing verwenden. Es ermöglicht Route 53, den Datenverkehr entsprechend dem geografischen Standort der
Quellanfrage an die
Ressourcen zu leiten.
Das latenzbasierte Routing basiert auf Latenzmessungen, die über einen bestimmten Zeitraum durchgeführt wurden,
und die Messungen spiegeln diese Änderungen wider.
Eine Anfrage, die diese Woche an die Region ap-south-1 geleitet wird, könnte nächste Woche an die Region eu-west-1 geleitet werden.
Wann verwenden Sie was?
Gute Frage, keine Ahnung, lassen Sie es uns herausfinden. Wir wissen bereits, dass das latenzbasierte Routing von Route 53 die DNS-Telemetrie und die Netzwerklatenz nutzt, um den besten Latenzdatensatz für eine bestimmte Anfrage zu ermitteln. Daher verbringt es mehr Zeit im ISP-Netzwerk und im Internet als der Global Accelerator. Vielleicht hilft Ihnen diese kleine Gedächtnisstütze dabei, dies im Gedächtnis zu behalten.
-
Latenzbasiertes Routing geht in den Backbone, der dem Ziel-Backend am nächsten liegt.
-
Global Accelerator betritt das Backbone, das dem Client am nächsten liegt.
Der Global Accelerator verbringt also mehr Zeit im AWS Backbone-Netzwerk. Daraus können wir schließen, dass Sie bei einer Architektur mit mehreren Regionen die Entfernung zwischen Clients und Ressourcen sowie die Anzahl der Regionen, in denen Ihr Stack läuft, berücksichtigen müssen. Wenn es sich nur um einige wenige Regionen handelt, schneidet Global Accelerator beim Routing des Datenverkehrs besser ab, da die Pakete Zeit in einem besseren Netzwerk (Backbone) verbringen.
BGP Anycast kann langsam auf Netzwerkereignisse wie Verbindungsausfälle reagieren. Netzwerke müssen BGP-Updates verbreiten, wenn sich die Bedingungen ändern. Glücklicherweise stellt uns Global Accelerator, wie bereits erläutert, 2 statische IPv4-Adressen zur Verfügung, die über verschiedene Pfade bedient werden. Das Schöne an statischen IPv4-Adressen ist, dass die Kunden die statischen IPs in ihren DNS- und Firewall-Konfigurationen fest einprogrammieren können und die Fehlertoleranz über das normale Client-Retry-Verhalten steuern können.
Wir wissen jetzt, dass das latenzbasierte Routing ständig laufende Messungen der Netzwerklatenz verwendet, um die beste AWS-Region zu ermitteln, an die Sie Ihren Datenverkehr senden können. Wenn Ihr Stack in vielen verschiedenen Regionen läuft, scheint Route 53 die bevorzugte Option zu sein (da wir aufgrund der geringen Entfernung zwischen Clients und Ressourcen nur wenige Hops haben, bevor wir die Route erreichen). Im Vergleich zur BGP-Ereignisweiterleitung verwendet Route 53 DNS-Zustandsprüfungen, um auf Netzwerkereignisse zu reagieren. Diese Zustandsprüfungen sind oft schneller als BGP Anycast.
Beachten Sie, dass Global Accelerator die TLS-Terminierung am Rand durchführt. Dies ist sehr nützlich, da nun der 3-Wege-Handshake am Edge-Standort und nicht mehr am DNS-Server stattfindet. Noch ein kleiner Tipp: Erhöhen Sie die DNS-TTL, wenn Sie Global Accelerator verwenden, da es sich um eine statische IPv4-Adresse handelt.
Fußnoten
- 1) DNS ist nicht perfekt. Lange TTLs reduzieren den Datenverkehr im Internet und verhindern, dass Domain Name Server überlastet werden, während kurze TTLs oft zu einer starken Belastung der autoritativen Nameserver führen, aber für eine schnelle Wiederherstellung im Notfall nützlich sind. Zu viele Geräte zwischenspeichern die TTL auf ihre eigene Weise, unabhängig von dem im DNS-Eintrag festgelegten Wert.
- 2) Latenzaufzeichnungsmessungen werden kontinuierlich durchgeführt und normalerweise über einen Zeitraum von einigen Wochen gemessen.
- AWS-Tool zum Vergleich von Global Accelerator mit dem öffentlichen Internet.
- Eine gute Gelegenheit, mehr über Global Accelerator zu erfahren, ist diese Re:Invent 2020 NET311-Sitzung.
Verfasst von

Bruno Schaatsbergen
Bruno is an open-source and serverless enthusiast. He tends to enjoy looking for new challenges and building large scale solutions in the cloud. If he's not busy with cloud-native architecture/development, he's high-likely working on a new article or podcast covering similar topics. In his spare time he fusses around on Github or is busy drinking coffee and exploring the field of cosmology.
Unsere Ideen
Weitere Blogs
Contact
Es ist wichtig zu wissen, dass das AWS Backbone-Netzwerk sehr


