Bearbeiten

WordPress in Azure Kubernetes Service

Azure Cache for Redis
Azure Front Door
Azure Kubernetes Service (AKS)
Azure Load Balancer
Azure NetApp Files

In diesem Artikel wird eine Containerlösung zum Hosten einer großen und speicherintensiven Installation von WordPress in Azure beschrieben. Diese Lösung maximiert die Skalierbarkeit und Sicherheit. Zu den wichtigsten Komponenten gehören Azure Front Door, Azure Kubernetes Service (AKS) und Azure NetApp Files.

Aufbau

Architecture diagram of an AKS WordPress deployment. Azure NetApp Files stores static content. Private endpoints provide access to other services.

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. Der interne Lastenausgleich ist eine ausgeblendete Komponente von AKS. Azure Front Door ruft alle Daten ab, die nicht zwischengespeichert werden.
  • Der interne Lastenausgleich verteilt eingehenden Datenverkehr zu Pods innerhalb von AKS.
  • Azure Key Vault speichert Geheimnisse wie den privaten Schlüssel, bei dem es sich um ein X.509-Zertifikat handelt.
  • 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 diesem verwalteten Datendienst ab.
  • Alle statischen Inhalte werden in Azure NetApp Files gehostet. Diese Lösung verwendet den Container Storage Interface-Treiber (CSI) von Astra Trident mit dem NFS-Protokoll.

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.
  • AKS ist ein vollständig verwalteter Kubernetes-Dienst, den Sie zur Bereitstellung, Verwaltung und Skalierung containerisierter Anwendungen verwenden können.
  • 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 im AKS-Cluster als Cache verwenden.
  • Anstelle einer verwalteten Speicherlösung wie Azure NetApp Files können Sie eine selbstgehostete Lösung wie Rook-Ceph Storage verwenden. Weitere Informationen finden Sie unter Rook Ceph mit Azure Kubernetes Service 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 beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. 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:

  • Diese Lösung verwendet Pods in AKS und einen Lastenausgleich, um eingehenden Datenverkehr zu verteilen. Dieser Ansatz bietet Hochverfügbarkeit, selbst wenn ein Pod ausfällt.
  • Diese Lösung unterstützt mehrere Regionen, Datenreplikation sowie automatische Skalierung. Die Komponenten verteilen Datenverkehr an die Pods. Integritätstests werden eingesetzt, damit der Datenverkehr nur an fehlerfreie Pods 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 bewährten Methoden, 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 den öffentlichen Zugriff auf privaten Speicher nicht zu, und deaktivieren Sie den öffentlichen Zugriff auf Ressourcen. Verwenden Sie private Endpunkte für Azure Database for MySQL, Azure Cache for Redis, Key Vault und Azure Container Registry. Weitere Informationen hierzu finden Sie unter Azure Private Link.

Weitere Informationen zur Sicherheit für WordPress 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 Anzahl der benötigten AKS-Knoten 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.
  • AKS-Clusteroptimierung. Befolgen Sie allgemeine Tipps für AKS, z. B. Anleitungen zur VM-Größe und zu Azure-Reservierungen, um die Kosten Ihres AKS-Clusters zu optimieren. Weitere Informationen finden Sie unter AKS-Optimierung.

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 Pods in AKS verwendet, um das Front-End zu hosten. Mithilfe der Autoskalierungsfunktion kann die Anzahl der Pods, auf denen die Front-End-Anwendungsebene ausgeführt wird, automatisch skaliert werden, um die Kundenanforderungen zu erfüllen. Sie können auch basierend auf einem Zeitplan skalieren. Weitere Informationen finden Sie unter Skalierungsoptionen für Anwendungen in Azure Kubernetes Service (AKS).

Wichtig

Für eine optimale Leistung ist es wichtig, ein persistentes Volume einzubinden, das das NFS-Protokoll in der Version 4.1 verwendet. Das folgende YAML-Beispiel zeigt, wie ein „PersistentVolume“-Objekt für diesen Zweck konfiguriert wird. Notieren Sie sich den Wert des Felds „mountOptions“.

kind: PersistentVolume
...
    accessModes:
    - ReadWriteMany
    mountOptions:
    - vers=4.1
    nfs:
      server: xx.xx.xx.xx

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: