iX 10/2017
S. 108
Report
Content Delivery Network
Aufmacherbild

Schnellere Webzugriffe dank CDN

Überall zu Hause

Der Zugriff auf Internetdienste aus weit entfernten Ländern ist oft eine Geduldsprobe. Ein Content Delivery Network (CDN) bringt Anwender und Internetdienst näher zusammen und liefert die Daten schneller aus.

Der Seitenaufbau der chinesischen Webseite dauert ewig, trotz des flotten VDSL-Anschlusses und obwohl sicherlich auch der Backbone noch genügend Brandbreite bietet. Ein ping zeigt eine Laufzeit von 200 Millisekunden zwischen dem eigenen Rechner und dem chinesischen Server. Für 30 HTTP-Zugriffe benötigt der Browser deshalb mehrere Sekunden. Zwar residiert die Zielgruppe vermutlich im selben Land und hat geringere Ladezeiten. Trotzdem ist dieser Zustand weder ideal noch der richtige Ausgangspunkt, um Nutzer anderswo zu gewinnen.

Ohne Content Delivery Network (rechts) greifen alle Clients auf einen Server zu. Ein CDN verteilt die Last gleichmäßig (Abb. 1).

Ein Content Delivery Network (CDN) stellt alle notwendigen Dateien auf vielen Servern bereit (siehe Abbildung 1). Sie sind meist über die ganze Welt verteilt und damit näher beim Anwender. So gehen CDN-Anbieter wie Akamai und Amazon (mit CloudFront) vor (siehe „Alle Links“). Dies beschleunigt das Laden, weil die Laufzeit zwischen Client und dem nächsten Server minimiert ist. Deshalb verwenden auch Firmen wie Microsoft und Apple diese Technik, um etwa Software-Updates zu verteilen: Ihre eigene Infrastruktur wäre mit den Datenmengen überlastet und die Auslieferung würde zu lange dauern. Eine dritte Einsatzmöglichkeit beschreibt Gartner mit dem Enterprise CDN: Innerhalb des Unternehmens spart es WAN-Verkehr, der dann anderen Anwendungen zur Verfügung steht.

Seit einigen Jahren berücksichtigen Suchmaschinen die Ladezeit einer Webseite in ihren Ranking-Algorithmen. Eine langsame Webpräsenz wirkt sich negativ auf die Position in den Suchergebnissen aus. Damit unterstützt ein CDN sogar die Suchmaschinenoptimierung, wenn ein CDN-Server in der Nähe des Google-Bots steht.

Da das CDN ein verteiltes System aus vielen Maschinen ist, trifft der Ausfall einzelner Server, Rechenzentren oder Internetverbindungen nur bestimmte Regionen. Das Gesamtsystem bleibt verfügbar. Zudem sind Naturkatastrophen und „Denial of Service“-Angriffe für den Anbieter weniger folgenreich. Denn bevor sie bei den Kunden wirken, müssen sie die meisten CDN-Server in die Knie zwingen. Solange ein paar Knoten noch am Netz sind, ist der Dienst zumindest eingeschränkt verfügbar.

Entscheidend ist die Namensauflösung

Vor dem Restrisiko schützen spezielle Firewalls, für Webumgebungen. So eine Web Application Firewall (WAF) schaut einem HTTP-Datenstrom tief in die Augen und findet Angriffsmuster, die für eine übliche Firewall oder ein Intrusion-Detection-System zu komplex sind. Sie schützt vor Bedrohungen wie Cross-Site-Scripting und dem Einschleusen ungewollter SQL-Befehle ebenso wie vor dem Missbrauch von Web-APIs und erkennt Onlinebetrügereien. Die Welten von CDN und WAF überschneiden sich, sodass manche Anbieter in beiden Märkten mitmischen.

Ein CDN kann den Datenzugriff zwar beschleunigen, ist aber kein Allheilmittel. Nur wenn größerer Nutzen trotz administrativer Komplexität die Mehrkosten rechtfertigt, dürfte sein Einsatz etwas bringen.

Zentral für das Funktionieren des CDN ist die Namensauflösung per DNS. Üblicherweise liefert der DNS-Server die verfügbaren Records für den angefragten Hostnamen. Bei einem CDN hat er eine große Auswahl an IP-Adressen, eine pro CDN-Knoten. Deshalb muss das DNS intelligenter werden und die Adresse des am besten geeigneten CDN-Knotens ermitteln. Im einfachsten Fall ist das der geografisch nächstliegende. Ausgefeiltere Techniken betrachten auch die Auslastung der CDN-Server und die Verzögerung.

Die einfachste Methode, den Content näher beim Anwender zu platzieren, ist ein Zwischenspeicher (Cache), der die Daten bereithält und ausliefert. Sobald der Anwender auf seine Applikation zugreift, beantwortet das CDN die Anfrage aus dem lokalen Cache. Je häufiger es eine Datei so ausliefert, desto effizienter arbeitet das CDN. Ein vorab mit den populärsten Dateien gefüllter Cache erspart zudem den ersten Nutzern die Wartezeit für das Auffüllen.

CDN nicht nur für Webinhalte nutzen

Ein Cache lebt von seiner Aktualität. Daher fragt der CDN-Server regelmäßig bei seiner Quelle nach, ob sich das Originaldokument geändert hat, und frischt gegebenenfalls seinen Cache auf. Für statische Inhalte, die sich selten ändern, sind Zwischenspeicher sehr effektiv, und das CDN bewirkt eine große Leistungssteigerung. Häufig modifizierte Daten und personalisierten Content beschleunigt ein Cache hingegen nur wenig.

Die meisten Beschreibungen von CDN basieren auf einem Webcache (zum Beispiel nginx mit Varnish oder Apache Traffic Server). Das funktioniert zwar, ist aber auf Webdienste beschränkt. Eine naheliegende Erweiterung ist der Einsatz eines CDN als Infrastruktur. Darauf könnten genauso gut ein Streaming-Server für Audio oder Video, ein Messaging-Server oder ein SIP-Dienst aufsetzen. Weniger bringt ein CDN jedoch für einen Mail Transfer Agent, da es für den Anwender meist unerheblich ist, ob eine Nachricht fünf Sekunden später eintrifft.

Auf die CDN-Dienste kann jeder Client zugreifen, der das passende Protokoll spricht, da die Entscheidung über den zu nutzenden Server im DNS fällt. Auch Gerätetyp und Betriebssystem spielen keine Rolle: Ein iPad ist genauso willkommen wie ein Windows-PC. Solange das Gerät mit dem Internet verbunden ist, kann das CDN mit seiner Zauberei beginnen.