Ces dernières années, l'utilisation de l'infrastructure de plate-forme est passée du sur site au cloud computing. Ceci est basé sur l'absence de coûts d'investissement qui doivent être supportés par l'entreprise s'ils sont utilisés lors de la mise en œuvre de l'infrastructure informatique. Le cloud computing offre une flexibilité dans chaque ligne de ressources, c'est-à-dire. sur les ressources humaines, l'énergie, les gains de temps.
Le cloud computing permet aux organisations de planifier, d'exécuter et de maintenir facilement les plates-formes informatiques pour soutenir les intérêts commerciaux.
Mais les deux ont des similitudes, nous avons dû penser au BCP (Business Continuity Plan) et au Disaster Recovery Plan (DRP) lors de l'utilisation du cloud. Le stockage des données devient critique lorsque nous parlons de DRP, à quelle vitesse nous effectuons la récupération (objectif de point de récupération) lorsqu'un sinistre se produit. L'architecture multi-cloud joue un rôle important lorsque nous voulons concevoir et mettre en œuvre une infrastructure dans l'environnement cloud. Dans ce blog, nous passons en revue le déploiement multi-cloud associé pour le stockage de données dans MySQL.
Configuration de l'environnement dans le cloud
Cette fois, nous utilisons Amazon Web Service (AWS), qui est largement utilisé par les entreprises, et Google Cloud Platform (GCP) comme deuxième fournisseur cloud dans une configuration de base de données multi-cloud. Créer des instances (le terme utilisé dans le cloud computing pour désigner les nouvelles machines virtuelles) sur AWS est très simple.
AWS utilise le terme Amazon EC2 (Elastic Compute Cloud) pour son service d'instance de calcul. Vous pouvez vous connecter à AWS, puis sélectionner le service EC2.
Voici l'affichage d'une instance qui a été provisionnée avec EC2.
Pour des raisons de sécurité, qui est la principale préoccupation des services cloud, assurez-vous que nous n'activons que les ports nécessaires lors du déploiement de ClusterControl, tels que le port SSH (22), xtrabackup (9999) et la base de données ( 3306) sont sécurisés mais accessibles via les fournisseurs de cloud. Une façon de mettre en œuvre une telle connectivité serait de créer un VPN qui connecterait des instances dans AWS avec des instances dans GCP. Grâce à une telle conception, nous pouvons traiter toutes les instances comme locales, même si elles sont situées dans différents fournisseurs de cloud. Nous ne décrirons pas exactement le processus de configuration du VPN, veuillez donc garder à l'esprit que le déploiement que nous présentons n'est pas adapté à la production dans le monde réel. Il s'agit uniquement d'illustrer les possibilités offertes par ClusterControl et les configurations multi-cloud.
Après avoir terminé la configuration d'AWS EC2, continuez avec la configuration de l'instance de calcul dans GCP, dans GCP, le service de calcul s'appelle Compute Engine.
Dans cet exemple, nous allons créer 1 instance dans le cloud GCP qui être utilisé comme l'un des esclaves.
Lorsqu'il est terminé, il sera affiché dans la console de gestion comme ci-dessous :
Assurez-vous de sécuriser et d'activer le port SSH (22), xtrabackup ( 9999) et base de données (3306).
Après avoir déployé des instances dans AWS et GCP, nous devons poursuivre l'installation de ClusterControl sur l'une des instances du fournisseur de cloud, où le maître sera situé. Dans cet exemple de configuration, nous utiliserons l'une des instances AWS en tant que maître.
Déploiement de la réplication MySQL sur Amazon Web Service
Pour installer ClusterControl, vous devez suivre des instructions simples que vous pouvez trouver sur le site Web de Manynines. Une fois que ClusterControl est opérationnel dans le fournisseur de cloud où notre maître va être situé (dans cet exemple, nous utiliserons AWS pour notre nœud maître), nous pouvons commencer le déploiement de MySQL Replication à l'aide de ClusterControl. Vous devez suivre les étapes suivantes pour installer le cluster de réplication MySQL :
Ouvrez ClusterControl puis sélectionnez MySQL Replication, vous verrez trois formulaires à remplir pour l'installation
Paramètres généraux et SSH
Entrez l'utilisateur SSH, la clé et le mot de passe, le port SSH et le nom du cluster
Sélectionnez ensuite "Continuer"
Définir les serveurs MySQL
Sélectionnez le fournisseur, le numéro de version et le mot de passe root de MySQL, puis cliquez sur "Continuer"
Définir la topologie
Comme vous vous en souvenez, nous avons deux nœuds créés dans AWS. Nous pouvons utiliser les deux ici. L'un sera notre maître, l'autre devra être ajouté comme esclave. Ensuite, nous pouvons procéder au "déploiement"
Si vous le souhaitez, et si la connectivité inter-cloud est déjà en place, vous pouvez également définir l'adresse IP de l'instance GCP sous 'Ajouter des esclaves au maître A' puis continuer avec ' Déployer'. De cette façon, ClusterControl déploiera le maître et les deux esclaves en même temps.
Une fois le déploiement démarré, vous pouvez surveiller la progression dans l'onglet Activité. Vous pouvez voir l'exemple des messages de progression ci-dessous. Il est maintenant temps d'attendre que le travail soit terminé.
Une fois terminé, vous pouvez voir le cluster nouvellement créé nommé "Cloud Réplication MySQL".
Si vous avez déjà ajouté un nœud GCP en tant que deuxième esclave dans l'assistant de déploiement, vous avez déjà terminé la configuration maître-esclave entre les instances AWS et GCP.
Si ce n'est pas le cas, vous pouvez ajouter l'esclave GCP au cluster en cours d'exécution. Veuillez vous assurer que la connectivité est en place avant de continuer.
Ajouter un nouvel esclave depuis Google Cloud Platform
Une fois la réplication MySQL sur AWS créée, vous pouvez continuer en ajoutant votre nœud dans GCP en tant que nouvel esclave. Vous pouvez y parvenir en procédant comme suit : :
- Dans la liste des clusters, recherchez votre nouveau cluster, puis cliquez sur et sélectionnez "Ajouter un esclave de réplication"
-
- L'assistant Ajouter un esclave de réplication apparaîtra, comme vous pouvez le voir ci-dessous.
- Continuez en choisissant l'IP de l'instance maître (située dans AWS) et en saisissant l'adresse IP et le port de l'instance GCP que vous souhaitez utiliser comme esclave dans la case "Slave Hostname/IP". Une fois que vous avez tout rempli, vous pouvez continuer en cliquant sur "Ajouter un esclave de réplication".
Comme auparavant, vous pouvez surveiller la progression dans l'onglet d'activité. Il est maintenant temps d'attendre que le travail soit terminé.
Une fois le déploiement terminé, nous pouvons vérifier le cluster dans l'onglet topologie.
Vous pouvez voir la topologie de notre cluster maître-esclave ci-dessous.
Comme vous pouvez le voir, nous avons un maître et un esclave dans AWS et nous avons également un esclave dans GCP, ce qui permet à notre base de données de survivre plus facilement aux pannes qui se produisent chez l'un de nos fournisseurs de cloud.
Conclusion
Pour la haute disponibilité des services de base de données, un déploiement multi-cloud joue un rôle très important pour y arriver. ClusterControl est créé pour naviguer dans ce processus et faciliter la gestion des déploiements multi-cloud par l'utilisateur.
L'un des éléments essentiels à prendre en compte lors d'un déploiement multi-cloud concerne les aspects de sécurité. Comme nous l'avons mentionné précédemment, vous pouvez configurer un VPN site à site entre les deux fournisseurs de cloud comme meilleure pratique pouvant être appliquée. Il existe également d'autres options comme les tunnels SSH.