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

Cómo implementar ClusterControl en AWS para administrar su base de datos en la nube


ClusterControl es independiente de la infraestructura:se puede utilizar en su propio centro de datos en hosts físicos, así como en entornos de nube virtualizados. Todo lo que necesita es acceso ssh desde el host de ClusterControl a los nodos de la base de datos, y luego puede implementar MySQL/MariaDB independiente/replicado/agrupado, MongoDB (conjuntos de réplicas o clústeres fragmentados) o PostgreSQL (replicación de transmisión). En esta publicación de blog, lo guiaremos a través de los pasos para implementar ClusterControl en EC2.

Configuración de instancias en EC2

Los requisitos de hardware para ClusterControl se describen aquí. Esos están destinados a crear una plataforma de alto rendimiento para el servidor ClusterControl. Habiendo dicho eso, usaremos una pequeña instancia para nuestros propósitos de prueba (t2.micro); debería ser suficiente para nosotros.

Primero, debemos elegir una AMI. ClusterControl admite:

  • Redhat/CentOS/Oracle Linux 6 y posterior
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 y posterior

Vamos a usar Ubuntu 16.04.

Siguiente paso:tipo de instancia. Elegiremos t2.micro por ahora, aunque querrá usar instancias más grandes para configuraciones de producción. Para otros proveedores de nube, elija instancias con al menos 1 GB de memoria.

Vamos a implementar cuatro instancias a la vez, una para ClusterControl y tres para Percona XtraDB Cluster. Debe decidir dónde se deben implementar esas instancias (VPC o no, qué subred, etc.). Para nuestros fines de prueba, vamos a utilizar una VPC y una única subred. Por supuesto, la implementación de nodos en las subredes (zonas de disponibilidad) hace que su configuración tenga más probabilidades de sobrevivir si una de las AZ deja de estar disponible.

Para el almacenamiento, utilizaremos 100 GB de volumen SSD de propósito general (GP2). Esto debería ser suficiente para realizar algunas pruebas con un volumen razonable de datos.

Siguiente - grupos de seguridad. El acceso SSH es un requisito. Aparte de eso, debe abrir los puertos requeridos por la base de datos que planea implementar. Puede encontrar más información sobre qué puertos son necesarios en nuestro portal de soporte.

Finalmente, debe elegir uno de los pares de claves existentes o puede crear uno nuevo. Después de este paso, se lanzarán sus instancias.

Una vez que las instancias están en funcionamiento, es hora de instalar ClusterControl. Para ello, inicie sesión en una de las instancias y descargue el script de instalación de ClusterControl, install-cc:

[email protected]:~$ wget http://www.severalnines.com/downloads/cmon/install-cc
--2017-09-06 11:13:10--  http://www.severalnines.com/downloads/cmon/install-cc
Resolving www.severalnines.com (www.severalnines.com)... 107.154.146.155
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:10--  https://www.severalnines.com/downloads/cmon/install-cc
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:11--  https://severalnines.com/downloads/cmon/install-cc
Resolving severalnines.com (severalnines.com)... 107.154.238.155, 107.154.148.155
Connecting to severalnines.com (severalnines.com)|107.154.238.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56913 (56K) [text/plain]
Saving to: ‘install-cc’

install-cc                                           100%[=====================================================================================================================>]  55.58K   289KB/s    in 0.2s

2017-09-06 11:13:12 (289 KB/s) - ‘install-cc’ saved [56913/56913]

Luego, asegúrese de que se pueda ejecutar antes de ejecutarlo:

[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc

Al principio, obtendrá información sobre los requisitos de las distribuciones de Linux compatibles:

!!
Only RHEL/Centos 6.x|7.x, Debian 7.x|8.x, Ubuntu 12.04.x|14.04.x|16.04.x LTS versions are supported
Minimum system requirements: 2GB+ RAM, 2+ CPU cores
Server Memory: 990M total, 622M free
MySQL innodb_buffer_pool_size set to 512M

Severalnines would like your help improving our installation process.
Information such as OS, memory and install success helps us improve how we onboard our users.
None of the collected information identifies you personally.
!!
=> Would you like to help us by sending diagnostics data for the installation? (Y/n):

This script will add Severalnines repository server for deb and rpm packages and
install the ClusterControl Web Applicaiton and Controller.
An Apache and MySQL server will also be installed. An existing MySQL Server on this host can be used.

En algún momento deberá responder algunas preguntas sobre nombres de host, puertos y contraseñas.

=> The Controller hostname will be set to 172.30.4.20. Do you want to change it? (y/N):
=> Creating temporary staging dir s9s_tmp

=> Setting up the ClusterControl Web Application ...
=> Using web document root /var/www/html
=> No running MySQL server detected
=> Installing the default distro MySQL Server ...
=> Assuming default MySQL port is 3306. Do you want to change it? (y/N):

=> Enter the MySQL root password:
=> Enter the MySQL root password again:
=> Importing the Web Application DB schema and creating the cmon user.

=> Importing /var/www/html/clustercontrol/sql/dc-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Set a password for ClusterControl's MySQL user (cmon) [cmon]
=> Enter a CMON user password:
=> Enter the CMON user password again: => Creating the MySQL cmon user ...
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Creating UI configuration ...

Finalmente, obtendrá la confirmación de que se ha instalado ClusterControl. El script de instalación también intentará detectar su IP pública e imprimirá un enlace que se puede usar en su navegador para acceder a ClusterControl.

=> ClusterControl installation completed!
Open your web browser to http://172.30.4.20/clustercontrol and
enter an email address and new password for the default Admin User.

Determining network interfaces. This may take a couple of minutes. Do NOT press any key.
Public/external IP => http://34.230.71.40/clustercontrol
Installation successful. If you want to uninstall ClusterControl then run install-cc --uninstall.

Una vez finalizada la instalación, todavía hay una cosa que cuidar:el acceso SSH desde ClusterControl a los hosts restantes. A menos que ya tenga acceso SSH entre nodos (y puede usar ssh-copy-id), este será un proceso manual. En primer lugar, necesitamos generar una nueva clave ssh:

[email protected]:~# ssh-keygen -C 'galera_cluster' -f id_rsa_galera -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_galera.
Your public key has been saved in id_rsa_galera.pub.
The key fingerprint is:
SHA256:2tWOGXbrtc0Qh45NhNPzUSVdDzE9ANV1TJ0QBE5QrQY galera_cluster
The key's randomart image is:
+---[RSA 4096]----+
|         .o=**X*&|
|         Eo  + BO|
|          ..+ +.o|
|           + o +.|
|        S = o + o|
|       o o * * o |
|      . . o + =  |
|           . . = |
|            . . o|
+----[SHA256]-----+
[email protected]:~#

Podemos comprobar que se ha creado correctamente. También querrá copiar el contenido de la clave pública; la usaremos para crear sus copias en los nodos restantes.

[email protected]:~# cat id_rsa_galera.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYKil17MzTrNc70GIQlVoK6xLop9acfT3W6kBUGO4ybsvIA5Fss+WvT/DLsYMtukq2Eih93eO4amLRYQIeyWSjJ/bBwIF/LXL4v04GF8+wbDgCyiV/t9dSuXna9qFeawkUVcPjnmWnZqUoaP5QeovXTluxl54xEwbFm1oLT+fgWbaim5w9vVUK4+hAHaZ7wVvTPVsIt1B3nJgWJF0Sz+TJN87vSUg7xdshgzhapUotXlguFGVzmNKWLnEFDCK7RT41oh4y4rkKP7YLc+wFfRHYTnKyMIcf0/0VMyL+2AdwQp8RThbBommf2HGimF1hSyA9/fc+tLi7FVTg1bKKeXj4hwexeFAJZwoy3HyD3wQ/NwadpDVk5Pg7YYzdN2aCZfvo27qp3gdQQ2H+LF6LvDyQEkgRpFN+pHoWQvPjJJasjfIcfdaC9WmDiL4s5fXyCTQz/x0NaTXVkLBS9ibfOUw8AGdd36FvdqnNOFOlMLKLa359JhdpqXnH7ksiThcotQuFmV5Dc8M66vTDz9rvVZhNC0nME478RNBP0Bgj1BM26XdQlzozeaRmHGoZXcSQVJTXBC93+QN4+bRmWmxhhj5G5M7bFiQyal1VtugoUt8ZV4NiiG+KDd6yj5um8+CffD/BASGrv3vffH+AK7xtjchIv5su40+unecfSOtO98TiQw== galera_cluster

Ahora, en cada nodo restante, debe agregar esta clave pública en el archivo authorized_keys. Para ubuntu, es posible que desee limpiar su contenido primero si desea utilizar un inicio de sesión raíz. De forma predeterminada, solo el usuario de ubuntu se puede usar para conectarse a través de SSH. Tal configuración (usuario normal y sudo) también se puede usar con ClusterControl, pero aquí buscaremos un usuario root.

[email protected]:~# vim ~/.ssh/authorized_keys

Una vez que los archivos de claves_autorizadas en todos los nodos contengan nuestra clave pública, copiaremos nuestra clave pública en el directorio .ssh y haremos los cambios necesarios en los derechos de acceso:

[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera

Ahora podemos probar si el acceso SSH funciona como se esperaba:

[email protected]:~# ssh -i /root/.ssh/id_rsa_galera 172.30.4.46
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1022-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


[email protected]:~# logout
Connection to 172.30.4.46 closed.

Todo está bien. Es hora de configurar ClusterControl.

Complete algunos detalles de registro.

Una vez que haya iniciado sesión, aparecerá un asistente con la opción de implementar un nuevo clúster o importar uno existente.

Queremos implementar Percona XtraDB Cluster, así que iremos a "Implementar clúster de base de datos" y elegiremos la pestaña "MySQL Galera". Aquí tenemos que completar los detalles de acceso requeridos para la conectividad SSH. Configuraremos el usuario SSH como root y completaremos la ruta a nuestra clave SSH.

A continuación, definiremos un proveedor, una versión, una contraseña y una dirección IP para los hosts de nuestra base de datos. Tenga en cuenta que ClusterControl comprobará la conectividad SSH con los hosts de la base de datos de destino. Si todo funciona bien, verá marcas verdes. Si ve que la autenticación SSH falló, deberá investigar ya que el servidor ClusterControl no puede acceder a los hosts de su base de datos.

Luego, haga clic en Implementar para iniciar el proceso de implementación.

Puede realizar un seguimiento del progreso de la implementación en el monitor de actividad.

Recuerde que la implementación es solo el primer paso. Operar una base de datos requiere que supervise el rendimiento de sus hosts, instancias de base de datos, consultas y administre copias de seguridad, corrija fallas y otras anomalías, administre proxies, actualizaciones, etc. ClusterControl puede administrar todos estos aspectos por usted, así que pruébelo y cuéntanos cómo te va.