WordPress nelle macchine virtuali

Frontdoor di Azure
Insieme di credenziali chiave di Azure
Azure Load Balancer
Rete virtuale di Azure
Set di scalabilità delle macchine virtuali di Azure

Questo articolo descrive una soluzione per ospitare un'installazione con elevato utilizzo di archiviazione di WordPress in Azure. La soluzione ottimizza la scalabilità e la sicurezza. I componenti della soluzione chiave includono Frontdoor di Azure, Azure Macchine virtuali e Azure NetApp Files.

Architettura

Diagramma dell'architettura di una distribuzione wordPress in Azure set di scalabilità di macchine virtuali. Azure NetApp Files archivia contenuto statico.

Scaricare un file di Visio di questa architettura.

Nota

È possibile estendere questa soluzione implementando suggerimenti e consigli che non sono specifici di alcun metodo di hosting WordPress specifico. Per suggerimenti generali per la 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 Azure Web application firewall abilitato.
  • Frontdoor di Azure usa un'istanza interna di Azure Load Balancer come origine. Frontdoor di Azure recupera tutti i dati che non vengono 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.
  • Tutti i contenuti statici sono ospitati in Azure NetApp Files e montati 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 offre in modo efficiente contenuti Web agli utenti. Le reti di distribuzione dei 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à di mitigazione DDoS avanzate. Quando si combinano queste funzionalità con le procedure consigliate per la progettazione dell'applicazione, consentono di difendersi dagli attacchi DDoS. È necessario 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 di origine o di destinazione, alla porta e al protocollo. In questo scenario le subnet del gruppo di sicurezza di rete limitano il flusso di 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 User Datagram Protocol (UDP). In questo scenario, un servizio di bilanciamento del carico distribuisce il traffico dalla rete di distribuzione del contenuto ai server Web front-end.
  • set di scalabilità di macchine virtuali consente di creare e gestire un gruppo di macchine virtuali con carico bilanciato identico. 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 sensibile alle prestazioni completamente gestita e a latenza. In questa soluzione, Azure NetApp Files ospita tutti i contenuti 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 alle password, ai certificati e alle 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 flessibile del server è un servizio completamente gestito che offre un controllo granulare e flessibilità sulle funzioni di gestione del database e sulle impostazioni di configurazione. In questo scenario, Database di Azure per MySQL archivia i dati di WordPress.

Alternativi

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 con utilizzo elevato di archiviazione di WordPress. Questo modello di distribuzione può essere ridimensionato per soddisfare i picchi di traffico nel sito.

Potenziali casi d'uso

  • Blog ad alto traffico che usano WordPress come sistema di gestione dei contenuti
  • Siti Web business o e-commerce che usano WordPress

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di set di guide 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 di affidabilità.

Prendere in considerazione i consigli seguenti quando si distribuisce questa soluzione:

  • 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 se una macchina virtuale ha esito negativo.
  • 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 vengono front-end di Azure Frontdoor. Questo approccio rende le risorse di rete e l'applicazione resilienti ai problemi che altrimenti interrompono 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 piccolo vantaggio di disponibilità. In particolare, quando l'origine non risponde, è comunque possibile accedere al contenuto. Tuttavia, la memorizzazione nella cache non fornisce una soluzione di disponibilità completa.
  • Per aumentare la disponibilità, replicare Azure NetApp Files archiviazione tra aree associate. Per altre informazioni, vedere Replica tra aree con Azure NetApp Files.
  • Per aumentare la disponibilità Database di Azure per MySQL, seguire le opzioni di disponibilità elevata che soddisfano le esigenze.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso dei dati e dei sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

Prendere in considerazione i consigli seguenti quando si distribuisce questa soluzione:

  • Usare Web application firewall in Frontdoor di Azure per proteggere il traffico di rete virtuale che passa al livello dell'applicazione front-end. Per altre informazioni, vedere Azure Web application firewall in Frontdoor di Azure.
  • 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 sulla 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.

Esaminare le considerazioni sui costi seguenti quando si distribuisce questa soluzione:

  • Aspettative del traffico (GB/mese). Il volume del traffico è il fattore che ha l'effetto maggiore 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 correla direttamente con la quantità di dati forniti dalla rete di distribuzione del contenuto, dove 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é Azure NetApp Files prezzi si basa sulla capacità riservata. Per ottimizzare i costi, riservare la capacità minima necessaria per i dati.
  • Percentuale 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 delle prestazioni

L'efficienza delle prestazioni è la capacità di ridimensionare il carico di lavoro soddisfare in modo efficiente le richieste poste dagli utenti. Per altre informazioni, vedere Panoramica 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

Autori di contributi

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai collaboratori seguenti.

Autore principale:

Altri collaboratori:

  • Adrian Calinescu | Senior Cloud Solution Architect

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Documentazione sui prodotti:

Moduli di formazione Microsoft: