sql >> Base de Datos >  >> NoSQL >> MongoDB

Automatización y gestión de MongoDB en la nube

La gestión de bases de datos ha sido tradicionalmente compleja y lenta. La implementación, con los quebraderos de cabeza de la seguridad, las redes complejas, la planificación e implementación de copias de seguridad y la supervisión, ha sido un quebradero de cabeza. Escalar su clúster de base de datos ha sido una tarea importante. Y en un mundo donde se espera disponibilidad las 24 horas del día, los 7 días de la semana y una rápida recuperación ante desastres, administrar incluso un único clúster de base de datos puede ser un trabajo de tiempo completo.

ClusterControl de Variousnines es un sistema de implementación y administración de bases de datos que aborda lo anterior, facilitando la implementación rápida de clústeres o nodos de bases de datos seguros y redundantes, incluida la funcionalidad avanzada de respaldo y monitoreo, ya sea en las instalaciones o en la nube. Con complementos compatibles con Nagios, PagerDuty y Zabbix, entre otros, ClusterControl se integra bien con la infraestructura y las herramientas existentes para ayudarlo a administrar sus servidores de bases de datos con confianza.

MongoDB es el servidor de base de datos NoSQL líder en el mundo en la actualidad. Usando ClusterControl, con el que puede implementar y administrar MongoDB oficial o Percona Server para MongoDB, la oferta de la competencia de Percona que incorpora funciones de MongoDB Enterprise, vamos a ver cómo implementar un conjunto de réplicas de MongoDB con tres nodos de datos y ver algunas de las funciones. de la aplicación ClusterControl.

Vamos a repasar algunas características clave de ClusterControl, especialmente en lo que respecta a MongoDB, utilizando Amazon Web Services. Amazon Web Services (o AWS) es el mayor proveedor de infraestructura como servicio en la nube a nivel mundial y aloja a millones de usuarios en todo el mundo. Comprende muchos servicios para todos los casos de uso, desde almacenamiento de objetos prácticamente ilimitado con S3 e infraestructura de máquina virtual altamente escalable con EC2. todo el camino hasta el almacenamiento de bases de datos empresariales con Redshift e incluso Machine Learning.

Una vez que haya leído este blog, es posible que también desee leer nuestro documento técnico DIY Cloud Database on Amazon Web Services, que analiza las consideraciones de configuración y rendimiento para los servidores de bases de datos en la nube de AWS con más detalle. Además, tenemos Conviértase en un DBA de MongoDB, un documento técnico con más detalles específicos de MongoDB.

Para comenzar, primero deberá implementar cuatro instancias de AWS. Para una plataforma de producción, el tipo de instancia debe elegirse cuidadosamente según las pautas que hemos discutido anteriormente, pero para nuestros propósitos, las instancias con 2 CPU virtuales y 4 GB de RAM serán suficientes. Uno de estos nodos alojará ClusterControl, los otros se utilizarán para implementar los tres nodos de la base de datos.

Comience creando el grupo de seguridad de los nodos de su base de datos, permitiendo el tráfico entrante en el puerto 27017. No es necesario restringir el tráfico saliente, pero si desea hacerlo, permita el tráfico saliente en los puertos 1024-65535 para facilitar la comunicación saliente desde los servidores de la base de datos. .

A continuación, cree el grupo de seguridad para su nodo ClusterControl. Permita el tráfico entrante en los puertos 22 y 80. Agregue este ID de grupo de seguridad a su grupo de seguridad de nodos de base de datos y permita la comunicación TCP sin restricciones. Esto facilitará la comunicación entre los dos grupos de seguridad, sin permitir el acceso ssh a los nodos de la base de datos desde clientes externos.

Inicie las instancias en sus respectivos grupos de seguridad, eligiendo para cada instancia un KeyPair para el que tenga la clave ssh. A los efectos de esta tarea, utilice el mismo KeyPair para todas las instancias. Si ha perdido la clave ssh de su KeyPair, deberá crear una KeyPair nueva. Al lanzar las instancias, no elija la imagen predeterminada de Amazon Linux, en su lugar, elija una AMI basada en un sistema operativo compatible que se enumera aquí. Como estoy usando la región de AWS EU-CENTRAL-1, usaré la AMI comunitaria ami-fa2df395, una imagen de CentOS 7.3, para este propósito.

Si tiene instaladas las herramientas de línea de comandos de AWS, utilice aws ec2 describe-instances Comando detallado anteriormente para confirmar que sus instancias se están ejecutando; de lo contrario, vea sus instancias en la consola web de AWS y, cuando se confirme, inicie sesión en la instancia de ClusterControl a través de ssh.

Copie el archivo de clave pública que descargó al crear su KeyPair en la instancia de ClusterControl. Puede utilizar el scp comando para este fin. Por ahora, dejémoslo en el directorio predeterminado /home/centos, el directorio de inicio del usuario centos. He llamado al mío s9s.pem. Necesitará la herramienta wget instalada; instálalo usando el siguiente comando:

$ sudo yum -y install wget

Para instalar ClusterControl, ejecute los siguientes comandos:

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

La instalación lo guiará a través de algunas preguntas iniciales, luego de lo cual tomará unos minutos recuperar e instalar las dependencias usando el administrador de paquetes de su sistema operativo.

Cuando se complete la instalación, dirija su navegador web a http://. Puede encontrar la dirección externa de la instancia usando describe-instances o a través de la consola web de AWS.

Una vez que haya iniciado sesión correctamente, verá la siguiente pantalla y podrá continuar implementando su conjunto de réplicas de MongoDB.

Figura 1:¡Bienvenido a ClusterControl!

Como puede ver, ClusterControl también puede importar clústeres de bases de datos existentes, lo que le permite administrar su infraestructura existente tan fácilmente como las nuevas implementaciones.

Para nuestros propósitos, hará clic en Implementar clúster de base de datos . En la siguiente pantalla, verá la selección de servidores de base de datos y tipos de clúster que admite ClusterControl. Haga clic en la pestaña etiquetada MongoDB ReplicaSet . Aquí los valores que le preocupan son Usuario SSH , Ruta de la clave SSH y Nombre del clúster . El puerto ya debería ser 22, el puerto ssh predeterminado, y la AMI que estamos usando no requiere una contraseña de Sudo .

Figura 2:Implementación de un conjunto de réplicas de MongoDB

El usuario ssh para la AMI de CentOS 7 es centos y la ruta de la clave SSH es /home/centos/s9s.pem , o la ruta adecuada según su propio nombre de archivo de clave. Usemos MongoDB-RS0 como el nombre del clúster. Aceptando las opciones por defecto, hacemos clic en Continuar .

Figura 3:Configuración de su implementación

Aquí podemos elegir entre la compilación oficial de MongoDB y una compilación de Percona. Seleccione el que prefiera y proporcione un usuario administrador y una contraseña para configurar MongoDB de forma segura. Tenga en cuenta que ClusterControl no le permitirá continuar a menos que proporcione estos detalles. Tome nota de las credenciales que proporcionó, las necesitará para iniciar sesión en la base de datos MongoDB implementada, si desea usarla más tarde. Ahora elija un nombre de conjunto de réplicas o acepte el predeterminado. Vamos a utilizar los repositorios de proveedores, pero tenga en cuenta que puede configurar ClusterControl para utilizar sus propios repositorios o los de un tercero, si lo prefiere.

Agregue sus nodos de base de datos, uno a la vez. Puede elegir usar la dirección IP externa, pero si proporciona el nombre de host, que generalmente se recomienda, ClusterControl registrará todas las interfaces de red en los hosts y podrá elegir la interfaz en la que le gustaría implementar. Una vez que haya agregado sus tres nodos de base de datos, haga clic en Implementar . ClusterControl ahora implementará su conjunto de réplicas de MongoDB. Haga clic en Detalles completos del trabajo para observar como lleva a cabo la configuración de tu clúster. Cuando el trabajo esté completo, vaya a la pantalla Clústeres de base de datos y vea su clúster.

Figura 4:Recuperación automática

Al observar más de cerca, puede ver que la Recuperación automática está habilitada tanto a nivel de clúster como de nodo; en caso de fallas, ClusterControl intentará recuperar su clúster o el nodo individual que tenga un problema. La marca verde junto a cada nodo también muestra el estado de salud del clúster de un vistazo.

Figura 5:Programación de copias de seguridad

La última característica que cubriremos aquí son las copias de seguridad. ClusterControl proporciona una función de copia de seguridad que permite una copia de seguridad consistente del clúster completo, o simplemente un mongodump estándar copia de seguridad si lo prefiere. También proporciona la posibilidad de crear copias de seguridad programadas para que se ejecuten periódicamente según la programación que usted elija. También se gestiona la retención de copias de seguridad, con la opción de conservar las copias de seguridad durante un período limitado, evitando problemas de almacenamiento.

En este blog, intenté brindarle una breve descripción general del uso de ClusterControl con MongoDB, pero hay muchas más funciones compatibles con ClusterControl. El despliegue de Sharded Clusters, con esclavos ocultos y/o retrasados, árbitros y otras características están disponibles. Hay más información disponible en nuestro sitio web, donde también puede encontrar seminarios web, documentos técnicos, tutoriales y capacitación, y probar ClusterControl gratis.