TYPO3 Performance Optimierung durch Content Delivery Network (CDN)
Aug 14 2014

TYPO3 Performance Optimierung durch Content Delivery Network (CDN)

TYPO3 Performance Optimierung durch Content Delivery Network (CDN)

Als TYPO3 Agentur kennen wir viele Ansätze die Performance von TYPO3 CMS zu optimieren. In diesem Beitrag wollen wir zeigen, wie leicht Amazon S3 als CDN (Content Delivery Network) zur Optimierung der Performance genutzt werden kann.

Warum ist der Einsatz eines CDN mit TYPO3 sinnvoll?

Ein CDN (Content Delivery Network) ist ein Netzwerk aus Servern, die ausschließlich für die Auslieferung von statischen Daten, wie z.B. Bilder, Videos etc. verantwortlich sind. Dadurch verspricht man sich viele Vorteile, wie z.B. eine Steigerung der Performance durch eine schnellere Anbindung der CDN-Server und eine Entlastung der Webserver, auf welchen die TYPO3 Instanz ausgeführt wird. Außerdem werden die Inhalte schneller geladen, da der Browser zu jeder Domain eine maximale Anzahl von Anfragen parallel absendet. Bei aktuellen Browsern werden 6-8 Anfragen zeitgleich verarbeitet, bei älteren Browsern sind es deutlich weniger. Durch eine CDN-Domain können mehr Inhalte parallel und somit schneller geladen werden. Hierdurch kann die gefühlte TYPO3 Performance gesteigert werden. Ein weiterer Vorteil ist natürlich, dass auf CDN-Server deutlich mehr Speicherplatz zur Verfügung steht, als auf üblichen TYPO3 Hosting-Servern. Ein Nachteil im Einsatz eines CDN mit TYPO3 ist natürlich, dass zusätzliche Kosten entstehen, die meistens abhängig vom tatsächlich entstandenen Traffic sind. Als CDN Hoster kommen viele Anbieter in Frage, wir wollen uns in diesem Beitrag aber auf den Amazon Web Service (AWS) S3 beschränken.

Anbindung des CDN an TYPO3 CMS

TYPO3 stellt seit Version 6 mit FAL (File Abstraction Layer) eine einfache Anbindung an CDN Hoster bereit. Wir haben unsere TYPO3 Erweiterung „Amazon S3 FAL Driver“ mit dem Extension-Key „aus_driver_amazon_s3“ im TYPO3 TER zur Verfügung gestellt. Diese Erweiterung für TYPO3 6.2 ermöglicht es, ein CDN zu verwenden, ohne dass der Redakteur etwas davon mitbekommt. Er bedient das Backend, wie wenn die Daten auf dem Webserver abgelegt werden. Für den Administrator ist diese Extension kinderleicht eingerichtet und benötigt keine aufwändige Konfiguration.

Amazon S3 FAL Driver

Die Extension ist schnell installiert: Einfach im Extension-Manager nach dem Key „aus_driver_amazon_s3“ suchen und installieren. Nun kann auch direkt das erste Amazon S3 „Bucket“ eingerichtet werden. Dazu muss lediglich in der Root-Seite (ID = 0) ein neuer „File Storage“ (deutsch: „Dateispeicher“) angelegt werden. Hier können nun die Daten aus dem AWS eingetragen werden. (Wichtig: Das „Bucket“ muss bereits im S3 Storage angelegt sein)

TYPO3 Performance Optimierung durch Content Delivery Network (CDN)

Das AWS S3 Bucket benötigt natürlich noch eine Lese-Berechtigung für jedermann. Dazu einfach in der AWS Console beim S3 Bucket folgende „Permissions“ unter „Edit bucket policy“ einfügen:
{
  "Version": "2008-10-17",
  "Statement": [
     {
       "Sid": "AddPerm",
       "Effect": "Allow",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Resource": "arn:aws:s3:::bucketname/*"
     }
     ]
}

 Damit hat man in der „File List“ einen weiteren Storage zur Verfügung der von den Redakteuren (nach entsprechender Vergabe der TYPO3 Berechtigungen), wie der lokale Storage „fileadmin“ verwendet werden kann. Im Frontend verweisen die Verlinkungen auf diese Dateien nun automatisch auf den angegebenen AWS S3 Bucket. Dies funktioniert auch mit dem Rendern von Bildern, welche dann automatisch auf dem S3-Speicher abgelegt werden. Genauere Informationen zu Konfiguration befinden sich in der Dokumentation unter http://docs.typo3.org/typo3cms/extensions/aus_driver_amazon_s3/. Die Extension selbst kann unter http://typo3.org/extensions/repository/view/aus_driver_amazon_s3 heruntergeladen werden.