Beschleunigung der Anwendungsleistung mit AWS Global Accelerator: Ein tiefer Einblick

Erfahren Sie, wann AWS Global Accelerator die Latenz, das Failover und das statische IP-Routing für globale TCP- und UDP-Anwendungen verbessert.

Beschleunigung der Anwendungsleistung mit AWS Global Accelerator: Ein tiefer Einblick

Wenn Ihre Benutzer weit von Ihrer AWS-Region entfernt sind, kann DNS allein nicht immer einen stabilen Netzwerkpfad bieten. AWS Global Accelerator verbessert die Anwendungsleistung, indem es Clients statische Anycast-IP-Adressen bereitstellt und den Datenverkehr nach dem Eintritt in den nächstgelegenen AWS-Edge-Standort über das globale AWS-Netzwerk leitet.

Dieser tiefe Einblick erklärt, wie Global Accelerator funktioniert, wo es hilft, wie es sich von CloudFront unterscheidet und was Sie überprüfen sollten, bevor Sie es vor Produktionsdatenverkehr setzen.

Die globale Herausforderung: Latenz und Anwendungsleistung

Da Anwendungen zunehmend verteilt werden und Benutzer auf verschiedenen Kontinenten bedienen, wird die physische Entfernung zwischen Benutzern und Anwendungsservern zu einem kritischen Faktor. Daten bewegen sich mit Lichtgeschwindigkeit, aber das Durchqueren des öffentlichen Internets beinhaltet zahlreiche Hops, wechselnde Netzwerkbedingungen und potenzielle Engpässe. Dies kann zu Folgendem führen:

  • Hohe Latenz: Die Zeit, die Daten benötigen, um vom Benutzer zur Anwendung und zurück zu gelangen, wirkt sich direkt auf die Reaktionsfähigkeit aus.
  • Paketverlust: Datenpakete erreichen ihr Ziel nicht, was erneute Übertragungen erforderlich macht und die Latenz weiter erhöht.
  • Jitter: Schwankungen in der Ankunftszeit von Paketen, die besonders schädlich für Echtzeitanwendungen wie VoIP oder Spiele sind.

Traditionelle Ansätze, wie das einfache Bereitstellen von Instanzen in mehreren Regionen hinter regionalen Load Balancern, bieten eine gewisse Verbesserung, leiten den Benutzerdatenverkehr jedoch immer noch über das oft unberechenbare öffentliche Internet für die erste Verbindung. Hier bietet ein Dienst wie Global Accelerator einen erheblichen Vorteil.

Was ist AWS Global Accelerator?

AWS Global Accelerator ist ein Netzwerkdienst, der die Verfügbarkeit und Leistung Ihrer Anwendungen für lokale und globale Benutzer verbessert. Dies erreicht er, indem er den Benutzerdatenverkehr über das hochzuverlässige und leistungsstarke globale AWS-Netzwerk-Backbone zum nächstgelegenen gesunden Endpunkt leitet. Anstatt den Datenverkehr über das öffentliche Internet zu leiten, nutzt Global Accelerator die umfangreiche Netzwerkinfrastruktur von AWS, um den Pfad vom Edge-Standort des Benutzers zu Ihren Anwendungsendpunkten zu optimieren.

Im Kern bietet Global Accelerator statische Anycast-IP-Adressen, die als feste Einstiegspunkte für Ihre Anwendung dienen. Diese IPs werden von mehreren AWS-Edge-Standorten weltweit angekündigt. Wenn ein Benutzer eine Verbindung herstellt, wird sein Datenverkehr automatisch zum nächstgelegenen Edge-Standort geleitet und von dort aus über das optimierte private AWS-Netzwerk zum festgelegten Anwendungsendpunkt transportiert.

Wie AWS Global Accelerator funktioniert: Architektur und Schlüsselkonzepte

Um die Magie hinter Global Accelerator zu verstehen, lassen Sie uns seine grundlegenden Komponenten und deren Zusammenspiel aufschlüsseln:

Anycast-IP-Adressen

Im Gegensatz zu herkömmlichen Unicast-IP-Adressen, die für einen einzelnen Server eindeutig sind, bietet Global Accelerator zwei statische Anycast-IP-Adressen. Diese IPs werden gleichzeitig von mehreren AWS-Edge-Standorten angekündigt. Wenn ein Benutzer versucht, über diese IPs eine Verbindung zu Ihrer Anwendung herzustellen, leiten die Netzwerkrouter im Internet ihren Datenverkehr zum nächstgelegenen Edge-Standort, der diese Adresse ankündigt. Dadurch wird sichergestellt, dass Benutzer immer eine Verbindung zu einem AWS-PoP herstellen, der geografisch nahe ist.

Globales AWS-Netzwerk-Backbone

Die wahre Stärke von Global Accelerator liegt in der Nutzung des globalen AWS-Netzwerks. Sobald der Benutzerdatenverkehr über die statische Anycast-IP einen AWS-Edge-Standort erreicht, reist er über das schnelle, latenzarme private Glasfasernetz von AWS zum optimalen Anwendungsendpunkt. Dies umgeht die Unberechenbarkeit des öffentlichen Internets und führt zu einer konsistenteren Leistung, reduziertem Jitter und geringerer Latenz.

Edge-Standorte (Points of Presence - PoPs)

Dies sind geografisch verteilte Rechenzentren, die als Ein- und Ausstiegspunkte für den Benutzerdatenverkehr in das und aus dem globalen AWS-Netzwerk dienen. Global Accelerator nutzt diese PoPs, um eingehende Verbindungen von Benutzern zu empfangen und effizient weiterzuleiten.

Datenverkehrsoptimierung und Health Checks

Global Accelerator überwacht die Endpunktgesundheit und leitet Datenverkehr nur basierend auf Ihrer Listener-, Endpunktgruppen-, Traffic-Dial- und Endpunktgewichtungskonfiguration an gesunde Endpunkte. Wenn ein Endpunkt ungesund wird, leitet Global Accelerator neuen Datenverkehr an einen anderen gesunden Endpunkt weiter.

Listener, Endpunktgruppen und Endpunkte

  • Listener: Diese definieren die Ports und Protokolle (TCP/UDP), auf denen Global Accelerator eingehende Verbindungen von Clients akzeptiert.
  • Endpunktgruppen: Eine Endpunktgruppe ist einer bestimmten AWS-Region zugeordnet. Sie können mehrere Endpunktgruppen haben, die jeweils einer Region entsprechen, in der sich Ihre Anwendungsressourcen befinden. Sie können auch einen "Traffic Dial" für jede Gruppe konfigurieren, um den Prozentsatz des an sie gerichteten Datenverkehrs zu steuern.
  • Endpunkte: Dies sind die tatsächlichen Ressourcen, die Ihre Anwendung bedienen. Für Standard-Beschleuniger umfassen gängige Endpunkttypen:
    • Application Load Balancer (ALBs)
    • Network Load Balancer (NLBs)
    • EC2-Instanzen
    • Elastic-IP-Adressen
    • VPC-Subnetz-Endpunkte für benutzerdefinierte Routing-Beschleuniger, die ein anderer Beschleunigertyp sind.

Hauptvorteile der Verwendung von AWS Global Accelerator

Die Nutzung von Global Accelerator bietet mehrere überzeugende Vorteile für Ihre globalen Anwendungen:

  1. Verbesserte Leistung und reduzierte Latenz: Durch die Weiterleitung des Datenverkehrs über das globale AWS-Netzwerk-Backbone reduziert Global Accelerator die von Benutzern erlebte Latenz und Jitter erheblich, was zu einer schnelleren und reaktionsschnelleren Anwendung führt.
  2. Erhöhte Verfügbarkeit und Fehlertoleranz: Mit automatischen Health Checks und intelligentem Datenverkehrs-Routing stellt Global Accelerator sicher, dass Benutzeranfragen immer an gesunde Endpunkte weitergeleitet werden. Wenn eine gesamte Region oder Endpunktgruppe ausfällt, wird der Datenverkehr automatisch zum nächstbesten verfügbaren gesunden Endpunkt in einer anderen Region umgeleitet.
  3. Vereinfachtes Datenverkehrsmanagement mit statischen IPs: Die beiden statischen Anycast-IP-Adressen, die von Global Accelerator bereitgestellt werden, ändern sich nie. Dies vereinfacht DNS-Konfigurationen und clientseitige Integrationen und macht die Aktualisierung von DNS-Einträgen oder Client-Konfigurationen überflüssig, wenn sich die zugrunde liegenden Endpunkte Ihrer Anwendung ändern oder verschieben.
  4. Erhöhte Sicherheit: Datenverkehr, der Global Accelerator erreicht, profitiert vom DDoS-Schutz von AWS Shield Standard am Edge und hilft, Ihre Anwendung vor häufigen Netzwerkschichtangriffen zu schützen.
  5. Traffic Dials für gewichtetes Routing: Sie können Traffic Dials verwenden, um den Prozentsatz des Datenverkehrs zu steuern, der an verschiedene regionale Endpunktgruppen weitergeleitet wird. Dies ist hervorragend für A/B-Tests, Blue/Green-Bereitstellungen oder geplante Wartungsarbeiten geeignet.

Häufige Anwendungsfälle

AWS Global Accelerator ist ideal für eine Vielzahl von Anwendungen, die hohe Leistung und Verfügbarkeit für ein globales Publikum erfordern:

  • Globale Webanwendungen: E-Commerce-Websites, Content-Delivery-Plattformen, SaaS-Anwendungen mit Benutzern auf mehreren Kontinenten.
  • Spieleserver: Reduziert die Latenz und verbessert das reaktionsschnelle Erlebnis für Online-Multiplayer-Spiele.
  • VoIP und Echtzeitkommunikation: Stellt stabile, latenzarme Verbindungen für Videokonferenzen und Telefonanrufe sicher.
  • IoT-Backends: Bietet eine konsistente, latenzarme Verbindung für eine große Anzahl geografisch verteilter IoT-Geräte, die Daten senden.
  • Notfallwiederherstellung: Durch die Aufrechterhaltung von Endpunkten in mehreren Regionen kann Global Accelerator im Falle eines Ausfalls nahtlos zu einer gesunden Region wechseln und so robuste Notfallwiederherstellungsstrategien unterstützen.

Einrichtung von AWS Global Accelerator (Konzeptionelle Schritte)

Die Einrichtung von Global Accelerator umfasst die Definition Ihrer Einstiegspunkte und deren Weiterleitung zu den Ressourcen Ihrer Anwendung.

  1. Erstellen Sie einen Accelerator: Dies ist die übergeordnete Ressource, die Ihre beiden statischen Anycast-IP-Adressen generiert.
  2. Fügen Sie Listener hinzu: Konfigurieren Sie die Ports und Protokolle, auf denen Ihr Accelerator auf eingehende Client-Verbindungen hört (z. B. TCP 80, TCP 443, UDP 53).
  3. Erstellen Sie Endpunktgruppen: Erstellen Sie für jede AWS-Region, in der Ihre Anwendung Endpunkte hat, eine Endpunktgruppe. Sie können den "Traffic Dial" (Prozentsatz des an diese Gruppe gerichteten Datenverkehrs) anpassen und Health Check-Einstellungen für diese Gruppe konfigurieren.
  4. Fügen Sie Endpunkte hinzu: Fügen Sie innerhalb jeder Endpunktgruppe Ihre Anwendungsressourcen hinzu (ALBs, NLBs, EC2-Instanzen, EIPs). Sie können Gewichtungen für einzelne Endpunkte angeben, um den Datenverkehr innerhalb einer Endpunktgruppe weiter zu verteilen.
# Konzeptionelle Schritte in der AWS CLI (vereinfacht)

# 1. Erstellen Sie einen Accelerator
aws globalaccelerator create-accelerator \
    --name MyGlobalAppAccelerator \
    --ip-address-type IPV4 \
    --enabled

# 2. Erstellen Sie einen Listener (z. B. für HTTP)
aws globalaccelerator create-listener \
    --accelerator-arn <accelerator-arn> \
    --port-ranges FromPort=80,ToPort=80 \
    --protocol TCP \
    --client-affinity NONE

# 3. Erstellen Sie eine Endpunktgruppe (z. B. in us-east-1)
aws globalaccelerator create-endpoint-group \
    --listener-arn <listener-arn> \
    --endpoint-group-region us-east-1 \
    --traffic-dial-percentage 100 \
    --health-check-port 80 \
    --health-check-protocol HTTP \
    --health-check-path /health \
    --endpoint-configurations EndpointId=<your-alb-arn>,Weight=100

Tipp: Verwenden Sie aus Redundanzgründen immer zwei statische IP-Adressen. Global Accelerator weist sie automatisch zu.

Warnung: Stellen Sie sicher, dass Ihre Sicherheitsgruppen und Netzwerk-ACLs Health Checks von Global Accelerator und Anwendungsdatenverkehr zu Ihren Endpunkten zulassen. Das Verhalten der Client-IP-Erhaltung hängt vom Endpunkttyp und der Konfiguration ab.

AWS Global Accelerator vs. Amazon CloudFront

Obwohl beide Dienste das globale Netzwerk und die Edge-Standorte von AWS nutzen, um die Leistung zu verbessern, dienen sie unterschiedlichen Hauptzwecken:

Funktion AWS Global Accelerator Amazon CloudFront
Hauptziel Verbesserung der Netzwerkleistung und Verfügbarkeit von Anwendungen (TCP/UDP) Verbesserung der Content-Delivery-Leistung (HTTP/HTTPS)
Schicht Layer-4-Datenverkehrsbeschleunigung für TCP und UDP Layer-7-HTTP- und HTTPS-Bereitstellung
Statische IPs Ja, zwei globale statische Anycast-IP-Adressen Nein, verwendet wechselnde DNS-Einträge für die Edge-Verteilung
Caching Nein Ja, speichert Inhalte an Edge-Standorten zwischen
Anwendungsfälle Spiele, VoIP, APIs, persistente Verbindungen, dynamische Inhalte Statische Websites, Videostreaming, herunterladbare Inhalte
Endpunkttyp ALBs, NLBs, EC2-Instanzen, Elastic-IPs; VPC-Subnetze für benutzerdefiniertes Routing S3-Buckets, EC2-Instanzen, Load Balancer und HTTP-Ursprünge

Wann verwende ich was?

  • Verwenden Sie Global Accelerator, wenn Sie die Leistung und Verfügbarkeit von nicht cachebaren Inhalten, APIs, Spielen oder jeder Anwendung verbessern müssen, die persistente Verbindungen oder latenzarmen TCP/UDP-Datenverkehr über Regionen hinweg erfordert.
  • Verwenden Sie CloudFront, wenn Sie cachebare statische oder dynamische Inhalte (Bilder, Videos, Webdateien) mit geringer Latenz an Benutzer ausliefern müssen, oft für traditionelle Webanwendungen.

Es ist auch üblich, beide zusammen zu verwenden: CloudFront zum Caching statischer Inhalte und Global Accelerator zur Optimierung des Netzwerkpfads zum dynamischen API-Backend Ihrer Anwendung.

Best Practices und Überlegungen

  • Health Checks: Konfigurieren Sie robuste Health Checks, die den Betriebsstatus Ihrer Anwendungsendpunkte genau widerspiegeln. Dies ist entscheidend, damit Global Accelerator den Datenverkehr korrekt von ungesunden Instanzen wegleiten kann.
  • Traffic Dials: Nutzen Sie Traffic Dials für kontrollierte Bereitstellungen (z. B. schrittweises Verschieben von Datenverkehr in eine neue Region oder Version) und Notfallwiederherstellungsszenarien.
  • Überwachung und Protokollierung: Integrieren Sie Global Accelerator mit CloudWatch und CloudTrail, um Leistungsmetriken, Datenverkehrsfluss und API-Aufrufe zu überwachen. Dies hilft, Nutzungsmuster zu verstehen und Probleme zu beheben.
  • Sicherheitsgruppen/NACLs: Stellen Sie sicher, dass Ihre Netzwerkkonfigurationen auf Backend-Ressourcen (ALBs, EC2) eingehenden Datenverkehr von den Health-Check-Probes von Global Accelerator und von den Client-IPs, die Global Accelerator beibehält (oder vom IP-Bereich von Global Accelerator, wenn die Client-IP-Erhaltung nicht aktiviert oder unterstützt wird), zulassen.
  • Kostenmanagement: Verstehen Sie das Preismodell, das auf der Anzahl der bereitgestellten Acceleratoren und dem Datenübertragungsvolumen basiert. Optimieren Sie die Endpunktnutzung, um die Kosten effektiv zu verwalten.

Fazit

Verwenden Sie AWS Global Accelerator, wenn Ihre App statische globale IPs, schnelles regionales Failover oder bessere TCP/UDP-Pfade für Benutzer benötigt, die über Regionen verteilt sind. Verwenden Sie CloudFront, wenn der Hauptvorteil in HTTP-Caching und Edge-Bereitstellung liegt. Für eine Produktionseinführung beginnen Sie mit einem Listener, einer oder zwei regionalen Endpunktgruppen, strengen Health Checks und CloudWatch-Alarmen, bevor Sie den gesamten Datenverkehr umstellen.