WordPress op virtuele machines

Azure Front Door
Azure Key Vault
Azure Load Balancer
Azure Virtual Network
Azure Virtual Machine Scale Sets

In dit artikel wordt een oplossing beschreven voor het hosten van een grote, opslagintensieve installatie van WordPress in Azure. De oplossing maximaliseert de schaalbaarheid en beveiliging. Belangrijke oplossingsonderdelen zijn Azure Front Door, Azure Virtual Machines en Azure NetApp Files.

Architectuur

Architectuurdiagram van een WordPress-implementatie in Azure Virtual Machine Scale Sets. Azure NetApp Files slaat statische inhoud op.

Een Visio-bestand van deze architectuur downloaden.

Notitie

U kunt deze oplossing uitbreiden door tips en aanbevelingen te implementeren die niet specifiek zijn voor een bepaalde WordPress-hostingmethode. Zie WordPress op Azure voor algemene tips voor het implementeren van een WordPress-installatie.

Gegevensstroom

  • Gebruikers hebben toegang tot de front-endwebsite via Azure Front Door met Azure Web Application Firewall ingeschakeld.
  • Azure Front Door gebruikt een intern exemplaar van Azure Load Balancer als oorsprong. Azure Front Door haalt alle gegevens op die niet in de cache zijn opgeslagen.
  • De interne load balancer distribueert aanvragen naar Azure Virtual Machine Scale Sets. De schaalsets bestaan uit Ubuntu-webservers.
  • Sleutels en andere geheimen worden opgeslagen in Azure Key Vault.
  • De WordPress-toepassing maakt gebruik van een privé-eindpunt voor toegang tot een flexibele serverinstantie van Azure Database for MySQL. De WordPress-toepassing haalt dynamische informatie op uit de database.
  • Alle statische inhoud wordt gehost in Azure NetApp Files en gekoppeld aan de virtuele machines (VM's) via het NFS-protocol.

Onderdelen

  • Azure Front Door is een modern netwerk voor de levering van inhoud in de cloud. Als een gedistribueerd netwerk van servers levert Azure Front Door efficiënt webinhoud aan gebruikers. Netwerken voor contentlevering minimaliseren de latentie door inhoud in de cache op te slaan op edge-servers op locaties waar zich een aanwezigheidspunt bevindt in de buurt van eindgebruikers.
  • Azure Virtual Network biedt een manier om geïmplementeerde resources met elkaar, internet en on-premises netwerken te laten communiceren. Virtuele netwerken bieden isolatie en segmentatie. Ze filteren en routeren ook verkeer en maken het mogelijk om verbindingen tussen verschillende locaties tot stand te brengen. In deze oplossing worden de twee netwerken verbonden via peering van virtuele netwerken.
  • Azure DDoS Protection biedt verbeterde DDoS-risicobeperkingsfuncties. Wanneer u deze functies combineert met best practices voor toepassingsontwerp, helpen ze u te beschermen tegen DDoS-aanvallen. U moet DDoS-beveiliging inschakelen voor virtuele perimeternetwerken.
  • Netwerkbeveiligingsgroepen gebruiken een lijst met beveiligingsregels om binnenkomend of uitgaand netwerkverkeer toe te staan of te weigeren op basis van bron- of doel-IP-adres, poort en protocol. In de subnetten van dit scenario beperken regels voor netwerkbeveiligingsgroepen de verkeersstroom tussen de toepassingsonderdelen.
  • Load Balancer verdeelt inkomend verkeer op basis van regels en statustestresultaten. Een load balancer biedt lage latentie en hoge doorvoer. Door verkeer over meerdere servers te spreiden, voegt een load balancer schaalbaarheid toe aan TCP- (Transmission Control Protocol) en UDP-toepassingen (User Datagram Protocol). In dit scenario verdeelt een load balancer verkeer van het netwerk voor inhoudslevering naar de front-endwebservers.
  • Virtual Machine Scale Sets biedt een manier om een groep identieke VM's met gelijke taakverdeling te maken en te beheren. Het aantal VM-exemplaren kan automatisch toenemen of afnemen in reactie op vraag of een ingesteld schema. In dit scenario worden twee afzonderlijke schaalsets gebruikt. De ene is voor de front-endwebservers die inhoud leveren en een voor de front-endwebservers die worden gebruikt om nieuwe inhoud te maken.
  • Azure NetApp Files biedt een volledig beheerde, prestatie-intensieve en latentiegevoelige opslagoplossing. In deze oplossing host Azure NetApp Files alle WordPress-inhoud, zodat alle pods toegang hebben tot de gegevens.
  • Azure Cache voor Redis is een gegevensarchief in het geheugen. U kunt Azure Cache voor Redis gebruiken om een sleutel-waardecache in deze oplossing te hosten. Deze cache wordt gedeeld met alle pods en wordt gebruikt voor WordPress-invoegtoepassingen voor prestatieoptimalisatie.
  • Key Vault slaat de toegang tot wachtwoorden, certificaten en sleutels op en beheert deze.
  • Azure Database for MySQL: flexibele server is een relationele databaseservice die is gebaseerd op de opensource-MySQL-database-engine. De implementatieoptie voor flexibele servers is een volledig beheerde service die gedetailleerde controle en flexibiliteit biedt voor databasebeheerfuncties en configuratie-instellingen. In dit scenario slaat Azure Database for MySQL WordPress-gegevens op.

Alternatieven

In plaats van de Azure Cache voor Redis beheerde service te gebruiken, kunt u een zelf-hostende pod binnen een VM als cache gebruiken.

Scenariodetails

Dit voorbeeldscenario is geschikt voor grote, opslagintensieve installaties van WordPress. Dit implementatiemodel kan worden geschaald om te voldoen aan pieken in het verkeer naar de site.

Potentiële gebruikscases

  • Blogs met veel verkeer die WordPress gebruiken als inhoudsbeheersysteem
  • Zakelijke of e-commercewebsites die gebruikmaken van WordPress

Overwegingen

Deze overwegingen implementeren de pijlers van het Azure Well-Architected Framework, een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten doet. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.

Houd rekening met de volgende aanbevelingen wanneer u deze oplossing implementeert:

  • De oplossing maakt gebruik van Virtual Machine Scale Sets en een load balancer om inkomend verkeer te distribueren. Deze benadering biedt hoge beschikbaarheid, zelfs als een VM uitvalt.
  • Deze oplossing ondersteunt meerdere regio's, gegevensreplicatie en automatisch schalen. De netwerkonderdelen distribueren het verkeer naar de VM's. Statustests worden gebruikt zodat verkeer alleen wordt gedistribueerd naar vm's met een goede status.
  • Alle netwerkonderdelen worden fronted door Azure Front Door. Deze aanpak maakt de netwerkresources en de toepassing bestand tegen problemen die anders het verkeer zouden verstoren en van invloed zijn op de toegang van eindgebruikers.
  • Azure Front Door is een wereldwijde service die ondersteuning biedt voor virtuele-machineschaalsets die zijn geïmplementeerd in een andere regio.
  • Wanneer u Azure Front Door gebruikt om alle reacties in de cache op te cachen, profiteert u van een klein beschikbaarheidsvoordeel. Met name wanneer de oorsprong niet reageert, hebt u nog steeds toegang tot inhoud. Caching biedt echter geen volledige beschikbaarheidsoplossing.
  • Repliceer Azure NetApp Files opslag tussen gekoppelde regio's om de beschikbaarheid te verhogen. Zie Replicatie tussen regio's met Azure NetApp Files voor meer informatie.
  • Als u Azure Database for MySQL beschikbaarheid wilt verhogen, volgt u de opties voor hoge beschikbaarheid die aan uw behoeften voldoen.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

Houd rekening met de volgende aanbevelingen wanneer u deze oplossing implementeert:

  • Gebruik Web Application Firewall in Azure Front Door om het verkeer van het virtuele netwerk te beveiligen dat naar de front-endtoepassingslaag stroomt. Zie Azure Web Application Firewall op Azure Front Door voor meer informatie.
  • Sta uitgaand internetverkeer niet toe vanuit de databaselaag.
  • Openbare toegang tot privéopslag niet toestaan.
  • Schakel waar van toepassing openbare toegang tot resources uit. Gebruik privé-eindpunten voor Azure Database for MySQL, Azure Cache voor Redis en Key Vault.

Zie Algemene tips voor beveiliging en prestaties van WordPress endocumentatie voor Azure-beveiliging voor meer informatie over WordPress-beveiliging.

Kostenoptimalisatie

Kostenoptimalisatie gaat over het zoeken naar manieren om onnodige kosten te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

Bekijk de volgende kostenoverwegingen wanneer u deze oplossing implementeert:

  • Verwachte verkeer (GB/maand). Uw verkeersvolume is de factor die het grootste effect heeft op uw kosten. De hoeveelheid verkeer die u ontvangt, bepaalt het aantal VM's dat u nodig hebt en de prijs voor uitgaande gegevensoverdracht. Het verkeersvolume komt ook rechtstreeks overeen met de hoeveelheid gegevens die wordt geleverd door uw netwerk voor inhoudslevering, waarbij de kosten voor uitgaande gegevensoverdracht goedkoper zijn.
  • Hoeveelheid gehoste gegevens. Het is belangrijk om rekening te houden met de hoeveelheid gegevens die u host, omdat Azure NetApp Files prijzen zijn gebaseerd op gereserveerde capaciteit. Als u de kosten wilt optimaliseren, reserveert u de minimale capaciteit die u nodig hebt voor uw gegevens.
  • Schrijfpercentage. Houd rekening met de hoeveelheid nieuwe gegevens die u naar uw website schrijft en de kosten voor het opslaan ervan. Voor implementaties in meerdere regio's komt de hoeveelheid nieuwe gegevens die u naar uw website schrijft overeen met de hoeveelheid gegevens die in uw regio's wordt gespiegeld.
  • Statische versus dynamische inhoud. Bewaak de prestaties en capaciteit van uw databaseopslag om te bepalen of een goedkopere SKU uw site kan ondersteunen. De database slaat dynamische inhoud op en het netwerk voor inhoudslevering slaat statische inhoud in de cache op.
  • VM-optimalisatie. Volg de algemene tips voor VM's om de vm-kosten te optimaliseren. Zie Tips voor kostenoptimalisatie voor meer informatie.

Prestatie-efficiëntie

Prestatie-efficiëntie is de mogelijkheid om op efficiënte wijze uw werkbelasting te schalen om te voldoen aan de vereisten die gebruikers eraan stellen. Zie Overzicht van prestatie-efficiëntiepijler voor meer informatie.

In dit scenario wordt Virtual Machine Scale Sets gebruikt voor de twee front-end webserverclusters in elke regio. Met schaalsets kan het aantal VM-exemplaren waarop de front-endtoepassingslaag wordt uitgevoerd, automatisch worden geschaald als reactie op de vraag van de klant. De VM's kunnen ook worden geschaald op basis van een gedefinieerd schema. Zie Overzicht van automatische schaalaanpassing met Virtual Machine Scale Sets voor meer informatie.

Belangrijk

Voor de beste prestaties is het essentieel om opslag te koppelen via NFS-protocolversie 4.1. In het volgende bash-voorbeeld voor Ubuntu ziet u hoe u de vers optie configureert:

# 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

Medewerkers

Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.

Hoofdauteur:

Andere inzenders:

  • Adrian Calinescu | Senior Cloud Solution Architect

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Productdocumentatie:

Microsoft-trainingsmodules: