Überspringen zu Hauptinhalt

Shopware Performance-Optimierung in der AWS-Cloud

Fast jeder Online-Händler hat inzwischen verinnerlicht, dass die Ladezeit des eigenen Shops essentiell wichtig ist. In erster Linie soll natürlich der Kunde während seines Besuchs nicht unnötig ausgebremst werden. In zweiter Linie ist eine gute Webseiten-Performance auch ein wichtiges Kriterium für das Ranking in der Google Suchmaschine. 

Aufgrund des Page Experience Updates von Google im Juni 2021 schauen viele Online-Händler noch einmal genauer auf ihre aktuellen Ladegeschwindigkeiten. 

Im Folgenden fassen wir nochmal kurz zusammen, wie man sich einen Überblick über den Status quo der Ladegeschwindigkeit verschaffen kann und geben Tipps um ein langsames Shopware zu vermeiden. 

Ladezeit messen – Basics

Das aktuell gängigste Tool zum Messen der Ladegeschwindigkeit ist Google Lighthouse, welches in Chrome Browsern bereits integriert ist. Es misst sowohl die Ergebnisse für Desktop als auch Mobile Devices. Beide Werte gilt es im Auge zu behalten und zu optimieren. Google wird in Zukunft vor allem die Werte der mobilen Devices für das Ranking heranziehen. Außerdem sollte man mit Lighthouse verschiedenen Webseiten testen z.B. die Startseite, eine Kategorieseite und eine Produktseite. Auf diese Weise erhält man einen ersten Eindruck über die aktuelle Performance und mögliche Baustellen. 

AWS-Hosting – die Lösung für alle Performance-Probleme?

Viele Online-Händler kennen inzwischen auch Cloud-Hosting-Lösungen. Im gleichen Atemzug mit Performance wird hier oft die automatische Skalierbarkeit genannt. Wenn die Rechenleistung sich automatisch mit anpasst, dann muss ja die Ladegeschwindigkeit top sein, oder? Ganz so einfach ist es leider nicht. Allein zur Verbesserung der Ladegeschwindigkeit ist ein Wechsel in die AWS-Cloud nicht erstrebenswert. Online-Händler die auf AWS-Hosting zurückgreifen, haben neben der Performance noch andere wichtige Gründe wie z.B. dynamische Skalierung, Stabilität, Online-Shops in mehreren Ländern weltweit oder hohe Sicherheitsanforderungen, die für einen Wechsel in die Cloud sprechen. 

Eine optimale AWS-Infrastruktur für beste Shopware Performance

Für den allgemeinen Use Case ist bekannt, dass auch ein einzelner Web-Server eine optimale Performance bieten kann. Doch ein einzelner Server ist in seinen Ressourcen nach oben limitiert, wodurch er für einen schnell wachsenden Online-Shop nicht mehr ausreichend ist. Kommen nun noch Lastspitzen durch Influencer oder Newsletter dazu, stößt der Shop schnell an seine Grenzen und die Conversionrate leidet.

Aus diesem Grund ist es sinnvoll die Web-Server in einer Auto Scaling Group hinter einem Load Balancer zu platzieren, sodass sich die Anzahl der Server an die jeweilige Auslastung anpassen kann und dabei auch aus wirtschaftlicher Perspektive im effizienten Bereich läuft.

Durch die verteilten Server ist es nun notwendig die Sessions auf den einzelnen Webservern synchron zu halten. Es ist nicht sinnvoll die Session in der Datenbank abzulegen, da es eine unnötige Last auf dem Datenbankserver erzeugt. Dies wirkt sich negativ auf die Auslieferung des Frontends aus. Als System der Wahl bietet sich hier ein Redis Cache an, welcher ein schnelles Ausliefern der Sessions garantiert.

Ebenso müssen sämtliche Mediendaten für jeden Web-Server zugreifbar sein, weshalb sich ein Shared Folder / Netzwerkspeicher anbietet, der auf den Server gemountet wird.

AWS Infrastruktur eines Shopware Online Shops für beste Performance
Cloud-Umgebung unseres Kunden Arbeitsschutz-Express (Shopware Enterprise)

Ein performantes Datenbanksystem bildet die Grundlage eines jeden Online-Shops. Im Regelfall wird eine MySQL Datenbank eingesetzt. Hier bietet es sich an, die Datenbank in einem Reader-Writer-Setup aufzusetzen. Dabei werden die Lese- und Schreibzugriffe von Shopware direkt auf die jeweiligen Endpunkte aufgeteilt. Wir setzen dabei auf die Amazon Aurora Datenbank, welche bis zu 5-mal schneller als eine Standard-MySQL-Datenbank ist. Weiterhin bietet sie eine hohe Sicherheit, Verfügbarkeit und Zuverlässigkeit.

Als Ergänzung zu der MySQL Datenbank kann ein Elasticsearch verwendet werden, um eine schnelle Auslieferung der Artikeldaten an das Backend/Frontend zu garantieren. Dabei ist wichtig, dass der Elasticsearch die MySQL Datenbank ergänzt und nicht ersetzt.

Damit das Backend nicht durch eine hohe Auslastung des Frontends eingeschränkt wird, empfiehlt es sich einen dedizierten Web-Server nur für das Backend bereitzustellen, welcher über eine eigene Subdomain oder Pfad basiertes Routing erreichbar ist. Dadurch lässt sich weiterhin ungestört im Backend arbeiten und die Ausführung von Crons ist ebenfalls nicht gefährdet.

Zur Steigerung der Performance gehört natürlich auch die Auslieferung von Mediendateien zu beschleunigen. Hierbei ist der Einsatz eines CDN selbstredend. Hierbei bietet es sich an die Möglichkeit von Shopware zu nutzen, so dass Mediendateien direkt über CloudFront aus einem S3-Bucket ausgeliefert werden.

Die Einbindung eines HTTP-Caches wie einen Redis oder einen Varnish (Single oder Redundant) vor den Servern, gibt den abschließenden “Performance Boost”. Denn dadurch wird die bereits gerendertes HTML ausgeliefert und die Webserver nicht zusätzlich belastet.

Optimierungen innerhalb von Shopware

Zu einer performanten Infrastruktur gehört natürlich auch eine performante Applikation. Hier können spezialisierte Anbieter wie root360 den Entwicklern sehr gut zuarbeiten und bei der Optimierung unterstützen. Durch Tools wie das Monitoring Tool NewRelic oder den PHP Profiler Tideways können etwaige Bottlenecks erkannt und analysiert werden. Dazu gehören Engpässe ein der Infrastruktur, aber auch z.B. langlaufende Queries gegen die Datenbank oder externe APIs, die die Auslieferung von Content an das Frontend ausbremsen. Genau so lassen sich Plugins finden, die den Shop zusätzlich ausbremsen, ebenso wie akute Fehler, die während der Ausführung des Codes auftreten. 

Fazit

Einen performanten Shopware Online-Shop in der AWS-Cloud aufzusetzen und zu betreiben ist keine triviale Angelegenheit. Mit Hilfe einer guten E-Commerce Agentur und eines erfahrenen AWS-Hosters lässt sich dies aber gut lösen. 

An den Anfang scrollen