Bearbeiten

WordPress auf virtuellen Computern

Azure Front Door
Azure-Schlüsseltresor
Azure Load Balancer
Azure Virtual Network
Skalierungsgruppen für virtuelle Azure-Computer

In diesem Artikel wird eine Lösung zum Hosten einer großen, speicherintensiven WordPress -Installation in Azure beschrieben. Die Lösung maximiert Skalierbarkeit und Sicherheit. Zu den wichtigsten Lösungskomponenten gehören Azure Front Door, Azure Virtual Machines und Azure NetApp Files.

Aufbau

Architekturdiagramm einer WordPress-Bereitstellung in Azure Virtual Machine Scale Sets. Azure NetApp Files speichert statische Inhalte.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Hinweis

Sie können diese Lösung erweitern, indem Sie Tipps und Empfehlungen umsetzen, die nicht spezifisch für eine bestimmte WordPress-Hostingmethode sind. Allgemeine Tipps zum Bereitstellen einer WordPress-Installation finden Sie unter WordPress in Azure.

Datenfluss

  • Benutzer*innen greifen über Azure Front Door auf die Front-End-Website zu, wobei Azure Web Application Firewall aktiviert ist.
  • Azure Front Door verwendet eine interne Instanz von Azure Load Balancer als Ursprung. Azure Front Door ruft alle Daten ab, die nicht zwischengespeichert werden.
  • Der interne Lastenausgleich verteilt Anforderungen an Azure Virtual Machine Scale Sets. Diese Skalierungsgruppen bestehen aus Ubuntu-Webservern.
  • Schlüssel und andere Geheimnisse werden in Azure Key Vault gespeichert.
  • Die WordPress-Anwendung verwendet einen privaten Endpunkt, um auf eine flexible Serverinstanz von Azure Database for MySQL zuzugreifen. Die WordPress-Anwendung ruft dynamische Informationen aus der Datenbank ab.
  • Alle statischen Inhalte werden in Azure NetApp Files gehostet und über das NFS-Protokoll auf den virtuellen Computern (VMs) bereitgestellt.

Komponenten

  • Azure Front Door ist ein modernes Cloud Content Delivery Network. Als verteiltes Servernetzwerk liefert Azure Front Door Webinhalte effizient an die Benutzer*innen. Content Delivery Networks minimieren die Wartezeit, indem zwischengespeicherter Inhalt auf Edgeservern an POP-Standorten (Point-of-Presence) in der Nähe von Endbenutzer*innen gespeichert wird.
  • Azure Virtual Network bietet bereitgestellten Ressourcen eine Möglichkeit, sicher miteinander sowie mit dem Internet und mit lokalen Netzwerken zu kommunizieren. Virtuelle Netzwerke bieten Isolation und Segmentierung. Außerdem filtern und leiten sie den Datenverkehr und ermöglichen es, Verbindungen zwischen verschiedenen Standorten herzustellen. In dieser Lösung werden die beiden Netzwerke über das Peering virtueller Netzwerke verbunden.
  • Azure DDoS Protection bietet verbesserte DDoS-Entschärfungsfeatures. Wenn Sie diese Features mit bewährten Methoden für das Anwendungsdesign kombinieren, helfen sie bei der Abwehr von DDoS-Angriffen. Sie sollten DDoS Protection in allen virtuellen Umkreisnetzwerken aktivieren.
  • Netzwerksicherheitsgruppen enthalten eine Liste mit Sicherheitsregeln, um ein- oder ausgehenden Netzwerkdatenverkehr basierend auf IP-Adresse, Port und Protokoll (für die Quelle bzw. das Ziel) zuzulassen oder abzulehnen. In den Subnetzen dieses Szenarios beschränken Netzwerksicherheitsgruppenregeln den Datenverkehr zwischen den Anwendungskomponenten.
  • Azure Load Balancer verteilt eingehenden Datenverkehr auf der Grundlage von Regeln sowie basierend auf den Ergebnissen von Integritätstests. Ein Lastenausgleich bietet niedrige Latenz und hohen Durchsatz. Durch die Verteilung des Datenverkehrs auf mehrere Server erhöht ein Lastenausgleich die Skalierbarkeit für TCP- (Transmission Control Protocol) und UDP-Anwendungen (User Datagram Protocol). In diesem Szenario verteilt ein Lastenausgleich Datenverkehr aus dem Content Delivery Network an die Front-End-Webserver.
  • Virtual Machine Scale Sets bietet die Möglichkeit, eine Gruppe identischer virtueller Computer mit Lastenausgleich zu erstellen und zu verwalten. Die Anzahl von VM-Instanzen kann automatisch erhöht oder verringert werden, wenn sich der Bedarf ändert, oder es kann ein Zeitplan festgelegt werden. In diesem Szenario werden zwei separate Skalierungsgruppen verwendet. Eine Gruppe ist für die Front-End-Webserver, die Inhalte bereitstellen, und eine für die Front-End-Webserver, die zum Erstellen neuer Inhalte verwendet werden, vorgesehen.
  • Azure NetApp Files bietet eine vollständig verwaltete, leistungsstarke und latenzempfindliche Speicherlösung. In dieser Lösung hostet Azure NetApp Files alle WordPress-Inhalte, sodass sämtliche Pods Zugriff auf die Daten haben.
  • Azure Cache for Redis ist ein In-Memory-Datenspeicher. Sie können Azure Cache for Redis verwenden, um einen Schlüssel-Wert-Cache in dieser Lösung zu hosten. Dieser Cache wird für alle Pods freigegeben und für Plug-Ins zur Leistungsoptimierung von WordPress verwendet.
  • Key Vault speichert Kennwörter, Zertifikate und Schlüssel und kontrolliert den Zugriff darauf.
  • Azure Database for MySQL – flexibler Server stellt einen relationalen Datenbankdienst bereit, der auf der Open-Source-MySQL-Datenbank-Engine basiert. Die Bereitstellungsoption „flexibler Server“ ist ein vollständig verwalteter Datenbankdienst, der eine differenzierte Steuerung und Flexibilität in Bezug auf Datenbank-Verwaltungsfunktionen und -Konfigurationseinstellungen bietet. In diesem Szenario speichert Azure Database for MySQL die WordPress-Daten.

Alternativen

Anstelle des verwalteten Diensts Azure Cache for Redis können Sie einen selbstgehosteten Pod in einer VM als Cache verwenden.

Szenariodetails

Dieses Beispielszenario eignet sich für große und speicherintensive Installationen von WordPress. Dieses Bereitstellungsmodell kann skaliert werden, um Spitzen im auf der Website eingehenden Datenverkehr gerecht zu werden.

Mögliche Anwendungsfälle

  • Blogs mit hohem Datenverkehrsaufkommen, die WordPress als Content-Management-System nutzen
  • Unternehmens- oder E-Commerce-Websites, die WordPress verwenden

Überlegungen

Diese Überlegungen setzen die Säulen des Azure Well-Architected Framework um, das eine Reihe von Leitprinzipien enthält, die zur Verbesserung der Qualität eines Workloads verwendet werden können. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung Ihre Verpflichtungen gegenüber den Kunden erfüllen kann. Weitere Informationen finden Sie in der Überblick über die Säule „Zuverlässigkeit“.

Berücksichtigen Sie die folgenden Empfehlungen, wenn Sie diese Lösung bereitstellen:

  • Die Lösung verwendet Virtual Machine Scale Sets und einen Lastenausgleich, um den eingehenden Datenverkehr zu verteilen. Dieser Ansatz bietet selbst dann Hochverfügbarkeit, wenn eine VM ausfällt.
  • Diese Lösung unterstützt mehrere Regionen, Datenreplikation sowie automatische Skalierung. Die Netzwerkkomponenten verteilen den Datenverkehr an die VMs. Integritätstests werden eingesetzt, damit der Datenverkehr nur an fehlerfreie VMs verteilt wird.
  • Alle Netzwerkkomponenten werden von Azure Front Door bereitgestellt. Dieser Ansatz sorgt dafür, dass die Netzwerkressourcen und die Anwendung resilient gegenüber Problemen sind, die andernfalls zu einer Störung des Datenverkehrs führen und den Endbenutzerzugriff beeinträchtigen würden.
  • Azure Front Door ist ein globaler Dienst, der VM-Skalierungsgruppen unterstützt, die in einer anderen Region bereitgestellt werden.
  • Wenn Sie Azure Front Door zum Zwischenspeichern aller Antworten verwenden, erzielen Sie einen kleinen Verfügbarkeitsvorteil. Insbesondere wenn der Ursprung nicht antwortet, können Sie immer noch auf Inhalte zugreifen. Das Zwischenspeichern stellt jedoch keine vollständige Verfügbarkeitslösung dar.
  • Um die Verfügbarkeit zu erhöhen, replizieren Sie Azure NetApp Files-Speicher zwischen Regionspaaren. Weitere Informationen finden Sie unter Regionsübergreifende Replikation mit Azure NetApp Files.
  • Um die Verfügbarkeit von Azure Database for MySQL zu erhöhen, nutzen Sie die Optionen zur Hochverfügbarkeit, die Ihren Anforderungen entsprechen.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Berücksichtigen Sie die folgenden Empfehlungen, wenn Sie diese Lösung bereitstellen:

  • Verwenden Sie Web Application Firewall in Azure Front Door, um den Datenverkehr virtueller Netzwerke zu schützen, der in die Front-End-Anwendungsebene fließt. Weitere Informationen finden Sie unter Azure Web Application Firewall in Azure Front Door.
  • Lassen Sie nicht zu, dass ausgehender Internetdatenverkehr von der Datenbankebene fließt.
  • Lassen Sie keinen öffentlichen Zugriff auf privaten Speicher zu.
  • Deaktivieren Sie ggf. den öffentlichen Zugriff auf Ressourcen. Verwenden Sie private Endpunkte für Azure Database for MySQL, Azure Cache for Redis und Key Vault.

Weitere Informationen zur WordPress-Sicherheit finden Sie in den Allgemeinen Sicherheits- und Leistungstipps für WordPress und in der Azure-Sicherheitsdokumentation.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Machen Sie sich mit den folgenden Kostenüberlegungen vertraut, wenn Sie diese Lösung bereitstellen:

  • Datenverkehrserwartungen (GB/Monat). Ihr Datenverkehrsvolumen hat die größten Auswirkungen auf Ihre Kosten. Die Menge an Datenverkehr, die Sie erhalten, bestimmt die benötigte Anzahl von VMs und den Preis für die ausgehende Datenübertragung. Das Datenverkehrsvolumen korreliert auch direkt mit der Datenmenge, die von Ihrem Content Delivery Network bereitgestellt wird, wobei die Kosten für die ausgehende Datenübertragung günstiger sind.
  • Menge gehosteter Daten. Es ist wichtig, die Menge an Daten zu berücksichtigen, die Sie hosten, da die Preise von Azure NetApp Files auf der reservierten Kapazität basieren. Um die Kosten zu optimieren, reservieren Sie nur die Mindestkapazität, die Sie für Ihre Daten benötigen.
  • Prozentsatz an Schreibvorgängen. Überlegen Sie, wie viele neue Daten Sie auf Ihre Website schreiben und welche Kosten für ihre Speicherung anfallen. Bei Bereitstellungen in mehreren Regionen korreliert die Menge neuer Daten, die Sie auf Ihre Website schreiben, mit der Datenmenge, die in Ihren Regionen gespiegelt wird.
  • Statische und dynamische Inhalte im Vergleich. Überwachen Sie die Leistung und Kapazität Ihres Datenbankspeichers, um festzustellen, ob eine günstigere SKU Ihre Website unterstützen kann. In der Datenbank werden dynamische Inhalte gespeichert, und das Content Delivery Network speichert statische Inhalte zwischen.
  • VM-Optimierung. Um die VM-Kosten zu optimieren, befolgen Sie die allgemeinen Tipps für virtuelle Computer. Weitere Informationen finden Sie unter Tipps zur Kostenoptimierung.

Effiziente Leistung

Leistungseffizienz ist die Fähigkeit Ihrer Workload, auf effiziente Weise eine den Anforderungen der Benutzer entsprechende Skalierung auszuführen. Weitere Informationen finden Sie unter Übersicht über die Säule „Leistungseffizienz“.

In diesem Szenario werden VM-Skalierungsgruppen für die beiden Front-End-Webservercluster in der jeweiligen Region verwendet. Mit Skalierungsgruppen kann die Anzahl von VM-Instanzen, die auf der Front-End-Anwendungsebene ausgeführt werden, als Reaktion auf eine Kundennachfrage automatisch skaliert werden. Die VMs können auch basierend auf einem Zeitplan skaliert werden. Weitere Informationen finden Sie unter Übersicht über die automatische Skalierung mit Azure-VM-Skalierungsgruppen.

Wichtig

Um eine optimale Leistung zu erzielen, ist es wichtig, den Speicher über die NFS-Protokollversion 4.1 bereitzustellen. Im folgenden Bash-Beispiel für Ubuntu wird gezeigt, wie Sie die Option vers konfigurieren:

# Install an NFS driver and create a directory.
$ apt-get install -y nfs-common && mkdir -p /var/www/html
# Add auto-mount on startup. (Replace the following code with
# instructions from the Azure portal, but change the vers value to 4.1.)
$ echo '<netapp_private_ip>:/<volume_name> /var/www/html nfs rw,hard,rsize=262144,wsize=262144,sec=sys,vers=4.1,tcp 0 0' >> /etc/fstab
# Mount the storage.
$ mount -a

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

  • Adrian Calinescu | Senior Cloud Solution Architect

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte

Produktdokumentation:

Microsoft-Trainingsmodule: