MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Automatisation et gestion de MongoDB dans le cloud

La gestion des bases de données est traditionnellement complexe et chronophage. Le déploiement, avec les casse-tête de la sécurité, de la mise en réseau complexe, de la planification et de la mise en œuvre des sauvegardes et de la surveillance, a été un casse-tête. La mise à l'échelle de votre cluster de bases de données a été une entreprise majeure. Et dans un monde où une disponibilité 24h/24 et 7j/7 et une reprise après sinistre rapide sont attendues, la gestion d'un seul cluster de bases de données peut être un travail à temps plein.

ClusterControl de Manynines est un système de déploiement et de gestion de base de données qui répond à ce qui précède, facilitant le déploiement rapide de clusters ou de nœuds de base de données redondants et sécurisés, y compris des fonctionnalités avancées de sauvegarde et de surveillance, que ce soit sur site ou dans le cloud. Avec des plugins prenant en charge Nagios, PagerDuty et Zabbix, entre autres, ClusterControl s'intègre bien à l'infrastructure et aux outils existants pour vous aider à gérer vos serveurs de base de données en toute confiance.

MongoDB est aujourd'hui le premier serveur de base de données NoSQL au monde. À l'aide de ClusterControl, avec lequel vous pouvez déployer et gérer MongoDB officiel ou Percona Server pour MongoDB, l'offre concurrente de Percona incorporant les fonctionnalités de MongoDB Enterprise, nous allons parcourir le déploiement d'un ensemble de répliques MongoDB avec trois nœuds de données et examiner certaines des fonctionnalités. de l'application ClusterControl.

Nous allons passer en revue certaines fonctionnalités clés de ClusterControl, en particulier en ce qui concerne MongoDB, en utilisant Amazon Web Services. Amazon Web Services (ou AWS) est le plus grand fournisseur de cloud d'infrastructure en tant que service au monde, hébergeant des millions d'utilisateurs dans le monde entier. Il comprend de nombreux services pour tous les cas d'utilisation, du stockage d'objets pratiquement illimité avec S3 et une infrastructure de machine virtuelle hautement évolutive utilisant EC2. jusqu'à l'entreposage de bases de données d'entreprise avec Redshift et même Machine Learning.

Une fois que vous aurez lu ce blog, vous souhaiterez peut-être également lire notre livre blanc DIY Cloud Database sur Amazon Web Services, qui traite plus en détail des considérations de configuration et de performances pour les serveurs de base de données dans le cloud AWS. De plus, nous avons Devenir un administrateur de base de données MongoDB, un livre blanc contenant des détails plus détaillés spécifiques à MongoDB.

Pour commencer, vous devrez d'abord déployer quatre instances AWS. Pour une plate-forme de production, le type d'instance doit être soigneusement choisi en fonction des directives dont nous avons discuté précédemment, mais pour nos besoins, des instances avec 2 processeurs virtuels et 4 Go de RAM seront suffisantes. L'un de ces nœuds hébergera ClusterControl, les autres serviront à déployer les trois nœuds de la base de données.

Commencez par créer le groupe de sécurité des nœuds de votre base de données, en autorisant le trafic entrant sur le port 27017. Il n'est pas nécessaire de restreindre le trafic sortant, mais si vous le souhaitez, autorisez le trafic sortant sur les ports 1024-65535 pour faciliter la communication sortante depuis les serveurs de base de données. .

Créez ensuite le groupe de sécurité pour votre nœud ClusterControl. Autorisez le trafic entrant sur les ports 22 et 80. Ajoutez cet ID de groupe de sécurité au groupe de sécurité des nœuds de votre base de données et autorisez une communication TCP illimitée. Cela facilitera la communication entre les deux groupes de sécurité, sans autoriser l'accès ssh aux nœuds de la base de données à partir de clients externes.

Lancez les instances dans leurs groupes de sécurité respectifs, en choisissant pour chaque instance une KeyPair dont vous disposez de la clé ssh. Pour les besoins de cette tâche, utilisez le même KeyPair pour toutes les instances. Si vous avez perdu la clé ssh de votre KeyPair, vous devrez créer une nouvelle KeyPair. Lors du lancement des instances, ne choisissez pas l'image Amazon Linux par défaut, choisissez plutôt une AMI basée sur un système d'exploitation pris en charge répertorié ici. Comme j'utilise la région AWS EU-CENTRAL-1, j'utiliserai l'AMI communautaire ami-fa2df395, une image CentOS 7.3, à cette fin.

Si vous avez installé les outils de ligne de commande AWS, utilisez les aws ec2 describe-instances commande détaillée précédemment pour confirmer que vos instances sont en cours d'exécution--sinon affichez vos instances dans la console Web AWS--et une fois confirmée, connectez-vous à l'instance ClusterControl via ssh.

Copiez le fichier de clé publique que vous avez téléchargé lors de la création de votre KeyPair dans l'instance ClusterControl. Vous pouvez utiliser le scp commande à cet effet. Pour l'instant, laissons-le dans le répertoire par défaut /home/centos, le répertoire personnel de l'utilisateur centos. J'ai appelé le mien s9s.pem. Vous aurez besoin de l'outil wget installé; installez-le à l'aide de la commande suivante :

$ sudo yum -y install wget

Pour installer ClusterControl, exécutez les commandes suivantes :

$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user

L'installation vous guidera à travers quelques questions initiales, après quoi il faudra quelques minutes pour récupérer et installer les dépendances à l'aide du gestionnaire de packages de votre système d'exploitation.

Une fois l'installation terminée, pointez votre navigateur Web sur http://. Vous pouvez trouver l'adresse externe de l'instance à l'aide de describe-instances ou via la console Web AWS.

Une fois que vous vous êtes connecté avec succès, vous verrez l'écran suivant et pourrez continuer à déployer votre ensemble de répliques MongoDB.

Figure 1 :Bienvenue dans ClusterControl !

Comme vous pouvez le constater, ClusterControl peut également importer des clusters de bases de données existants, ce qui lui permet de gérer votre infrastructure existante aussi facilement que de nouveaux déploiements.

Pour nos besoins, vous allez cliquer sur Déployer le cluster de bases de données . Sur l'écran suivant, vous verrez la sélection de serveurs de base de données et de types de cluster pris en charge par ClusterControl. Cliquez sur l'onglet intitulé MongoDB ReplicaSet . Ici les valeurs qui vous concernent sont Utilisateur SSH , Chemin de clé SSH , et Nom du cluster . Le port doit déjà être 22, le port ssh par défaut, et l'AMI que nous utilisons ne nécessite pas de mot de passe Sudo .

Figure 2 :Déploiement d'un ensemble de répliques MongoDB

L'utilisateur ssh pour l'AMI CentOS 7 est centos , et le chemin de clé SSH est /home/centos/s9s.pem , ou le chemin approprié en fonction de votre propre nom de fichier de clé. Utilisons MongoDB-RS0 comme nom de cluster. En acceptant les options par défaut, nous cliquons sur Continuer .

Figure 3 :Configuration de votre déploiement

Ici, nous pouvons choisir entre la version officielle de MongoDB et une version Percona. Sélectionnez celui que vous préférez et fournissez un utilisateur administrateur et un mot de passe avec lesquels configurer MongoDB en toute sécurité. Notez que ClusterControl ne vous laissera pas continuer à moins que vous ne fournissiez ces détails. Notez les informations d'identification que vous avez fournies, vous en aurez besoin pour vous connecter à la base de données MongoDB déployée, si vous souhaitez l'utiliser ultérieurement. Choisissez maintenant un nom d'ensemble de répliques ou acceptez la valeur par défaut. Nous allons utiliser les référentiels des fournisseurs, mais sachez que vous pouvez configurer ClusterControl pour utiliser vos propres référentiels ou ceux d'un tiers, si vous préférez.

Ajoutez vos nœuds de base de données, un à la fois. Vous pouvez choisir d'utiliser l'adresse IP externe, mais si vous fournissez le nom d'hôte, ce qui est généralement recommandé, ClusterControl enregistrera toutes les interfaces réseau dans les hôtes, et vous pourrez choisir l'interface sur laquelle vous souhaitez déployer. Une fois que vous avez ajouté vos trois nœuds de base de données, cliquez sur Déployer . ClusterControl va maintenant déployer votre ensemble de répliques MongoDB. Cliquez sur Détails complets du travail à observer pendant qu'il effectue la configuration de votre cluster. Une fois la tâche terminée, accédez à l'écran Clusters de bases de données et consultez votre cluster.

Figure 4 :Récupération automatique

En regardant de plus près, vous pouvez voir que la récupération automatique est activée à la fois au niveau d'un cluster et d'un nœud ; en cas d'échec, ClusterControl tentera de récupérer votre cluster ou le nœud individuel ayant un problème. La coche verte à côté de chaque nœud affiche également l'état de santé du cluster en un coup d'œil.

Figure 5 :Planification des sauvegardes

La dernière fonctionnalité que nous aborderons ici est les sauvegardes. ClusterControl fournit une fonctionnalité de sauvegarde qui permet une sauvegarde complète cohérente du cluster, ou simplement un mongodump standard sauvegarde si vous préférez. Il offre également la possibilité de créer des sauvegardes planifiées à exécuter périodiquement selon un calendrier de votre choix. La conservation des sauvegardes est également gérée, avec la possibilité de conserver les sauvegardes pendant une période limitée, évitant ainsi les problèmes de stockage.

Dans ce blog, j'ai tenté de vous donner un bref aperçu de l'utilisation de ClusterControl avec MongoDB, mais il existe de nombreuses autres fonctionnalités prises en charge par ClusterControl. Le déploiement de clusters partagés, avec des esclaves cachés et/ou retardés, des arbitres et d'autres fonctionnalités sont tous disponibles. Plus d'informations sont disponibles sur notre site Web, où vous pouvez également trouver des webinaires, des livres blancs, des didacticiels et des formations, et essayer gratuitement ClusterControl.