MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como implantar o ClusterControl na AWS para gerenciar seu banco de dados na nuvem



ClusterControl é independente de infraestrutura - pode ser usado em seu próprio datacenter em hosts físicos, bem como em ambientes de nuvem virtualizados. Tudo o que você precisa é de acesso ssh do host ClusterControl aos nós do banco de dados e, em seguida, pode implantar MySQL/MariaDB autônomo/replicado/em cluster, MongoDB (conjuntos de réplicas ou clusters fragmentados) ou PostgreSQL (replicação de streaming). Nesta postagem do blog, orientaremos você nas etapas para implantar o ClusterControl no EC2.

Configurando instâncias no EC2

Os requisitos de hardware para ClusterControl são descritos aqui. Estes destinam-se a criar uma plataforma de alto desempenho para o servidor ClusterControl. Dito isso, usaremos uma pequena instância para fins de teste (t2.micro) - deve ser suficiente para nós.

Primeiro, precisamos escolher uma AMI. O ClusterControl suporta:
  • Redhat/CentOS/Oracle Linux 6 e posterior
  • Ubuntu 12.04/14.04/16.04 LTS
  • Debian 7.0 e posterior

Vamos usar o Ubuntu 16.04.

Próxima etapa - tipo de instância. Escolheremos t2.micro por enquanto, embora você queira usar instâncias maiores para configurações de produção. Para outros provedores de nuvem, escolha instâncias com pelo menos 1 GB de memória.

Vamos implantar quatro instâncias de uma vez, uma para ClusterControl e três para Percona XtraDB Cluster. Você precisa decidir onde essas instâncias devem ser implantadas (VPC ou não, qual sub-rede etc). Para nossos propósitos de teste, usaremos uma VPC e uma única sub-rede. Obviamente, a implantação de nós nas sub-redes (zonas de disponibilidade) aumenta a probabilidade de sua configuração sobreviver se uma das AZs ficar indisponível.

Para armazenamento, usaremos 100 GB de volume SSD de uso geral (GP2). Isso deve ser suficiente para realizar alguns testes com um volume razoável de dados.

Próximo - grupos de segurança. O acesso SSH é um requisito. Fora isso, você precisa abrir as portas exigidas pelo banco de dados que planeja implantar. Você pode encontrar mais informações sobre quais portas são necessárias em nosso portal de suporte.

Finalmente, você precisa escolher um dos pares de chaves existentes ou pode criar um novo. Após esta etapa, suas instâncias serão iniciadas.

Assim que as instâncias estiverem funcionando, é hora de instalar o ClusterControl. Para isso, faça login em uma das instâncias e baixe o script de instalação do 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]

Em seguida, verifique se ele pode ser executado antes de executá-lo:
[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc

No início, você obterá algumas informações sobre os requisitos das distribuições Linux suportadas:
!!
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.

Em algum momento você terá que responder algumas perguntas sobre nomes de host, portas e senhas.
=> 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, você receberá a confirmação de que o ClusterControl foi instalado. O script de instalação também tentará detectar seu IP público e imprimir um link que pode ser usado em seu navegador para acessar o 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.

Depois que a instalação estiver concluída, ainda há uma coisa para cuidar - acesso SSH do ClusterControl aos hosts restantes. A menos que você já tenha acesso SSH entre nós (e possa usar ssh-copy-id), este será um processo manual. Em primeiro lugar, precisamos gerar uma nova chave 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 verificar se ele foi criado corretamente. Você também desejará copiar o conteúdo da chave pública - nós a usaremos para criar suas cópias nos nós 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

Agora, em cada nó restante, você precisa adicionar essa chave pública ao arquivo authorized_keys. Para o Ubuntu, você pode querer limpar seu conteúdo primeiro se quiser usar um login root. Por padrão, apenas o usuário do Ubuntu pode ser usado para se conectar através do SSH. Essa configuração (usuário regular e sudo) também é possível usar com o ClusterControl, mas aqui vamos para um usuário root.
[email protected]:~# vim ~/.ssh/authorized_keys

Uma vez que os arquivos authorized_keys em todos os nós contiverem nossa chave pública, copiaremos nossa chave pública para o diretório .ssh e faremos as alterações necessárias nos direitos de acesso:
[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera

Agora podemos testar se o acesso SSH funciona como esperado:
[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.

Tudo é bom. É hora de configurar o ClusterControl.

Preencha alguns dados cadastrais.

Depois de fazer login, um assistente aparecerá com a opção de implantar um novo cluster ou importar um existente.

Queremos implantar o Percona XtraDB Cluster, então vamos para “Deploy Database Cluster” e escolhemos a guia “MySQL Galera”. Aqui temos que preencher os detalhes de acesso necessários para a conectividade SSH. Definiremos o usuário SSH como root e preencheremos o caminho para nossa chave SSH.

Em seguida, definiremos um fornecedor, versão, senha e endereços IP para nossos hosts de banco de dados. Lembre-se de que o ClusterControl verificará a conectividade SSH com os hosts do banco de dados de destino. Se tudo funcionar bem, você verá carrapatos verdes. Se você perceber que a autenticação SSH falhou, será necessário investigar, pois o servidor ClusterControl não consegue acessar seus hosts de banco de dados.

Em seguida, clique em Deploy para iniciar o processo de implantação.

Você pode acompanhar o progresso da implantação no monitor de atividades.

Lembre-se de que a implantação é apenas o primeiro passo. Operar um banco de dados requer que você monitore o desempenho de seus hosts, instâncias de banco de dados, consultas e gerencie backups, corrija falhas e outras anomalias, gerencie proxies, atualizações, etc. O ClusterControl pode gerenciar todos esses aspectos para você, então experimente e deixe-nos saber como você se sai.