Déployer Magento eCommerce sur Oracle Linux avec MySQL Database Service
Vous pouvez déployer Magento eCommerce sur Oracle Linux avec MySQL Database Service afin de fournir aux utilisateurs et aux entreprises une architecture évolutive et fiable, de faibles efforts d'implémentation et de maintenance et d'accéder à une vaste base de connaissances communautaire.
Magento est une plate-forme de commerce électronique open source écrite en PHP qui peut utiliser d'autres structures PHP, telles que Laminas et Symfony. Son code source est distribué sous la licence Open Software License (OSL) v3.0. Magento utilise le système de gestion de base de données relationnelle MySQL, le langage de programmation PHP et les éléments de la structure Zend. Elle applique les conventions de programmation orientée objet et d'architecture model-view-controller.
Architecture
Vous pouvez déployer Magento dans une configuration à noeud unique ou dans le cadre d'une configuration multi-noeud hautement disponible. Cette architecture de référence inclut l'automatisation Terraform, compatible avec les deux configurations.
Pour une architecture de production hautement disponible, reportez-vous au diagramme suivant, qui illustre un scénario à plusieurs noeuds.
Description de l'illustration magento-mds-multi.png
Le diagramme prédéfini illustre un environnement d'application haute disponibilité simplifié sur OCI, en mettant l'accent sur deux instances de machine virtuelle derrière un équilibreur de charge. Ces instances existent dans deux domaines de pannes distincts au sein d'un domaine de disponibilité. Cette architecture utilise le service OCI File Storage ; Magento est installé dans un système de fichiers réseau partagé (NFS). Le système de fichiers existe dans un sous-réseau privé dédié comportant un groupe de sécurité réseau qui permet d'accéder à la cible de montage à partir de toutes les instances.
Le schéma suivant illustre une architecture à noeud unique simple. Il se compose d'un déploiement léger, qui pourrait être adapté à des fins d'apprentissage ou servir de preuve de concept.
Description de l'illustration magento-mds-single.png ci-après
- Règles
Une stratégie Oracle Cloud Infrastructure Identity and Access Management indique qui peut accéder à quelles ressources et comment. L'accès est accordé au niveau du groupe et du compartiment, ce qui signifie que vous pouvez écrire une stratégie qui offre à un groupe un type d'accès spécifique dans un compartiment spécifique ou une location.
- Catégories
Les compartiments sont des partitions logiques inter-région au sein d'une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser vos ressources dans Oracle Cloud, contrôler l'accès aux ressources et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources d'un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions qu'elles peuvent effectuer.
- réseau cloud virtuel
L'une de vos premières étapes dans OCI est de configurer un réseau cloud virtuel (VCN) pour vos ressources cloud. Un VCN est un réseau défini par logiciel que vous configurez dans une région OCI. Les réseaux cloud virtuels peuvent être segmentés en sous-réseaux, qui peuvent être propres à une région ou à un domaine de disponibilité. Des sous-réseaux propres à une région et à un domaine de disponibilité peuvent coexister dans le même VCN. Un sous-réseau peut être public ou privé.
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données indépendants et autonomes au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure une tolérance de panne. Les domaines de disponibilité ne partagent ni infrastructure (système d'alimentation ou de refroidissement par exemple), ni le réseau interne du domaine de disponibilité. Ainsi, il est peu probable qu'un problème survenant dans un domaine de disponibilité affecte les autres domaines de disponibilité de la région.
- équilibreur de charge
Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un point d'entrée unique vers plusieurs serveurs du back-end.
- Instances de calcul
Oracle Cloud Infrastructure Compute vous permet de provisionner et de gérer des hôtes de calcul. Vous pouvez lancer des instances de calcul avec des formes répondant à vos besoins en ressources (UC, mémoire, bande passante réseau et stockage). Après avoir créé une instance de calcul, vous pouvez y accéder en toute sécurité, la redémarrer, attacher et détacher des volumes, et y mettre fin lorsque vous n'en avez pas besoin.
- Passerelle Internet
La passerelle Internet autorise le trafic entre les sous-réseaux publics d'un VCN et le réseau Internet public.
- Passerelle de routage dynamique
Le DRG est un routeur virtuel qui fournit un chemin pour le trafic de réseau privé entre les réseaux on-premise et les réseaux cloud virtuels. Il peut également être utilisé pour acheminer le trafic entre les réseaux cloud virtuels de la même région ou entre les régions.
- Stockage de fichiers
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 du service File Storage à partir de n'importe quelle instance Bare Metal, de machine virtuelle ou de conteneur d'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.
- Groupe de sécurité réseau
Les groupes de sécurité réseau agissent comme des pare-feu virtuels pour vos ressources cloud. Avec le modèle de sécurité sans confiance d'Oracle Cloud Infrastructure, tout le trafic est refusé et vous pouvez contrôler le trafic réseau au sein d'un VCN. Un groupe de sécurité réseau se compose d'un ensemble de règles de sécurité entrantes et sortantes qui s'appliquent uniquement à un ensemble spécifié de cartes d'interface réseau virtuelles dans un seul VCN.
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 aux sous-réseaux du VCN. Utilisez des blocs CIDR se trouvant dans l'espace d'adresses IP privées standard.
Sélectionnez une plage d'adresses qui ne chevauche ni votre réseau sur site ni aucun autre réseau, de sorte que vous puissiez configurer une connexion entre le VCN et votre réseau sur site, si nécessaire.
Lorsque vous concevez les sous-réseaux, tenez compte des exigences de sécurité et de flux de trafic. Associez 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é.
- Sécurité
Utilisez des stratégies pour limiter les personnes autorisées à accéder aux ressources OCI dont dispose votre entreprise et la façon dont elles peuvent y accéder. Utilisez Vault pour une protection supplémentaire de vos clés, certificats et clés secrètes.
Le service Networking offre deux fonctionnalités de pare-feu virtuel utilisant des règles de sécurité pour contrôler le trafic au niveau du paquet : des listes de sécurité et des groupes de sécurité réseau. Un groupe de sécurité réseau se compose d'un ensemble de règles de sécurité entrantes et sortantes qui s'appliquent uniquement à un ensemble de cartes d'interface réseau virtuelles de votre choix dans un seul VCN. Par exemple, vous pouvez choisir toutes les instances de calcul qui agissent en tant que serveurs Web dans le niveau Web d'une application à plusieurs niveaux de votre VCN.
Les règles de sécurité des groupes de sécurité réseau fonctionnent de la même manière que les règles des listes de sécurité. Toutefois, pour la source ou la destination de la règle de sécurité de groupe de sécurité réseau, vous pouvez indiquer un groupe de sécurité réseau au lieu d'un bloc CIDR. Vous pouvez donc facilement écrire des règles de sécurité pour contrôler le trafic entre deux groupes de sécurité réseau du même VCN ou au sein d'un même groupe de sécurité réseau. Lorsque vous créez un système de base de données, vous pouvez indiquer des groupes de sécurité réseau. Vous pouvez également mettre à jour un système de base de données existant pour qu'il utilise des groupes de sécurité réseau.
- Calcul
Prélever des formes avec la combinaison appropriée d'OCPU et de mémoire, et provisionner un stockage de blocs et/ou NVMe local selon les besoins pour chaque instance. Envisagez d'utiliser les formes flexibles disponibles, qui offrent davantage de flexibilité pour la combinaison d'OCPU et de mémoire.
- Base de données
Choisissez votre forme Oracle MySQL Database Service en fonction de la charge globale planifiée. Activer la haute disponibilité MySQL pour trois noeuds redondants.
Remarques
Lors du déploiement de Magento eCommerce sur Oracle Linux avec MySQL Database Service, tenez compte des facteurs suivants :
- Disponibilité et évolutivité des applications
Dans cet exemple, dans l'architecture hautement disponible, nous affichons deux instances dans des domaines de pannes différents au sein du même domaine de disponibilité. Vous pouvez choisir de placer les instances dans différents domaines de disponibilité (dans les régions où elles sont disponibles), pour une tolérance de panne encore plus élevée. Une autre approche qui représente une adaptation plus dynamique aux besoins de performances plus exigeants et plus variés est l'utilisation d'un pool d'instances et le redimensionnement automatique.
Les pools d'instances permettent de provisionner et de créer plusieurs instances Compute reposant sur la même configuration dans la même région.
Le redimensionnement automatique permet d'adapter automatiquement le nombre d'instances Compute dans un pool d'instances en fonction de mesures de performances telles que l'utilisation de l'UC. Le redimensionnement automatique vous aide à fournir des performances cohérentes aux utilisateurs lors des périodes de demande élevée et à réduire les coûts lors des périodes de demande faible.
- Disponibilité et évolutivité des bases de données
Le système MySQL Database affiché dans l'architecture hautement disponible utilise l'option haute disponibilité MySQL intégrée, qui crée trois instances et les place dans différents domaines de pannes.
- Sauvegardes de base de donnéesMySQL Database Service prend en charge deux types de sauvegarde : la sauvegarde complète de toutes les données contenues dans le système de base de données et la sauvegarde incrémentielle des données ajoutées ou modifiées depuis la dernière sauvegarde complète uniquement. Les sauvegardes s'exécutent de l'une des manières suivantes :
- Manuel : une action dans la console ou une demande effectuée via l'API lance la sauvegarde. Les sauvegardes manuelles peuvent être conservées pendant au moins un jour et jusqu'à 365 jours.
- Automatique : les sauvegardes programmées automatiquement s'exécutent sans aucune interaction requise au moment de votre choix. Les sauvegardes automatiques sont conservées pendant une à 35 jours. La valeur de conservation par défaut est de sept jours. Une fois définie, vous ne pouvez pas modifier la durée de conservation d'une sauvegarde automatique
- Sauvegardes de calcul
Le service Oracle Cloud Infrastructure Block Volumes permet de réaliser des sauvegardes à un point dans le temps des données sur un volume de blocs. Vous pouvez ensuite restaurer ces sauvegardes sur de nouveaux volumes immédiatement ou ultérieurement.
Vous pouvez également utiliser le service pour effectuer une sauvegarde ponctuelle et cohérente en cas d'incident d'un volume d'initialisation, sans interruption d'application ni temps d'arrêt. Les capacités de sauvegarde de volume d'initialisation sont identiques aux capacités de sauvegarde de volume de blocs.
- Stratégies de sécurité
Utilisez des stratégies pour restreindre l'accès aux ressources OCI dont dispose votre entreprise et à leur mode d'accès.
- Sécurité réseau
Le service Networking offre deux fonctionnalités de pare-feu virtuel utilisant des règles de sécurité pour contrôler le trafic au niveau du paquet : des listes de sécurité et des groupes de sécurité réseau. Un groupe de sécurité réseau se compose d'un ensemble de règles de sécurité entrantes et sortantes qui s'appliquent uniquement à un ensemble de cartes d'interface réseau virtuelles de votre choix dans un seul VCN. Par exemple, vous pouvez choisir toutes les instances Compute qui agissent en tant que serveurs Web dans le niveau Web d'une application à plusieurs niveaux de votre VCN.
Les règles de sécurité des groupes de sécurité réseau fonctionnent de la même manière que les règles des listes de sécurité. Toutefois, pour la source ou la destination de la règle de sécurité de groupe de sécurité réseau, vous pouvez indiquer un groupe de sécurité réseau au lieu d'un bloc CIDR. Vous pouvez donc facilement écrire des règles de sécurité pour contrôler le trafic entre deux groupes de sécurité réseau du même VCN ou au sein d'un même groupe de sécurité réseau. Lorsque vous créez un système de base de données, vous pouvez indiquer des groupes de sécurité réseau. Vous pouvez également mettre à jour un système de base de données existant pour qu'il utilise des groupes de sécurité réseau.
Dans ces exemples, les instances sont affichées comme existantes dans un sous-réseau public. Envisagez de les placer dans un sous-réseau privé pour plus de sécurité. Dans ce cas, un bastion est requis pour accéder aux instances.
Déployer
Le code Terraform de cette architecture de référence est disponible sur GitHub. Vous pouvez extraire le code dans Oracle Cloud Infrastructure Resource Manager en un seul clic, créer la pile et la déployer, ou télécharger le code de GitHub sur votre ordinateur, le personnaliser et le déployer à l'aide de l'interface de ligne de commande Terraform.
- Déployer à l'aide de l'exemple de pile dans Oracle Cloud Infrastructure Resource Manager :
- Cliquez sur
.
Si vous n'êtes pas déjà connecté, entrez les informations d'identification de la location et de l'utilisateur.
- Sélectionnez la région de déploiement de la pile.
- Suivez les instructions et les invites à l'écran pour créer la pile.
- Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Planifier.
- Attendez la fin du travail et vérifiez le plan.
Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Exécutez ensuite à nouveau l'action Plan.
- Si aucune autre modification n'est nécessaire, revenez à la page Détails de la pile, cliquez sur Actions Terraform, puis sélectionnez Appliquer.
- Cliquez sur
- Déployer en utilisant le code Terraform dans GitHub :
- Accédez à GitHub.
- Clonez ou téléchargez le référentiel sur votre ordinateur local.
- Suivez les instructions du document
README
.
Voir plus
Pour en savoir plus sur les meilleures pratiques Oracle Cloud Infrastructure, Oracle MySQL Database Service et d'autres déploiements similaires sur OCI, consultez les ressources supplémentaires suivantes :
- Structure des meilleures pratiques pour Oracle Cloud Infrastructure
- Présentation de MySQL Database Service
- En savoir plus sur le déploiement de MySQL Database Service dans Oracle Cloud
- Configuration d'un système de gestion de contenu WordPress connecté à une base de données MySQL dans le cloud
- Déploiement de CMS Drupal sur Oracle Linux avec MySQL Database Service
- Déployer Joomla CMS sur Oracle Linux avec MySQL Database Service
- Déployer Moodle LMS sur Oracle Linux avec MySQL Database Service