ClusterControl 1.7.3 viene con una mejora notable en la integración de la nube. Es posible implementar un clúster de replicación de MySQL y PostgreSQL en la nube, así como lanzar automáticamente una instancia en la nube y escalar su clúster de base de datos agregando un nuevo nodo de base de datos.
Esta publicación de blog muestra cómo implementar fácilmente un Galera Cluster utilizando ClusterControl en AWS. Esta nueva función es parte de ClusterControl Community Edition, que viene con funciones gratuitas de implementación y monitoreo. ¡Esto significa que puede aprovechar esta función sin costo alguno!
Arquitectura de clúster de base de datos de ClusterControl
El siguiente diagrama resume nuestra arquitectura general de clústeres de bases de datos.
El servidor ClusterControl está ubicado fuera de la infraestructura de AWS, lo que permite una visibilidad justa a nuestro clúster de base de datos (ubicado en Frankfurt:eu-central-1). El servidor ClusterControl DEBE tener una dirección IP pública dedicada. Esto se debe a que ClusterControl otorgará la dirección IP en el servidor de la base de datos y el grupo de seguridad de AWS. La versión de la base de datos de Galera que vamos a implementar es MariaDB Cluster 10.3, usando ClusterControl 1.7.3.
Preparación del entorno de AWS
ClusterControl puede implementar un clúster de base de datos en plataformas de nube compatibles, a saber, AWS, Google Cloud Platform (GCP) y Microsoft Azure. Lo primero que tenemos que configurar es obtener las claves de acceso de AWS para permitir que ClusterControl realice solicitudes programáticas a los servicios de AWS. Puede usar la clave de acceso de la cuenta raíz, pero esta no es la forma recomendada. Es mejor crear un usuario dedicado de Gestión de identidades y accesos (IAM) únicamente para este propósito.
Inicie sesión en su consola de AWS -> Mis credenciales de seguridad -> Usuarios -> Agregar usuario . Especifique el usuario y seleccione "Acceso programático" como Tipo de acceso:
En la página siguiente, cree un nuevo grupo de usuarios haciendo clic en "Crear group" y asigne el nombre de grupo "DatabaseAutomation". Asigne el siguiente tipo de acceso:
- AmazonEC2FullAccess
- AmazonVPCFullAccess
- AmazonS3FullAccess (solo si planea almacenar la copia de seguridad de la base de datos en AWS S3)
Marque la casilla de verificación Automatización de la base de datos y haga clic en "Agregar usuario al grupo":
Opcionalmente, puede asignar etiquetas en la página siguiente. De lo contrario, simplemente proceda a crear el usuario. Debe obtener las dos cosas más importantes, ID de clave de acceso y clave de acceso secreta.
Descargue el archivo CSV y guárdelo en un lugar seguro. Ahora estamos listos para automatizar la implementación en la nube.
Instalar ClusterControl en el servidor respectivo:
$ whoami
root
$ wget http://severalnines.com/downloads/cmon/install-cc
$ chmod 755 install-cc
$ ./install-cc
Siga las instrucciones de instalación y vaya a http://192.168.0.11/clustercontrol y cree el usuario y la contraseña de superadministrador.
Para permitir que ClusterControl realice la implementación automática en la nube, se deben crear credenciales de nube para la región seleccionada con un ID de clave y un secreto de AWS válidos. Vaya a Barra lateral -> Integraciones -> Proveedores de nube -> Agregue su primera credencial de nube -> Amazon Web Services e ingrese los detalles requeridos y elija Fráncfort como la región predeterminada:
ClusterControl usará esta credencial para automatizar la implementación y administración del clúster. En este punto, estamos listos para implementar nuestro primer clúster.
Despliegue de clúster de base de datos
Vaya a Implementar -> Implementar en la nube -> MySQL Galera -> MariaDB 10.3 -> Configurar clúster para pasar a la página siguiente.
En la sección Configurar clúster, asegúrese de que la cantidad de nodos sea 3 y proporcione un nombre de clúster y una contraseña raíz de MySQL:
En Seleccionar credencial, elija una credencial llamada "AWS Frankfurt" y continúe con la página siguiente haciendo clic en "Seleccionar máquina virtual". Elija el sistema operativo preferido y el tamaño de la instancia. Se recomienda ejecutar nuestra infraestructura dentro de una nube privada para que podamos obtener una dirección IP interna dedicada para nuestras instancias en la nube y los hosts no estén directamente expuestos a la red pública. Haga clic en el botón "Agregar nuevo" junto al campo Nube privada virtual (VPC) y asigne una subred de 10.10.0.0/16 a esta red:
La VPC que hemos creado es una nube privada y no tiene conectividad a internet. Para que ClusterControl pueda implementar y administrar los hosts desde fuera de la red de AWS, debemos permitir la conectividad a Internet a esta VPC. Para hacer esto, tenemos que hacer lo siguiente:
- Cree una puerta de enlace a Internet
- Añadir enrutamiento externo a la tabla de rutas
- Asociar la subred a la tabla de rutas
Para crear una puerta de enlace de Internet, inicie sesión en Consola de administración de AWS -> VPC -> Puertas de enlace de Internet -> Crear puerta de enlace de Internet -> asigne un nombre a esta puerta de enlace . Luego seleccione la puerta de enlace creada de la lista y vaya a Acciones -> Adjuntar a VPC -> seleccione la VPC para la lista desplegable -> Adjuntar . Ahora hemos adjuntado una puerta de enlace de Internet a la nube privada. Sin embargo, debemos configurar la red para reenviar todas las solicitudes externas a través de este portal de Internet. Por lo tanto, tenemos que agregar una ruta predeterminada a la tabla de rutas. Vaya a VPC -> Tablas de rutas -> seleccione la tabla de rutas -> Editar rutas y especifique la red de destino, 0.0.0.0/0 y el destino (la ID de la puerta de enlace de Internet creada) como se muestra a continuación:
Luego, tenemos que asociar la subred de base de datos a esta red para que asigne todas las instancias creadas dentro de esta red a la ruta predeterminada que hemos creado anteriormente, seleccione la tabla de rutas -> Editar asociación de subred -> asigne la subred de base de datos , como se muestra a continuación:
La VPC ahora está lista para que ClusterControl la use para la implementación.
Una vez creada, seleccione la VPC creada en el menú desplegable. Para la clave SSH, le pediremos a ClusterControl que la genere automáticamente:
La clave SSH generada se ubicará dentro del servidor ClusterControl en el directorio /var/lib/cmon/autogenerated_ssh_keys/s9s/.
Haga clic en "Resumen de implementación". En esta página, debemos asignar una subred de la VPC al clúster de la base de datos. Dado que esta es una nueva VPC, no tiene subred y tenemos que crear una nueva. Haga clic en el botón "Agregar nueva subred" y asigne 10.10.1.0/24 como la red para nuestro clúster de base de datos:
Finalmente, seleccione crear subred en el cuadro de texto y haga clic en "Implementar clúster":
Puede monitorear el progreso del trabajo en Actividad -> Trabajos -> Crear clúster . ClusterControl realizará los pasos previos a la instalación necesarios, como crear las instancias de la nube, el grupo de seguridad, generar la clave SSH, etc., antes de que comiencen los pasos de instalación reales.
Una vez que el clúster esté listo, debería ver el siguiente clúster en el panel de control de ClusterControl:
La implementación de nuestro clúster ahora está completa.
Después de la implementación de la base de datos de AWS
Podemos comenzar a cargar nuestros datos en el clúster o crear una nueva base de datos para el uso de su aplicación. Para conectarse, simplemente indique a sus aplicaciones o clientes que se conecten a la dirección IP pública o privada de uno de los servidores de la base de datos. Puede obtener esta información yendo a la página Nodos, como se muestra en la siguiente captura de pantalla:
Si desea acceder a los nodos de la base de datos directamente, puede usar el módulo web-SSH de ClusterControl en Node Actions -> SSH Console , que le brinda una experiencia similar a la de conectarse a través de un cliente SSH.
Para escalar el clúster agregando un nodo de base de datos, puede ir a Acciones de clúster (icono de pila del servidor) -> Agregar nodo -> Agregar un nodo de base de datos en una nueva instancia de nube y se le presentará el siguiente cuadro de diálogo:
Simplemente siga el asistente de implementación y configure su nueva instancia en consecuencia. Una vez creada la instancia, ClusterControl instalará, configurará y unirá el nodo al clúster automáticamente.
Eso es todo por ahora, amigos. ¡Feliz agrupamiento en la nube!