Déployez WordPress avec MySQL Database Service sur Oracle Cloud Infrastructure Kubernetes Engine
Profitez de la flexibilité et des avantages financiers de l'hébergement de vos pages Web et blogs WordPress sur Oracle Cloud Infrastructure (OCI).
- Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) pour fournir un déploiement Wordpress hautement évolutif et disponible sans avoir à déployer ou gérer un cluster Kubernetes.
- MySQL Database Service afin de fournir une base de données hautes performances pour votre application WordPress sans avoir à provisionner ni à gérer la base de données.
- Service File Storage pour le stockage de persistance partagée (requis par WordPress) accessible à toutes les instances de l'application afin de le rendre hautement disponible.
Architecture
Cette architecture de référence présente un déploiement WordPress hautement disponible et évolutif dans un cluster OKE. Ce déploiement utilise le service File Storage en tant que stockage persistant et MySQL Database Service en tant que base de données. Un équilibreur de charge avec une adresse IP externe est alloué pour fournir l'accès à l'application WordPress.
Le schéma suivant illustre cette architecture de référence.

Description de l'image oci-mysql-oke-wordpress-arch.png
oci-mysql-oke-wordpress-arch-oracle.zip
La section suivante décrit cette architecture de référence :
Dans le cluster OKE, vous pouvez sélectionner le nombre de pods d'application WordPress pour le déploiement. Chaque pod nécessite un accès au stockage partagé persistant. Pour fournir le stockage, une ressource de classe de stockage mise en correspondance avec un partage NFS sur File Storage est créée dans le cluster. Une ressource de volume persistant rend alors le stockage offert par la classe de stockage utilisable par les ressources au sein du cluster. Une ressource de récupération de volume persistant (PVC) est créée pour indiquer que les pods veulent utiliser le stockage. La demande de volume persistant est mise en correspondance dans les pods d'application WordPress pour accéder au stockage.
La base de données de l'application WordPress utilise MySQL Database Service. L'instance MySQL Database Service est créée et gérée à partir du cluster OKE en tant que ressource personnalisée définie avec l'opérateur de service OCI pour Kubernetes (OSOK).
MySQL Database Service est déployé avec la haute disponibilité (HA) à l'aide de trois instances MySQL Database Service déployées sur différents domaines de disponibilité ou domaines de pannes. L'application WordPress se connecte à une seule adresse pour lire et écrire dans la base de données. En cas de panne, le système de base de données bascule automatiquement vers une instance secondaire sans reconfiguration de l'application WordPress.
Un équilibreur de charge est créé et géré à partir du cluster OKE en tant que ressource de service avec le type LoadBalancer.
L'architecture comprend les composants suivants :
- Région
Une région Oracle Cloud Infrastructure est une zone géographique précise, incluant un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (entre pays, voire continents).
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Par conséquent, une panne sur un domaine de disponibilité ne doit pas affecter les autres domaines de disponibilité de la région.
- Domaines de pannes
Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec du matériel et une alimentation indépendants. Lorsque vous répartissez les ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.
- Réseau cloud virtuel (VCN) et sous-réseaux
Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centre de données traditionnels, les réseaux cloud virtuels vous donnent le contrôle sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes Engine ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications en conteneur vers le cloud. Indiquez les ressources de calcul requises par vos applications et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, le redimensionnement et la gestion des applications en conteneur dans les clusters d'hôtes.
- Oracle MySQL Database Service
Oracle MySQL Database Service est un service de base de données Oracle Cloud Infrastructure (OCI) entièrement géré qui permet aux développeurs de développer et de déployer rapidement des applications sécurisées natives du cloud. Optimisé pour et exclusivement disponible dans OCI, Oracle MySQL Database Service est conçu, géré et pris en charge à 100 % par les équipes d'ingénierie OCI et MySQL.
Oracle MySQL Database Service dispose d'un moteur d'analyse intégré hautes performances (HeatWave) qui permet d'exécuter des analyses sophistiquées en temps réel directement sur une base de données MySQL opérationnelle.
- File Storage
Le service Oracle Cloud Infrastructure File Storage offre un système de fichiers réseau durable, évolutif, sécurisé et adapté à l'entreprise. Vous pouvez vous connecter à un système de fichiers de service File Storage à partir de n'importe quelle instance Bare Metal, de machine virtuelle ou de conteneur dans un VCN. Vous pouvez également accéder à un système de fichiers à partir de l'extérieur du VCN à l'aide d'Oracle Cloud Infrastructure FastConnect et du VPN IPSec.
- WordPress système de gestion de contenu (CMS)
WordPress CMS vous permet de créer un site de blog entièrement fonctionnel ou un site Web à usage général.
- Passerelle NAT (Network Address Translation)
Une passerelle NAT permet aux ressources privées d'un VCN d'accéder aux hôtes sur Internet, sans les exposer aux connexions Internet entrantes.
- Passerelle de service
La passerelle de service fournit un accès à partir d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic entre le VCN et le service Oracle passe par la structure du réseau Oracle et ne traverse pas Internet.
- Registry
Oracle Cloud Infrastructure Registry est un registre géré par Oracle qui vous permet de simplifier votre workflow du développement jusqu'à la production. Le registre vous permet de stocker, de partager et de gérer facilement des artefacts de développement, tels que des images Docker. L'architecture hautement disponible et évolutive d'Oracle Cloud Infrastructure vous garantit un déploiement et une gestion fiables des applications.
- Equilibreur de charge
Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatique à partir d'un seul point d'entrée vers plusieurs serveurs dans le back-end.
- Table de routage
Les tables de routage virtuelles contiennent des règles pour acheminer le trafic des sous-réseaux vers des destinations en dehors d'un VCN, généralement via des passerelles.
- Liste de sécurité
Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui indiquent la source, la destination et le type de trafic qui doivent être autorisés à entrer et à sortir du sous-réseau.
Recommandations
- VCN
Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher à des sous-réseaux dans le VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresse IP privée standard.
Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) auquel vous avez l'intention de configurer des connexions privées.
Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.
Lorsque vous concevez les sous-réseaux, tenez compte du flux de trafic et des exigences de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.
- Bande passante d'équilibreur de charge
Lors de la création de l'équilibreur de charge, vous pouvez sélectionner une forme prédéfinie qui fournit une bande passante fixe ou indiquer une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laisser le service redimensionner automatiquement la bande passante en fonction des modèles de trafic. Dans l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.
- Listes de sécurité
Utilisez des listes de sécurité pour définir des règles entrantes et sortantes qui s'appliquent à l'ensemble du sous-réseau.
- Oracle MySQL Database Service
Dans cette architecture, le CMS WordPress stocke les données relationnelles dans Oracle MySQL Database Service. Nous vous recommandons d'utiliser la dernière version.
Points à prendre en compte
Lors du déploiement de WordPress dans Oracle Cloud, tenez compte des éléments suivants pour l'évolutivité et la disponibilité :
- Disponibilité de l'application
L'application WordPress est déployée avec plusieurs pods dans le déploiement pour fournir une haute disponibilité.
- Disponibilité et évolutivité de My SQL Database Service
MySQL Database Service affiché dans l'architecture hautement disponible utilise l'option de haute disponibilité MySQL intégrée, qui crée trois instances et les place dans différents domaines de pannes.
Déployez
Cette architecture de référence peut être déployée et gérée à partir du cluster OKE sans utiliser la console ou l'interface de ligne de commande OCI et automatisée avec un graphique Helm. L'exemple de graphique Helm pour cette architecture de référence montre comment initialiser un déploiement WordPress à l'aide d'un système MySQL Database en tant que base de données dans un cluster Kubernetes déployé dans OCI pour la haute disponibilité ou hors haute disponibilité. Vous pouvez télécharger le code à partir de GitHub et le personnaliser en fonction de vos besoins spécifiques.
- Accédez à GitHub - HA ou GitHub - non-HA.
- Clonez ou téléchargez le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.
En savoir plus
Consultez ces ressources supplémentaires pour en savoir plus sur les fonctionnalités de cette architecture :
- Structure des meilleures pratiques pour Oracle Cloud Infrastructure
- Configuration de WordPress avec MySQL Database et Matomo Analytics à l'aide des ressources Ampere A1 Compute reposant sur Arm
- Configuration d'un système de gestion de contenu WordPress connecté à une base de données MySQL dans le cloud