Modifier

WordPress sur des machines virtuelles

Azure Front Door
Azure Key Vault
Azure Load Balancer
Réseau virtuel Azure
Groupes de machines virtuelles identiques Azure

Cet article décrit une solution pour héberger une installation volumineuse et gourmande en stockage de WordPress sur Azure. La solution optimise la scalabilité et la sécurité. Les composants clés de la solution incluent Azure Front Door, Azure Machines Virtuelles et Azure NetApp Files.

Architecture

Diagramme d’architecture d’un déploiement WordPress sur Azure Virtual Machine Scale Sets. Azure NetApp Files stocke le contenu statique.

Téléchargez un fichier Visio de cette architecture.

Notes

Vous pouvez étendre cette solution en implémentant des conseils et des suggestions qui ne sont pas spécifiques à une méthode d’hébergement WordPress particulière. Pour obtenir des conseils généraux sur le déploiement d’une installation WordPress, consultez WordPress sur Azure.

Dataflow

  • Les utilisateurs accèdent au front-end du site web via Azure Front Door avec Azure Web Application Firewall activé.
  • Azure Front Door utilise une instance interne de Azure Load Balancer comme origine. Azure Front Door récupère toutes les données qui ne sont pas mises en cache.
  • L’équilibreur de charge interne distribue les requêtes à Azure Virtual Machine Scale Sets. Les groupes identiques se composent de serveurs web Ubuntu.
  • Les clés et autres secrets sont stockés dans Azure Key Vault.
  • L’application WordPress utilise un point de terminaison privé pour accéder à une instance de serveur flexible de Azure Database pour MySQL. L’application WordPress récupère des informations dynamiques à partir de la base de données.
  • Tout le contenu statique est hébergé dans Azure NetApp Files et monté sur les machines virtuelles via le protocole NFS.

Composants

  • Azure Front Door est un réseau de distribution de contenu cloud moderne. En tant que réseau distribué de serveurs, Azure Front Door fournit efficacement du contenu web aux utilisateurs. Les réseaux de distribution de contenu (CDN) réduisent la latence en stockant le contenu en cache sur des serveurs Edge dans des points de présence (POP) proches des utilisateurs finaux.
  • Le réseau virtuel Microsoft Azure permet aux ressources déployées de communiquer de manière sécurisée entre elles, avec Internet et sur des réseaux locaux. Les réseaux virtuels assurent l’isolation et la segmentation. Ils filtrent et acheminent également le trafic et permettent d’établir des connexions entre différents emplacements. Dans cette solution, les deux réseaux sont connectés via le peering de réseaux virtuels.
  • Azure DDoS Protection fournit des fonctionnalités d’atténuation DDoS améliorées. Lorsque vous combinez ces fonctionnalités avec les meilleures pratiques de conception d’applications, elles vous aident à vous défendre contre les attaques DDoS. Vous devez activer Azure DDoS Protection sur vos réseaux virtuels de périmètre.
  • Les groupes de sécurité réseau contiennent une liste de règles de sécurité qui autorisent ou refusent le trafic réseau entrant ou sortant en fonction de l’adresse IP source ou de destination, du port et du protocole. Dans les sous-réseaux de ce scénario, les règles de groupe de sécurité réseau limitent le flux de trafic entre les composants de l’application.
  • Azure Load Balancer distribue le trafic entrant en fonction des règles et des sondes d’intégrité. Un équilibreur de charge fournit une latence faible et un débit élevé. En répartissant le trafic sur plusieurs serveurs, un équilibreur de charge ajoute la scalabilité aux applications TCP (Transmission Control Protocol) et UDP (User Datagram Protocol). Dans ce scénario, un équilibreur de charge permet de distribuer le trafic à partir du réseau de distribution de contenu vers les serveurs web de front-end.
  • Microsoft Azure Virtual Machine Scale Sets vous permet de créer et de gérer un groupe de machines virtuelles identiques à charge équilibrée. Le nombre d’instances de machine virtuelle peut augmenter ou diminuer automatiquement en fonction d’une demande ou d’un calendrier défini. Deux groupes identiques distincts sont utilisés dans ce scénario. L’un concerne les serveurs web frontaux qui servent du contenu, et l’autre pour les serveurs web frontaux qui sont utilisés pour créer du nouveau contenu.
  • Azure NetApp Files fournit une solution de stockage entièrement managée, très performante et faible en latence. Dans cette solution, Azure NetApp Files héberge tout le contenu WordPress afin que tous les pods aient accès aux données.
  • Azure Cache pour Redis est un magasin de données en mémoire. Vous pouvez utiliser Azure Cache pour Redis pour héberger un cache clé-valeur dans cette solution. Ce cache est partagé entre tous les pods et est utilisé pour les plug-ins d’optimisation des performances WordPress.
  • Key Vault stocke et contrôle l’accès aux mots de passe, certificats numériques et clés.
  • Le serveur flexible Azure Database pour MySQL qui fournit un service de base de données relationnelle basé sur le moteur de base de données Postgres open source. L’option de déploiement d’un serveur flexible est un service entièrement géré conçu pour offrir un contrôle et une flexibilité plus précise des fonctions de gestion de base de données et des paramètres de configuration. Dans ce scénario, Azure Database pour MySQL stocke les données WordPress.

Autres solutions

Au lieu d’utiliser le service géré Azure Cache pour Redis, vous pouvez utiliser un pod auto-hébergé au sein d’une machine virtuelle comme cache.

Détails du scénario

Cet exemple de scénario convient pour les installations volumineuses et gourmandes en stockage de WordPress. Ce modèle de déploiement peut être mis à l’échelle pour répondre aux pics de trafic vers le site.

Cas d’usage potentiels

  • Les blogs à trafic élevé qui utilisent WordPress comme système de gestion de contenu
  • Sites web d’entreprise ou de e-commerce qui utilisent WordPress

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d'informations, consultez Microsoft Azure Well-Architected Framework.

Fiabilité

La fiabilité permet de s’assurer que votre application tient vos engagements auprès de vos clients. Pour plus d’informations, consultez la page Vue d’ensemble du pilier de fiabilité.

Tenez compte des suggestions suivantes lorsque vous déployez cette solution :

  • La solution utilise Virtual Machine Scale Sets et un équilibreur de charge pour distribuer le trafic d’entrée. Cette approche offre une haute disponibilité même en cas de défaillance d’une machine virtuelle.
  • Cette solution prend en charge plusieurs régions, la réplication des données et la mise à l’échelle automatique. Les composants réseau distribuent le trafic vers les machines virtuelles. Les sondes d’intégrité sont utilisées pour que le trafic soit distribué uniquement aux machines virtuelles saines.
  • Tous les composants réseau sont pris en charge par Azure Front Door. De cette façon, les ressources réseau et l’application sont résilientes aux problèmes qui autrement perturberaient le trafic et affecteraient l’accès de l’utilisateur final.
  • Azure Front Door est un service global qui prend en charge les groupes de machines virtuelles identiques déployés dans une autre région.
  • Lorsque vous utilisez Azure Front Door pour mettre en cache toutes les réponses, vous bénéficiez d’un petit avantage de disponibilité. Plus précisément, lorsque l’origine ne répond pas, vous pouvez toujours accéder au contenu. Toutefois, la mise en cache ne fournit pas de solution de disponibilité complète.
  • Pour augmenter la disponibilité, répliquez le stockage Azure NetApp Files entre les régions jumelées. Pour plus d’informations, consultez Réplication inter-régions avec Azure NetApp Files.
  • Pour augmenter la disponibilité Azure Database pour MySQL, suivez les options de haute disponibilité qui répondent à vos besoins.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Tenez compte des suggestions suivantes lorsque vous déployez cette solution :

  • Utilisez Web Application Firewall sur Azure Front Door pour protéger le trafic de réseau virtuel qui transite dans la couche front-end de l’application. Pour plus d’informations, consultez Azure Web Application Firewall sur Azure Front Door.
  • N’autorisez pas le trafic Internet sortant à circuler à partir du niveau base de données.
  • N’autorisez pas l’accès public au stockage privé.
  • Désactivez l’accès public aux ressources, le cas échéant. Utilisez des points de terminaison privés pour Azure Database pour MySQL, Azure Cache pour Redis et Key Vault.

Pour plus d’informations sur la sécurité WordPress, consultez les Conseils généraux en matière de sécurité et de performances WordPress et la documentation sur la sécurité Azure.

Optimisation des coûts

L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

Passez en revue les considérations de coût suivantes lorsque vous déployez cette solution :

  • Attentes de trafic (Go/mois). Votre volume de trafic est le facteur qui a le plus d’impact sur votre coût. La quantité de trafic que vous recevez détermine le nombre de machines virtuelles dont vous avez besoin et le prix du transfert de données sortantes. Le volume de trafic est également directement corrélé à la quantité de données fournie par votre réseau de distribution de contenu, où les coûts de transfert de données sortants sont moins chers.
  • Quantité de données hébergées. Il est important de tenir compte de la quantité de données que vous hébergez, car le prix d’Azure NetApp Files est basé sur la capacité réservée. Pour optimiser les coûts, réservez la capacité minimale dont vous avez besoin pour vos données.
  • Pourcentage d’écriture. Tenez compte de la quantité de nouvelles données que vous écrivez sur votre site web et du coût de leur stockage. Pour les déploiements multi-régions, la quantité de nouvelles données que vous écrivez sur votre site web est corrélée à la quantité de données mises en miroir dans vos régions.
  • Contenu statique et contenu dynamique. Surveillez les performances et la capacité de stockage de votre base de données pour déterminer si une référence SKU moins chère peut prendre en charge votre site. La base de données stocke le contenu dynamique et le réseau de distribution de contenu met en cache le contenu statique.
  • Optimisation de la machine virtuelle. Pour optimiser les coûts des machines virtuelles, suivez les conseils généraux pour les machines virtuelles. Pour plus d’informations, consultez Conseils d’optimisation des coûts.

Efficacité des performances

L’efficacité des performances est la capacité de votre charge de travail à s’adapter à la demande des utilisateurs de façon efficace. Pour plus d’informations, consultez Vue d’ensemble du pilier d’efficacité des performances.

Ce scénario utilise des groupes de machines virtuelles identiques pour les deux clusters de serveurs web front-end dans chaque région. Avec des groupes identiques, le nombre d’instances de machine virtuelle qui s’exécutent au niveau de la couche d’application de front-end peut être automatiquement mis à l’échelle selon la demande du client. Les machines virtuelles peuvent également être mises à l’échelle en fonction d’une planification définie. Pour plus d’informations, consultez Vue d’ensemble de la mise à l’échelle automatique avec des groupes de machines virtuelles identiques.

Important

Pour de meilleures performances, il est essentiel de monter le stockage via le protocole NFS version 4.1. L’exemple bash suivant pour Ubuntu vous montre comment configurer l’option 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

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Autres contributeurs :

  • Adrian Calinescu | Architecte de solution cloud senior

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Documentation du produit :

Modules de formation Microsoft :