In dit artikel wordt een oplossing beschreven voor het hosten van een grote, opslagintensieve installatie van WordPress in Azure. De oplossing maximaliseert schaalbaarheid en beveiliging. Belangrijke oplossingsonderdelen zijn Onder andere Azure Front Door, Azure Virtual Machines en Azure NetApp Files.
Architectuur
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 in 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 maakt gebruik van een intern exemplaar van Azure Load Balancer als de oorsprong. Azure Front Door haalt 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 exemplaar van een flexibele server 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 cloudinhoudlevering. Als gedistribueerd netwerk van servers levert Azure Front Door efficiënt webinhoud aan gebruikers. Netwerken voor inhoudslevering minimaliseren de latentie door inhoud in de cache op te slaan op edge-servers in locaties met een punt-of-aanwezigheid bij eindgebruikers.
- Azure Virtual Network biedt een manier voor geïmplementeerde resources om met elkaar, internet en on-premises netwerken te 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 zijn 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 het ontwerpen van toepassingen, helpen ze om bescherming te bieden tegen DDoS-aanvallen. Schakel DDoS Protection in op 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 netwerkbeveiligingsgroepsregels de verkeersstroom tussen de toepassingsonderdelen.
- Load Balancer distribueert 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-toepassingen (Transmission Control Protocol) en UDP-toepassingen (User Datagram Protocol). In dit scenario distribueert een load balancer verkeer van het netwerk voor contentlevering naar de front-endwebservers.
- Virtuele-machineschaalsets bieden 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. Een daarvan 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 oplossing voor prestatie-intensieve en latentiegevoelige opslag. 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 tussen 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 VIRTUELE machine gebruiken als de cache.
Scenariodetails
Dit voorbeeldscenario is geschikt voor grote, opslagintensieve installaties van WordPress. Dit implementatiemodel kan worden geschaald om pieken in het verkeer naar de site te ontmoeten.
Potentiële gebruikscases
- Blogs met veel verkeer die WordPress gebruiken als hun inhoudsbeheersysteem
- Zakelijke of e-commercewebsites die Gebruikmaken van WordPress
Overwegingen
Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is 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 hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.
Houd rekening met de volgende aanbevelingen wanneer u deze oplossing implementeert:
- De oplossing maakt gebruik van Virtuele-machineschaalsets en een load balancer om inkomend verkeer te distribueren. Deze benadering biedt hoge beschikbaarheid, zelfs als een VIRTUELE machine mislukt.
- Deze oplossing ondersteunt meerdere regio's, gegevensreplicatie en automatisch schalen. De netwerkonderdelen distribueren verkeer naar de VM's. Statustests worden gebruikt, zodat verkeer alleen wordt gedistribueerd naar vm's die in orde zijn.
- Alle netwerkonderdelen worden fronted door Azure Front Door. Deze aanpak maakt de netwerkresources en toepassing bestand tegen problemen die anders het verkeer zouden verstoren en de toegang van eindgebruikers zouden beïnvloeden.
- Azure Front Door is een wereldwijde service die ondersteuning biedt voor virtuele-machineschaalsets die in een andere regio worden geïmplementeerd.
- Wanneer u Azure Front Door gebruikt om alle antwoorden in de cache op te cachen, profiteert u van een klein beschikbaarheidsvoordeel. Als 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 vergroten. Zie Replicatie tussen regio's met Azure NetApp Files voor meer informatie.
- Als u de beschikbaarheid van Azure Database for MySQL 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 dat naar de front-endtoepassingslaag stroomt te beveiligen. Zie Azure Web Application Firewall in Azure Front Door voor meer informatie.
- Sta uitgaand internetverkeer niet toe vanuit de databaselaag.
- Openbare toegang tot privéopslag is niet toegestaan.
- Schakel, indien 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 en documentatie over Azure-beveiliging voor meer informatie over WordPress-beveiliging.
Kostenoptimalisatie
Kostenoptimalisatie gaat over manieren om onnodige uitgaven 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:
- Verwachtingen voor verkeer (GB/maand). Uw verkeersvolume is de factor die het grootste effect heeft op uw kosten. De hoeveelheid verkeer dat u ontvangt, bepaalt het aantal virtuele machines dat u nodig hebt en de prijs voor uitgaande gegevensoverdracht. Het verkeersvolume correleert ook rechtstreeks met de hoeveelheid gegevens die wordt geleverd door uw netwerk voor contentlevering, 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 de prijzen van Azure NetApp Files zijn gebaseerd op gereserveerde capaciteit. Als u de kosten wilt optimaliseren, reserveert u de minimale capaciteit die u nodig hebt voor uw gegevens.
- Schrijfpercentage. Bedenk hoeveel nieuwe gegevens 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 contentlevering slaat statische inhoud in de cache op.
- VM-optimalisatie. Volg algemene tips voor VM's om de kosten van vm's 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 de pijler Prestatie-efficiëntie voor meer informatie.
In dit scenario worden virtuele-machineschaalsets gebruikt voor de twee front-endwebserverclusters 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 Virtuele-machineschaalsets 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. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Hoofdauteur:
- Vaclav Jirowski | Cloud Solution Architect
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:
- Wat is Azure Front Door?
- Wat is Azure Web Application Firewall?
- Wat is Azure NetApp Files?
- Een NFS-volume maken voor Azure NetApp Files
- Wat zijn virtuele-machineschaalsets?
- Azure Database for MySQL - Flexibele server
- Wat is Azure Load Balancer?
- Wat is Azure Virtual Network?
- Info over Azure Key Vault
- Wat is Azure DDoS Protection?
Microsoft-trainingsmodules:
- Een schaalbare toepassing bouwen met Virtuele-machineschaalsets
- Kennismaking met Azure NetApp Files
- Taakverdeling voor uw webserviceverkeer met Front Door
- Azure Key Vault implementeren
- Inleiding tot Azure Virtual Network