Skalierbare und sichere WordPress-Website in Azure

Azure
Arc
Files
SQL Server
Surface

Dieses Beispielszenario richtet sich an Unternehmen, die eine hochgradig skalierbare und sichere Installation von WordPress benötigen.This example scenario is applicable to companies that need a highly scalable and secure installation of WordPress. Dieses Szenario basiert auf einer Bereitstellung, die für eine große Konvention verwendet wurde und erfolgreich skaliert werden konnte, um den Spitzenlasten gerecht zu werden, die auf der Website durch Sitzungen entstanden.This scenario is based on a deployment that was used for a large convention and was successfully able to scale to meet the spike traffic that sessions drove to the site.

Relevante AnwendungsfälleRelevant use cases

Zu den weiteren relevanten Anwendungsfällen zählen:Other relevant use cases include:

  • Medienereignisse, die einen raschen Datenverkehrsanstieg verursachenMedia events that cause traffic surges.
  • Blogs, die WordPress als Content Management-System nutzenBlogs that use WordPress as their content management system.
  • Unternehmen oder E-Commerce-Websites, die WordPress verwendenBusiness or e-commerce websites that use WordPress.
  • Websites, die mit anderen Content Management-Systemen erstellt wurdenWeb sites built using other content management systems.

AufbauArchitecture

Architekturübersicht über die an einer skalierbaren und sicheren WordPress-Bereitstellung beteiligten KomponentenArchitecture overview of the Azure components involved in a scalable and secure WordPress deployment

Dieses Szenario umfasst eine skalierbare und sichere WordPress-Installation, die Ubuntu-Webserver und MariaDB verwendet.This scenario covers a scalable and secure installation of WordPress that uses Ubuntu web servers and MariaDB. In diesem Szenario erfolgen zwei unterschiedliche Datenflüsse. Der erste davon ist der Zugriff auf die Website durch Benutzer:There are two distinct data flows in this scenario the first is users access the website:

  1. Benutzer greifen über ein CDN auf die Front-End-Website zu.Users access the front-end website through a CDN.
  2. Das CDN verwendet einen Azure-Lastenausgleich als Ursprung und ruft alle nicht zwischengespeicherten Daten von dort ab.The CDN uses an Azure load balancer as the origin, and pulls any data that isn't cached from there.
  3. Der Azure-Lastenausgleich verteilt Anforderungen an die VM-Skalierungsgruppen von Webservern.The Azure load balancer distributes requests to the virtual machine scale sets of web servers.
  4. Die WordPress-Anwendung ruft dynamische Informationen per Pull aus den MariaDB-Clustern ab, der gesamte statische Inhalt ist in Azure Files gehostet.The WordPress application pulls any dynamic information out of the Maria DB clusters, all static content is hosted in Azure Files.
  5. SSL-Schlüssel werden in Azure Key Vault gespeichert.SSL keys are stored Azure Key Vault.

Mit dem zweiten Workflow tragen Autoren neuen Inhalt bei:The second workflow is how authors contribute new content:

  1. Autoren stellen eine sichere Verbindung mit dem öffentlichen VPN-Gateway her.Authors connect securely to the public VPN gateway.
  2. Informationen für die VPN-Authentifizierung werden in Azure Active Directory gespeichert.VPN authentication information is stored in Azure Active Directory.
  3. Anschließend wird eine Verbindung mit den Administrator-Jumpboxes hergestellt.A connection is then established to the Admin jump boxes.
  4. Über die Administrator-Jumpbox kann der Autor dann eine Verbindung mit dem Azure-Lastenausgleich für den Dokumenterstellungscluster herstellen.From the admin jump box, the author is then able to connect to the Azure load balancer for the authoring cluster.
  5. Der Azure-Lastenausgleich verteilt Datenverkehr an die VM-Skalierungsgruppe von Webservern, die Schreibzugriff auf den MariaDB-Cluster haben.The Azure load balancer distributes traffic to the virtual machine scale sets of web servers that have write access to the Maria DB cluster.
  6. Neuer statischer Inhalt wird in Azure Files hochgeladen, und dynamischer Inhalt wird in den MariaDB-Cluster geschrieben.New static content is uploaded to Azure files and dynamic content is written into the Maria DB cluster.
  7. Diese Änderungen werden dann über rsync oder die Replikation zwischen Primär- und Sekundärgerät in der alternativen Region repliziert.These changes are then replicated to the alternate region via rsync or primary/secondary replication.

KomponentenComponents

  • Azure Content Delivery Network (CDN) ist ein verteiltes Netzwerk mit Servern, über die Webinhalte auf effiziente Weise für Benutzer bereitgestellt werden.Azure Content Delivery Network (CDN) is a distributed network of servers that efficiently delivers web content to users. CDNs minimieren die Wartezeit, indem zwischengespeicherter Inhalt auf Edgeservern an POP-Standorten (Point-of-Presence) in der Nähe von Endbenutzern gespeichert wird.CDNs minimize latency by storing cached content on edge servers in point-of-presence locations near to end users.
  • Mit virtuellen Netzwerken können Ressourcen, z.B. virtuelle Computer, auf sichere Weise miteinander, im Internet und mit lokalen Netzwerken kommunizieren.Virtual networks allow resources such as VMs to securely communicate with each other, the Internet, and on-premises networks. Virtuelle Netzwerke ermöglichen Isolation und Segmentierung, die Filterung und Weiterleitung von Datenverkehr und die Verbindungsherstellung zwischen Standorten.Virtual networks provide isolation and segmentation, filter and route traffic, and allow connection between locations. Die beiden Netzwerke sind über VNET-Peering verbunden.The two networks are connected via Vnet peering.
  • Netzwerksicherheitsgruppen enthalten eine Liste mit Sicherheitsregeln, die ein- oder ausgehenden Netzwerkdatenverkehr basierend auf IP-Adresse, Port und Protokoll (für die Quelle bzw. das Ziel) zulassen oder ablehnen.Network security groups contain a list of security rules that allow or deny inbound or outbound network traffic based on source or destination IP address, port, and protocol. Die virtuellen Netzwerke in diesem Szenario sind durch Netzwerksicherheitsgruppen-Regeln geschützt, mit denen der Datenverkehrsfluss zwischen den Anwendungskomponenten eingeschränkt wird.The virtual networks in this scenario are secured with network security group rules that restrict the flow of traffic between the application components.
  • Lastenausgleiche verteilen eingehenden Datenverkehr gemäß den Regeln und Integritätstests.Load balancers distribute inbound traffic according to rules and health probes. Ein Lastenausgleichsmodul sorgt für niedrige Latenzen und einen hohen Durchsatz und kann eine Skalierung auf Millionen von Datenflüssen für alle TCP- und UDP-Anwendungen durchführen.A load balancer provides low latency and high throughput, and scales up to millions of flows for all TCP and UDP applications. In diesem Szenario wird ein Lastenausgleich verwendet, um Datenverkehr aus dem Content Delivery Network an die Front-End-Webserver zu verteilen.A load balancer is used in this scenario to distribute traffic from the content deliver network to the front-end web servers.
  • Mit VM-Skalierungsgruppen können Sie eine Gruppe identischer virtueller Computer mit Lastenausgleich erstellen und verwalten.Virtual machine scale sets let you create and manage a group of identical load-balanced VMs. Die Anzahl von VM-Instanzen kann automatisch erhöht oder verringert werden, wenn sich der Bedarf ändert, oder es kann ein Zeitplan festgelegt werden.The number of VM instances can automatically increase or decrease in response to demand or a defined schedule. In diesem Szenario werden zwei separate VM-Skalierungsgruppen verwendet – eine für die Front-End-Webserver, die Inhalt bereitstellen, und eine für die Front-End-Webserver, die zum Erstellen neuer Inhalte dienen.Two separate virtual machine scale sets are used in this scenario - one for the front-end web-servers serving content, and one for the front-end web servers used to author new content.
  • Azure Files stellt eine vollständig verwaltete Dateifreigabe in der Cloud bereit, die den gesamten WordPress-Inhalt in diesem Szenario hostet, sodass alle virtuellen Computer Zugriff auf die Daten haben.Azure Files provides a fully managed file share in the cloud that hosts all of the WordPress content in this scenario, so that all of the VMs have access to the data.
  • Azure Key Vault wird zum Speichern von Kennwörtern, Zertifikaten und Schlüsseln sowie zur strengen Kontrolle des Zugriffs auf diese verwendet.Azure Key Vault is used to store and tightly control access to passwords, certificates, and keys.
  • Azure Active Directory (Azure AD) ist ein mehrinstanzenfähiger cloudbasierter Verzeichnis- und Identitätsverwaltungsdienst.Azure Active Directory (Azure AD) is a multitenant, cloud-based directory and identity management service. In diesem Szenario stellt Azure AD Authentifizierungsdienste für die Website und die VPN-Tunnel bereit.In this scenario, Azure AD provides authentication services for the website and the VPN tunnels.

AlternativenAlternatives

ÜberlegungenConsiderations

VerfügbarkeitAvailability

Die VM-Instanzen in diesem Szenario werden in mehreren Regionen bereitgestellt. Dabei werden die Daten zwischen den beiden über rsync für die WordPress-Inhalte und über die Replikation zwischen Primär- und Sekundärgerät für die MariaDB-Cluster repliziert.The VM instances in this scenario are deployed across multiple regions, with the data replicated between the two via RSYNC for the WordPress content and primary/secondary replication for the MariaDB clusters.

SkalierbarkeitScalability

Dieses Szenario verwendet VM-Skalierungsgruppen für die beiden Front-End-Webservercluster in jeder Region.This scenario uses virtual machine scale sets for the two front-end web server clusters in each region. Mit Skalierungsgruppen kann die Anzahl von VM-Instanzen, die auf der Front-End-Anwendungsebene ausgeführt werden, als Reaktion auf eine veränderte Kundennachfrage oder basierend auf einem definierten Zeitplan automatisch skaliert werden.With scale sets, the number of VM instances that run the front-end application tier can automatically scale in response to customer demand, or based on a defined schedule. Weitere Informationen finden Sie unter Übersicht über die automatische Skalierung mit VM-Skalierungsgruppen.For more information, see Overview of autoscale with virtual machine scale sets.

Das Back-End ist ein MariaDB-Cluster in einer Verfügbarkeitsgruppe.The back end is a MariaDB cluster in an availability set. Weitere Informationen finden Sie im Tutorial zum MariaDB-Cluster.For more information, see the MariaDB cluster tutorial.

Weitere Skalierbarkeitsthemen finden Sie im Azure Architecture Center in der Checkliste für die Skalierbarkeit unter „Skalierbarkeit“.For other scalability topics, see the [scalability checklist][scalability] in the Azure Architecture Center.

SicherheitSecurity

Der gesamte Datenverkehr von virtuellen Netzwerken fließt über die Front-End-Anwendungsebene und wird mit Netzwerksicherheitsgruppen geschützt.All the virtual network traffic into the front-end application tier and protected by network security groups. Anhand von Regeln wird der Datenverkehrsfluss eingeschränkt, sodass nur die VM-Instanzen der Front-End-Anwendungsebene auf die Back-End-Datenbankebene zugreifen können.Rules limit the flow of traffic so that only the front-end application tier VM instances can access the back-end database tier. Es ist kein ausgehender Internetdatenverkehr von der Datenbankebene zulässig.No outbound Internet traffic is allowed from the database tier. Es werden keine Ports für die direkte Remoteverwaltung geöffnet, um die Angriffsfläche zu reduzieren.To reduce the attack footprint, no direct remote management ports are open. Weitere Informationen finden Sie unter Azure-Netzwerksicherheitsgruppen.For more information, see Azure network security groups.

Allgemeine Informationen zur Entwicklung sicherer Szenarien finden Sie in der Dokumentation zur Azure-Sicherheit.For general guidance on designing secure scenarios, see the Azure Security Documentation.

ResilienzResiliency

Dieses Szenario verwendet Azure-Lastenausgleiche in Kombination mit mehreren Regionen, Datenreplikation und VM-Skalierungsgruppen.In combination with the use of multiple regions, data replication and virtual machine scale sets, this scenario uses Azure load balancers. Über diese Netzwerkkomponenten wird Datenverkehr auf die verbundenen VM-Instanzen verteilt, und es werden Integritätstests eingebunden, mit denen sichergestellt wird, dass Datenverkehr nur auf fehlerfreie virtuelle Computer verteilt wird.These networking components distribute traffic to the connected VM instances, and include health probes that ensure traffic is only distributed to healthy VMs. Alle diese Netzwerkkomponenten werden über ein CDN nach außen verfügbar gemacht.All of these networking components are fronted via a CDN. Mit dieser Konfiguration sind die Netzwerkressourcen und die Anwendung resilient gegenüber Problemen, die andernfalls zu einer Störung des Datenverkehrs und zu Auswirkungen auf den Zugriff durch Endbenutzer führen würden.This makes the networking resources and application resilient to issues that would otherwise disrupt traffic and impact end-user access.

Allgemeine Informationen zur Entwicklung robuster Szenarien finden Sie unter Entwerfen zuverlässiger Azure-Anwendungen.For general guidance on designing resilient scenarios, see Designing reliable Azure applications.

PreisePricing

Zur Ermittlung der Betriebskosten für dieses Szenario sind alle Dienste im Kostenrechner vorkonfiguriert.To explore the cost of running this scenario, all of the services are pre-configured in the cost calculator. Wenn Sie wissen möchten, welche Kosten für Ihren spezifischen Anwendungsfall entstehen, passen Sie die entsprechenden Variablen an Ihren voraussichtlichen Datenverkehr an.To see how the pricing would change for your particular use case, change the appropriate variables to match your expected traffic.

Wir haben ein vorkonfiguriertes Kostenprofil basierend auf dem obigen Architekturdiagramm bereitgestellt.We have provided a pre-configured cost profile based on the architecture diagram provided above. Bei der Konfiguration des Preisrechners für Ihren Anwendungsfall sind einige wichtige Aspekte zu beachten:To configure the pricing calculator for your use case, there are a couple main things to consider:

  • Wie viel GB an Datenverkehr erwarten Sie pro Monat?How much traffic are you expecting in terms of GB/month? Die Menge des Datenverkehrs hat den größten Einfluss auf Ihre Kosten, da sie die Anzahl der virtuellen Computer bestimmt, die erforderlich sind, um die Daten in der VM-Skalierungsgruppe zugänglich zu machen.The amount of traffic will have the biggest impact on your cost, as it will impact the number of VMs that are required to surface the data in the virtual machine scale set. Darüber korreliert sie direkt mit der Menge an Daten, der über das CDN zugänglich gemacht werden.Additionally, it will directly correlate with the amount of data that is surfaced via the CDN.
  • Wie viele neue Daten werden Sie auf Ihre Website schreiben?How much new data are you going to be writing to your website? Neue Daten, die auf Ihre Website geschrieben werden, korrelieren mit der Menge an Daten, die in allen Regionen gespiegelt werden.New data written to your website correlates with how much data is mirrored across the regions.
  • Wie viel von Ihren Inhalt ist dynamisch?How much of your content is dynamic? Wie viel ist statisch?How much is static? Die Varianz rund um dynamische und statische Inhalte wirkt sich darauf aus, wie viele Daten von der Datenbankebene abgerufen und wie viele Daten im CDN zwischengespeichert werden.The variance around dynamic and static content influences how much data has to be retrieved from the database tier versus how much will be cached in the CDN.