In den letzten 11+ Jahren, in denen wir diese Dienste aufgebaut und erweitert haben, haben wir alles, was wir tun, weiterentwickelt. Wir haben Fehler gemacht, viel gelernt und werden unsere Infrastruktur und Praktiken ständig verbessern, um einen noch besseren Service für unsere Kunden zu gewährleisten.
Überraschenderweise sind diese stark frequentierten Sites technisch gesehen nicht am schwierigsten zu hosten. Cache und CDNs können bei statischen Inhalten helfen. Allerdings erzeugen Mitgliederseiten, Foren, BuddyPress-Social-Networks und jede andere Seite mit eingeloggter Benutzeraktivität eine Datenbanklast, die selbst bei einer bescheidenen Anzahl von Benutzern erheblich ansteigt. Hier kommt Redundanz und die Trennung der Datenbank von den Webservern ins Spiel. Und für uns hat Amazon Web Services es uns ermöglicht, die ideale Umgebung für WordPress und WordPress Multisite zu schaffen.
Warum wir zu AWS umzogen
Viele Jahre lang haben wir Server in einem Rechenzentrum von Peer1 gemietet. Das hat sehr gut funktioniert, da unser technisches Team die Server aus der Ferne verwalten konnte, um ein optimiertes Setup zu erstellen, das uns gute Dienste leistete. Aber wie in vielen Bereichen des Internets gibt es viele Faktoren, die dazu geführt haben, dass wir in den letzten Jahren langsam unsere gesamte Infrastruktur auf Amazon Web Services (AWS) umgestellt haben.
Zum Beispiel:
- Standorte – AWS macht es einfach, Server in Regionen auf der ganzen Welt einzurichten, darunter die USA, Kanada, Australien und die EU. Peer1 hatte auch Rechenzentren in mehreren Ländern, aber nicht annähernd so viele und es war nicht so einfach, zwischen ihnen zu wechseln und sie zu verwalten. Viele unserer Kunden verlangen zunehmend das Hosting innerhalb bestimmter Länder aufgrund von Gesetzen und Vorschriften rund um Daten. Andere wollen einfach nur die Latenzzeit reduzieren.
- Pay-as-you-go – Unser vorheriges Arrangement verlangte von uns, Server auf monatlicher Basis zu mieten, unabhängig davon, ob sie gebraucht wurden. Wir mussten jederzeit auf Traffic-Spitzen vorbereitet sein. AWS ist eher ein On-Demand-Modell, das es uns ermöglicht, virtuelle Server fast augenblicklich hochzufahren, sodass wir nur für das bezahlen, was wir nutzen. Wenn der Datenverkehr gering ist, wie z. B. in den Weihnachtsferien, wenn bei vielen unserer Kunden die Schulen ausfallen, sinken unsere Rechnungen.
- Es ist verdammt noch mal Amazon – AWS ist der vertrauenswürdigste und bekannteste Cloud-Anbieter, den es gibt. Wir sind in der Lage, das Vertrauen (und die Sicherheitszertifizierungen) von AWS zu nutzen, um unsere Kunden von der Qualität der Technologie hinter den von uns gehosteten Websites zu überzeugen.
AWS verwendet ein Pay-as-you-go-Preismodell, d. h. Sie zahlen nur für die Cloud-Infrastruktur und -Ressourcen, die Sie am Ende auch nutzen. Je nach Anwendungsfall kann dies ein großer Vorteil oder eine große Belastung für Ihre Taschen sein.
Warum AWS für WordPress?
Es gibt viele Vorteile, wenn Sie AWS für das Hosting Ihrer WordPress-Site nutzen. Hier sind die wichtigsten Vorteile:
- Vollständige Eigentümerschaft: Mit AWS haben Sie vollständigen Zugriff auf Server, Speicher, Datenbanken und andere Anwendungsservices. Während AWS nur die Hardware für die Ausführung dieser Services besitzt, haben Sie die vollständige Kontrolle über den Server, einschließlich aller Ihrer Daten.
- Flexibilität: Auch wenn die Ära von „move fast and break things“ irgendwie zu Ende gegangen ist, hat die Philosophie immer noch Bestand. Die Cloud bietet Ihnen einfachen und schnellen Zugang zu einer breiten Palette von Technologien, sodass Sie und Ihr Team schneller innovieren können.
- Bessere Benutzererfahrung: Der AWS-Service ist rasend schnell, da er von Amazon an mehreren Standorten auf der ganzen Welt gewartet wird. Das bedeutet geringere Latenz und schnellere Ladezeiten und damit ein besseres Erlebnis für Ihre Benutzer.
- Hochgradig skalierbar: Mit AWS haben Sie Zugriff auf so viel oder so wenig Computing-Infrastruktur wie Sie benötigen. Sie können je nach Bedarf Ihrer Website per Mausklick hoch- und runterskalieren.
- Kosteneinsparungen: Die Cloud ermöglicht es Ihnen, einen Server zu besitzen, ohne Kapitalaufwand wie Rechenzentren, Server usw tragen zu müssen. Da Amazon sich um die gesamte Infrastruktur in großem Umfang kümmert, können sie den Service für Sie zu einem erheblichen Preisnachlass bereitstellen.
Die Virtual Private Cloud
Die Virtual Private Cloud
CDN
Das erste, worauf jeder Besucher trifft, ist ein Content Delivery Network oder CDN. Wir sind ein CloudFlare-Hosting-Partner, daher nutzen die meisten unserer Kunden CloudFlare, das einige zusätzliche Sicherheitsvorteile wie eine WAF (Web Application Firewall) und DDoS-Schutz bietet. Andere entscheiden sich für AWS Cloudfront und wieder andere nutzen einen der unzähligen CDN-Dienste, die es gibt. Das CDN liefert Bilder und statische Inhalte von dem Rechenzentrum, das dem Besucher am nächsten liegt. Dadurch wird der Datenverkehr, der tatsächlich zu den Webservern gelangt, begrenzt und die Ladezeiten Ihrer Seiten können beschleunigt werden.
EC2 und Elastic Load Balancing
Für die eigentlichen Webserver verwenden wir mindestens 2 EC2 Large C4-Instanzen unter Linux mit jeweils 8 GB Speicher. Innerhalb jeder AWS-Region gibt es mehrere „Verfügbarkeitszonen“, d. h. separate physische Rechenzentren. Dies sorgt für Redundanz, sollte es einen Ausfall oder eine Naturkatastrophe geben, die einen Standort betrifft, kann der andere übernehmen.
Der Datenverkehr zu diesen EC2-Instanzen wird von einem Elastic Load Balancer geleitet, der festlegt, welcher virtuelle EC2-Server jeden Seitenaufruf oder jede Aktion eines Besuchers bearbeiten soll.
Docker-Container halten verschiedene WordPress-Installationen über die Instanzen hinweg voneinander getrennt.
Aurora Datenbank
Für die Datenbank, in der die Inhalte, Kommentare und Benutzerdaten gespeichert sind, verwenden wir zwei RDS M4-Standard-Instanzen mit MySQL. Diese sind in einer „Master/Standby“-Anordnung mit einem Failover auf die Standby-Instanz eingerichtet, falls mit der Master-Instanz etwas schiefgehen sollte.
Auch hier kommen wieder Elastic Load Balancer und Docker-Container zum Einsatz.
S3 File Storage
Die Verwendung von S3 für Benutzerdatei-Uploads wie Bilder und Dateien war unsere erste Erfahrung mit AWS – und es ist etwas, das Sie tun können (und sollten), auch wenn Sie Ihre Website irgendwo anders als bei Amazon hosten. S3 ist schnell, redundant und geradezu günstig für Speicher und Bandbreite.
EFS Codebase
Ihre Codebasis, einschließlich WordPress-Kern, Plugins und Themes, braucht ein Zuhause. Wir haben uns für das relativ neue Elastic File System (EFS) auf AWS entschieden, um dies zu handhaben. Wir verwenden Bitbucket.com für die Code-Verwaltung und Versionskontrolle sowie eine hauseigene Deployment-Anwendung, um Updates für alle von uns gehosteten Websites durchzuführen. Sie könnten auch Git oder andere Code-Hosting- und Verwaltungsdienste verwenden.
Elasticache
Das Hinzufügen des AWS Elasticache-Services bedeutet, dass wir den Besuchern beliebige statische HTML-Inhalte anbieten können, ohne dass eine Arbeit in der Datenbank erforderlich ist. Beachten Sie, dass angemeldete Benutzer normalerweise keine zwischengespeicherten Inhalte angezeigt bekommen. Wenn also Ihre gesamte Website privat oder eine Mitgliederseite ist, wird der Cache nicht viel für Sie tun.
SES Email
Ec2-Instanzen können auch E-Mails von WordPress aus versenden, z. B. Kommentar-Benachrichtigungen oder Passwort-Rücksetzungen. Wenn Ihre Website jedoch viele E-Mails versendet, insbesondere wenn Sie so etwas wie Subscribe By Email verwenden, sollten Sie besser einen Dienst nutzen, der speziell für den E-Mail-Versand entwickelt wurde. Zumindest können Sie mit SES die Wahrscheinlichkeit erhöhen, dass Ihre E-Mails zugestellt werden (und nicht als Spam markiert werden).
Cloudwatch Alarms und Logs
Über die gesamte VPC wacht Cloudwatch wie ein Falke. Durch das Sammeln von Protokollen und das Überwachen von Ressourcen können die Alarme von Cloudwatch automatisch EC2-Instanzen hinzufügen (oder entfernen), wenn die Auslastung dies rechtfertigt, so dass Sie nicht für virtuelle Dienste bezahlen, wenn sie nicht benötigt werden. Sie können auch so skalieren, um den höchsten Datenverkehr zu bewältigen, den Sie sich vorstellen können.