MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

La manière simple de déployer un cluster MySQL Galera sur AWS

ClusterControl 1.7.3 s'accompagne d'une amélioration notable de l'intégration au cloud. Il est possible de déployer un cluster de réplication MySQL et PostgreSQL dans le cloud, ainsi que de lancer automatiquement une instance cloud et de faire évoluer votre cluster de base de données en ajoutant un nouveau nœud de base de données.

Cet article de blog explique comment déployer facilement un cluster Galera à l'aide de ClusterControl sur AWS. Cette nouvelle fonctionnalité fait partie de ClusterControl Community Edition, qui comprend des fonctionnalités de déploiement et de surveillance gratuites. Cela signifie que vous pouvez profiter de cette fonctionnalité sans frais !

Architecture de cluster de base de données ClusterControl

Le schéma suivant résume notre architecture globale de clusters de bases de données.

Le serveur ClusterControl est situé en dehors de l'infrastructure AWS, permettant une visibilité équitable à notre cluster de bases de données (situé à Francfort :eu-central-1). Le serveur ClusterControl DOIT avoir une adresse IP publique dédiée. En effet, l'adresse IP sera accordée par ClusterControl sur le serveur de base de données et le groupe de sécurité AWS. La version de la base de données Galera que nous allons déployer est MariaDB Cluster 10.3, en utilisant ClusterControl 1.7.3.

Préparation de l'environnement AWS

ClusterControl est capable de déployer un cluster de bases de données sur les plates-formes cloud prises en charge, à savoir AWS, Google Cloud Platform (GCP) et Microsoft Azure. La première chose que nous devons configurer est d'obtenir les clés d'accès AWS pour permettre à ClusterControl d'effectuer des requêtes programmatiques aux services AWS. Vous pouvez utiliser la clé d'accès du compte root, mais ce n'est pas la méthode recommandée. Il est préférable de créer un utilisateur dédié à la gestion des identités et des accès (IAM) uniquement à cette fin.

Connectez-vous à votre console AWS -> Mes informations d'identification de sécurité -> Utilisateurs -> Ajouter un utilisateur . Spécifiez l'utilisateur et choisissez "Accès par programme" comme type d'accès :

Dans la page suivante, créez un nouveau groupe d'utilisateurs en cliquant sur le bouton "Créer group" et donnez le nom de groupe "DatabaseAutomation". Attribuez le type d'accès suivant :

  • AmazonEC2FullAccess
  • AmazonVPCFullAccess
  • AmazonS3FullAccess (uniquement si vous prévoyez de stocker la sauvegarde de la base de données sur AWS S3)

Cochez la case DatabaseAutomation et cliquez sur "Ajouter un utilisateur au groupe":

En option, vous pouvez attribuer des balises sur la page suivante. Sinon, continuez simplement à créer l'utilisateur. Vous devriez obtenir les deux éléments les plus importants :l'ID de la clé d'accès et la clé d'accès secrète.

Téléchargez le fichier CSV et stockez-le dans un endroit sûr. Nous sommes maintenant prêts à automatiser le déploiement sur le cloud.

Installez ClusterControl sur le serveur respectif :

$ whoami

root

$ wget http://severalnines.com/downloads/cmon/install-cc

$ chmod 755 install-cc

$ ./install-cc

Suivez les instructions d'installation et accédez à http://192.168.0.11/clustercontrol et créez l'utilisateur et le mot de passe super administrateur.

Pour permettre à ClusterControl d'effectuer un déploiement automatique sur le cloud, il faut créer des informations d'identification cloud pour la région sélectionnée avec un ID de clé et un secret AWS valides. Accédez à Barre latérale -> Intégrations -> Fournisseurs de cloud -> Ajoutez votre premier identifiant cloud -> Amazon Web Services et entrez les détails requis et choisissez Francfort comme région par défaut :

Ces informations d'identification seront utilisées par ClusterControl pour automatiser le déploiement et la gestion du cluster. À ce stade, nous sommes prêts à déployer notre premier cluster.

Déploiement d'un cluster de bases de données

Allez dans Déployer -> Déployer dans le Cloud -> MySQL Galera -> MariaDB 10.3 -> Configurer le cluster pour passer à la page suivante.

Dans la section Configurer le cluster, assurez-vous que le nombre de nœuds est de 3 et donnez un nom de cluster et un mot de passe root MySQL :

Sous Select Credential, choisissez un identifiant appelé "AWS Frankfurt" et passez à la page suivante en cliquant sur "Select Virtual Machine". Choisissez le système d'exploitation et la taille d'instance préférés. Il est recommandé d'exécuter notre infrastructure dans un cloud privé afin que nous puissions obtenir une adresse IP interne dédiée pour nos instances cloud et que les hôtes ne soient pas directement exposés au réseau public. Cliquez sur le bouton "Ajouter un nouveau" à côté du champ Virtual Private Cloud (VPC) et attribuez un sous-réseau de 10.10.0.0/16 à ce réseau :

Le VPC que nous avons créé est un cloud privé et n'a pas de connectivité Internet. Pour que ClusterControl puisse déployer et gérer les hôtes depuis l'extérieur du réseau AWS, nous devons autoriser la connectivité Internet à ce VPC. Pour ce faire, nous devons procéder comme suit :

  1. Créer une passerelle Internet
  2. Ajouter un routage externe à la table de routage
  3. Associer le sous-réseau à la table de routage

Pour créer une passerelle Internet, connectez-vous à AWS Management Console -> VPC -> Passerelles Internet -> Créer une passerelle Internet -> attribuer un nom à cette passerelle . Sélectionnez ensuite la passerelle créée dans la liste et accédez à Actions -> Attacher au VPC -> sélectionnez le VPC pour la liste déroulante -> Attacher . Nous avons maintenant attaché une passerelle Internet au cloud privé. Cependant, nous devons configurer le réseau pour transmettre toutes les demandes externes via cette passerelle Internet. Par conséquent, nous devons ajouter une route par défaut à la table de routage. Allez dans VPC -> Tables de routage -> sélectionnez la table de routage -> Modifier les routes et spécifiez le réseau de destination, 0.0.0.0/0 et la cible (l'ID de la passerelle Internet créée) comme ci-dessous :

Ensuite, nous devons associer le sous-réseau DB à ce réseau afin qu'il affecte toutes les instances créées à l'intérieur de ce réseau à la route par défaut que nous avons créée précédemment, sélectionnez la table de routage -> Modifier l'association de sous-réseau -> attribuez le sous-réseau DB , comme indiqué ci-dessous :

Le VPC est maintenant prêt à être utilisé par ClusterControl pour le déploiement.

Une fois créé, sélectionnez le VPC créé dans la liste déroulante. Pour la clé SSH, nous demanderons à ClusterControl de la générer automatiquement :

La clé SSH générée sera située dans le serveur ClusterControl sous le répertoire /var/lib/cmon/autogenerated_ssh_keys/s9s/.

Cliquez sur "Résumé du déploiement". Dans cette page, nous devons attribuer un sous-réseau du VPC au cluster de bases de données. Comme il s'agit d'un nouveau VPC, il n'a pas de sous-réseau et nous devons en créer un nouveau. Cliquez sur le bouton "Ajouter un nouveau sous-réseau" et affectez 10.10.1.0/24 comme réseau pour notre cluster de base de données :

Enfin, sélectionnez le créer un sous-réseau dans la zone de texte et cliquez sur "Déployer le cluster":

Vous pouvez surveiller la progression du travail sous Activité -> Travaux -> Créer un cluster . ClusterControl effectuera les étapes de pré-installation nécessaires telles que la création des instances cloud, le groupe de sécurité, la génération de la clé SSH, etc., avant le début des étapes d'installation réelles.

Une fois le cluster prêt, vous devriez voir le cluster suivant dans le tableau de bord ClusterControl :

Notre déploiement de cluster est maintenant terminé.

Post déploiement de la base de données AWS

Nous pouvons commencer à charger nos données dans le cluster ou créer une nouvelle base de données pour l'utilisation de votre application. Pour vous connecter, demandez simplement à vos applications ou clients de se connecter à l'adresse IP privée ou publique de l'un des serveurs de base de données. Vous pouvez obtenir ces informations en accédant à la page des nœuds, comme illustré dans la capture d'écran suivante :

Si vous souhaitez accéder directement aux nœuds de la base de données, vous pouvez utiliser le module Web-SSH de ClusterControl dans Node Actions -> SSH Console , qui vous offre une expérience similaire à la connexion via le client SSH.

Pour faire évoluer le cluster en ajoutant un nœud de base de données, vous pouvez simplement aller sur Actions de cluster (icône de pile de serveurs) -> Ajouter un nœud -> Ajouter un nœud de base de données sur une nouvelle instance cloud et la boîte de dialogue suivante s'affichera :

Suivez simplement l'assistant de déploiement et configurez votre nouvelle instance en conséquence. Une fois l'instance créée, ClusterControl installera, configurera et joindra automatiquement le nœud au cluster.

C'est tout pour le moment, les amis. Bonne mise en cluster dans le cloud !