Questo articolo descrive una soluzione per l'hosting di un'installazione a elevato utilizzo di archiviazione di WordPress in Azure. La soluzione ottimizza la scalabilità e la sicurezza. I componenti principali della soluzione includono Frontdoor di Azure, Azure Macchine virtuali e Azure NetApp Files.
Architettura
Scaricare un file di Visio di questa architettura.
Nota
È possibile estendere questa soluzione implementando suggerimenti e raccomandazioni che non sono specifici di alcun metodo di hosting WordPress specifico. Per suggerimenti generali sulla distribuzione di un'installazione di WordPress, vedere WordPress in Azure.
Flusso di dati
- Gli utenti accedono al sito Web front-end tramite Frontdoor di Azure con Web application firewall di Azure abilitato.
- Frontdoor di Azure usa un'istanza interna di Azure Load Balancer come origine. Frontdoor di Azure recupera tutti i dati non memorizzati nella cache.
- Il servizio di bilanciamento del carico interno distribuisce le richieste ad Azure set di scalabilità di macchine virtuali. I set di scalabilità sono costituiti da server Web Ubuntu.
- Le chiavi e altri segreti vengono archiviati in Azure Key Vault.
- L'applicazione WordPress usa un endpoint privato per accedere a un'istanza flessibile del server di Database di Azure per MySQL. L'applicazione WordPress recupera informazioni dinamiche dal database.
- Tutto il contenuto statico è ospitato in Azure NetApp Files e montato nelle macchine virtuali tramite il protocollo NFS.
Componenti
- Frontdoor di Azure è una rete di distribuzione di contenuti cloud moderna. Come rete distribuita di server, Frontdoor di Azure distribuisce in modo efficiente contenuti Web agli utenti. Le reti per la distribuzione di contenuti riducono al minimo la latenza archiviando contenuto memorizzato nella cache nei server perimetrali in posizioni di presenza vicino agli utenti finali.
- Azure Rete virtuale consente alle risorse distribuite di comunicare tra loro, Internet e reti locali. Le reti virtuali forniscono isolamento e segmentazione. Filtrano e instradano anche il traffico e consentono di stabilire connessioni tra diverse posizioni. In questa soluzione, le due reti sono connesse tramite peering di rete virtuale.
- Protezione DDoS di Azure offre funzionalità avanzate di mitigazione DDoS. Quando si combinano queste funzionalità con le procedure consigliate per la progettazione di applicazioni, consentono di difendersi dagli attacchi DDoS. È consigliabile abilitare Protezione DDoS nelle reti virtuali perimetrali.
- I gruppi di sicurezza di rete usano un elenco di regole di sicurezza per consentire o negare il traffico di rete in ingresso o in uscita in base all'indirizzo IP, alla porta e al protocollo di origine o di destinazione. In questo scenario le regole del gruppo di sicurezza di rete limitano il flusso del traffico tra i componenti dell'applicazione.
- Load Balancer distribuisce il traffico in ingresso in base alle regole e ai risultati del probe di integrità. Un servizio di bilanciamento del carico offre bassa latenza e velocità effettiva elevata. Distribuendo il traffico tra più server, un servizio di bilanciamento del carico aggiunge scalabilità alle applicazioni TCP (Transmission Control Protocol) e UDP (User Datagram Protocol). In questo scenario, un servizio di bilanciamento del carico distribuisce il traffico dalla rete per la distribuzione di contenuti ai server Web front-end.
- set di scalabilità di macchine virtuali consente di creare e gestire un gruppo di macchine virtuali identiche con carico bilanciato. Il numero di istanze di macchine virtuali può aumentare o diminuire automaticamente in risposta alla domanda o a una pianificazione definita. In questo scenario vengono usati due set di scalabilità separati. Uno è per i server Web front-end che gestiscono il contenuto e uno è per i server Web front-end usati per creare nuovo contenuto.
- Azure NetApp Files offre una soluzione di archiviazione con utilizzo intensivo di prestazioni e latenza completamente gestita. In questa soluzione, Azure NetApp Files ospita tutto il contenuto di WordPress in modo che tutti i pod abbiano accesso ai dati.
- cache di Azure per Redis è un archivio dati in memoria. È possibile usare cache di Azure per Redis per ospitare una cache chiave-valore in questa soluzione. Tale cache viene condivisa tra tutti i pod e viene usata per i plug-in di ottimizzazione delle prestazioni di WordPress.
- Key Vault archivia e controlla l'accesso a password, certificati e chiavi.
- Database di Azure per MySQL: il server flessibile è un servizio di database relazionale basato sul motore di database MySQL open source. L'opzione di distribuzione server flessibile è un servizio completamente gestito che offre un controllo granulare e flessibilità rispetto alle funzioni di gestione del database e alle impostazioni di configurazione. In questo scenario, Database di Azure per MySQL archivia i dati wordPress.
Alternative
Anziché usare il servizio gestito cache di Azure per Redis, è possibile usare un pod self-hosted all'interno di una macchina virtuale come cache.
Dettagli dello scenario
Questo scenario di esempio è appropriato per installazioni di wordPress a elevato utilizzo di archiviazione. Questo modello di distribuzione può essere ridimensionato per soddisfare i picchi di traffico verso il sito.
Potenziali casi d'uso
- Blog ad alto traffico che usano WordPress come sistema di gestione dei contenuti
- Siti Web aziendali o di e-commerce che usano WordPress
Considerazioni
Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.
Affidabilità
L'affidabilità garantisce che l'applicazione possa soddisfare gli impegni che l'utente ha preso con i clienti. Per altre informazioni, vedere Panoramica del pilastro dell'affidabilità.
Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:
- La soluzione usa set di scalabilità di macchine virtuali e un servizio di bilanciamento del carico per distribuire il traffico in ingresso. Questo approccio offre disponibilità elevata anche in caso di errore di una macchina virtuale.
- Questa soluzione supporta più aree, replica dei dati e scalabilità automatica. I componenti di rete distribuiscono il traffico alle macchine virtuali. I probe di integrità vengono usati in modo che il traffico venga distribuito solo alle macchine virtuali integre.
- Tutti i componenti di rete sono frontdoor di Azure. Questo approccio rende le risorse di rete e l'applicazione resilienti ai problemi che altrimenti compromettono il traffico e influiscono sull'accesso degli utenti finali.
- Frontdoor di Azure è un servizio globale che supporta i set di scalabilità di macchine virtuali distribuiti in un'altra area.
- Quando si usa Frontdoor di Azure per memorizzare nella cache tutte le risposte, si ottiene un vantaggio di disponibilità ridotto. In particolare, quando l'origine non risponde, è comunque possibile accedere al contenuto. Tuttavia, la memorizzazione nella cache non offre una soluzione di disponibilità completa.
- Per aumentare la disponibilità, replicare l'archiviazione di Azure NetApp Files tra aree abbinate. Per altre informazioni, vedere Replica tra aree con Azure NetApp Files.
- Per aumentare Database di Azure per MySQL disponibilità, seguire le opzioni di disponibilità elevata che soddisfano le proprie esigenze.
Sicurezza
La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.
Quando si distribuisce questa soluzione, prendere in considerazione i consigli seguenti:
- Usare Web Application Firewall in Frontdoor di Azure per proteggere il traffico di rete virtuale che passa al livello applicazione front-end. Per altre informazioni, vedere Firewall per applicazioni Web di Azure su Azure Front Door.
- Non consentire il flusso del traffico Internet in uscita dal livello di database.
- Non consentire l'accesso pubblico all'archiviazione privata.
- Disabilitare l'accesso pubblico alle risorse, se applicabile. Usare endpoint privati per Database di Azure per MySQL, cache di Azure per Redis e Key Vault.
Per altre informazioni sulla sicurezza di WordPress, vedere Suggerimenti generali sulla sicurezza e sulle prestazioni di WordPress e documentazione sulla sicurezza di Azure.
Ottimizzazione dei costi
L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.
Quando si distribuisce questa soluzione, esaminare le considerazioni sui costi seguenti:
- Aspettative del traffico (GB/mese). Il volume di traffico è il fattore che ha il massimo effetto sul costo. La quantità di traffico ricevuta determina il numero di macchine virtuali necessarie e il prezzo per il trasferimento dei dati in uscita. Il volume di traffico è correlato direttamente anche alla quantità di dati forniti dalla rete per la distribuzione di contenuti, in cui i costi di trasferimento dei dati in uscita sono più economici.
- Quantità di dati ospitati. È importante considerare la quantità di dati che si ospitano, perché i prezzi di Azure NetApp Files si basano sulla capacità riservata. Per ottimizzare i costi, riservare la capacità minima necessaria per i dati.
- Percentuale di scrittura. Valutare la quantità di nuovi dati scritti nel sito Web e il costo per l'archiviazione. Per le distribuzioni in più aree, la quantità di nuovi dati scritti nel sito Web è correlata alla quantità di dati con mirroring tra le aree.
- Contenuto statico e dinamico. Monitorare le prestazioni e la capacità di archiviazione del database per determinare se uno SKU più economico può supportare il sito. Il database archivia il contenuto dinamico e la rete per la distribuzione di contenuti memorizza nella cache il contenuto statico.
- Ottimizzazione della macchina virtuale. Per ottimizzare i costi delle macchine virtuali, seguire i suggerimenti generali per le macchine virtuali. Per altre informazioni, vedere Suggerimenti per l'ottimizzazione dei costi.
Efficienza prestazionale
L'efficienza delle prestazioni è la capacità di dimensionare il carico di lavoro per soddisfare in modo efficiente le richieste poste dagli utenti. Per altre informazioni, vedere Panoramica del pilastro dell'efficienza delle prestazioni.
Questo scenario usa set di scalabilità di macchine virtuali per i due cluster server Web front-end in ogni area. Con i set di scalabilità, il numero di istanze di macchine virtuali che eseguono il livello applicazione front-end può essere ridimensionato automaticamente in risposta alla domanda dei clienti. Le macchine virtuali possono anche essere ridimensionate in base a una pianificazione definita. Per altre informazioni, vedere Panoramica della scalabilità automatica con set di scalabilità di macchine virtuali.
Importante
Per ottenere prestazioni ottimali, è essenziale montare l'archiviazione tramite il protocollo NFS versione 4.1. L'esempio bash seguente per Ubuntu illustra come configurare l'opzione vers
:
# 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
Collaboratori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.
Autore principale:
- Vaclav Jirovsky | Cloud Solution Architect
Altri contributori:
- Adrian Calinescu | Senior Cloud Solution Architect
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.
Passaggi successivi
Documentazione sui prodotti:
- Che cos'è Frontdoor di Azure?
- Che cos'è Web application firewall di Azure?
- Informazioni su Azure NetApp Files
- Creare un volume NFS per Azure NetApp Files
- Informazioni sui set di scalabilità di macchine virtuali
- Database di Azure per MySQL - Server flessibile
- Informazioni su Azure Load Balancer
- Che cos'è Rete virtuale di Azure?
- Informazioni su Azure Key Vault
- Che cos'è la Protezione DDoS di Azure?
Moduli di formazione Microsoft:
- Creare un'applicazione scalabile con set di scalabilità di macchine virtuali
- Introduzione ad Azure NetApp Files
- Bilanciare il carico del traffico del servizio Web con Frontdoor
- Implementare Azure Key Vault
- Introduzione alla rete virtuale di Azure