MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

A maneira fácil de implantar um cluster MySQL Galera na AWS

O ClusterControl 1.7.3 vem com uma melhoria notável na integração na nuvem. É possível implantar um cluster de replicação MySQL e PostgreSQL na nuvem, bem como iniciar automaticamente uma instância de nuvem e dimensionar seu cluster de banco de dados adicionando um novo nó de banco de dados.

Esta postagem do blog mostra como implantar facilmente um Galera Cluster usando o ClusterControl na AWS. Esse novo recurso faz parte do ClusterControl Community Edition, que vem com recursos gratuitos de implantação e monitoramento. Isso significa que você pode aproveitar esse recurso sem nenhum custo!

Arquitetura de cluster de banco de dados ClusterControl

O diagrama a seguir resume nossa arquitetura geral de clusters de banco de dados.

O servidor ClusterControl está localizado fora da infraestrutura da AWS, permitindo uma visibilidade justa ao nosso cluster de banco de dados (localizado em Frankfurt:eu-central-1). O servidor ClusterControl DEVE ter um endereço IP público dedicado. Isso ocorre porque o endereço IP será concedido pelo ClusterControl no servidor de banco de dados e no grupo de segurança da AWS. A versão do banco de dados Galera que vamos implantar é MariaDB Cluster 10.3, usando ClusterControl 1.7.3.

Preparando o ambiente da AWS


O ClusterControl é capaz de implantar um cluster de banco de dados em plataformas de nuvem compatíveis, como AWS, Google Cloud Platform (GCP) e Microsoft Azure. A primeira coisa que precisamos configurar é obter as chaves de acesso da AWS para permitir que o ClusterControl execute solicitações programáticas aos serviços da AWS. Você pode usar a chave de acesso da conta root, mas essa não é a maneira recomendada. É melhor criar um usuário dedicado do Identity and Access Management (IAM) exclusivamente para essa finalidade.

Faça login no seu Console AWS -> Minhas credenciais de segurança -> Usuários -> Adicionar usuário . Especifique o usuário e escolha "Acesso programático" como o Tipo de acesso:

Na próxima página, crie um novo grupo de usuários clicando no botão "Criar group" e dê o nome do grupo "DatabaseAutomation". Atribua o seguinte tipo de acesso:

  • AmazonEC2FullAccess
  • AmazonVPCFullAccess
  • AmazonS3FullAccess (somente se você planeja armazenar o backup do banco de dados no AWS S3)

Marque a caixa de seleção DatabaseAutomation e clique em "Adicionar usuário ao grupo":

Opcionalmente, você pode atribuir tags na próxima página. Caso contrário, apenas prossiga para criar o usuário. Você deve obter as duas coisas mais importantes, ID da chave de acesso e chave de acesso secreta.

Baixe o arquivo CSV e armazene-o em algum lugar seguro. Agora estamos prontos para automatizar a implantação na nuvem.

Instale o ClusterControl no respectivo servidor:

$ whoami

root

$ wget http://severalnines.com/downloads/cmon/install-cc

$ chmod 755 install-cc

$ ./install-cc

Siga as instruções de instalação e vá para http://192.168.0.11/clustercontrol e crie o usuário e senha super admin.

Para permitir que o ClusterControl execute a implantação automática na nuvem, é necessário criar credenciais de nuvem para a região selecionada com um ID e segredo de chave da AWS válidos. Vá para Barra Lateral -> Integrações -> Provedores de Nuvem -> Adicione sua primeira Credencial de Nuvem -> Amazon Web Services e insira os detalhes necessários e escolha Frankfurt como a região padrão:

Esta credencial será usada pelo ClusterControl para automatizar a implantação e o gerenciamento do cluster. Neste ponto, estamos prontos para implantar nosso primeiro cluster.

Implantação de cluster de banco de dados


Vá para Deploy -> Deploy in the Cloud -> MySQL Galera -> MariaDB 10.3 -> Configure Cluster para prosseguir para a próxima página.

Na seção Configurar cluster, certifique-se de que o número de nós seja 3 e forneça um nome de cluster e uma senha raiz do MySQL:

Em Selecionar credencial, escolha uma credencial chamada "AWS Frankfurt" e prossiga para a próxima página clicando em "Selecionar máquina virtual". Escolha o sistema operacional e o tamanho da instância preferidos. É recomendável executar nossa infraestrutura dentro de uma nuvem privada para que possamos obter um endereço IP interno dedicado para nossas instâncias de nuvem e os hosts não sejam expostos diretamente à rede pública. Clique no botão "Add New" ao lado do campo Virtual Private Cloud (VPC) e dê uma sub-rede de 10.10.0.0/16 para esta rede:

A VPC que criamos é uma nuvem privada e não possui conectividade com a Internet. Para que o ClusterControl possa implantar e gerenciar os hosts de fora da rede AWS, temos que permitir a conectividade com a Internet para esta VPC. Para isso, temos que fazer o seguinte:
  1. Criar um gateway de Internet
  2. Adicionar roteamento externo à tabela de rotas
  3. Associar a sub-rede à tabela de rotas

Para criar um gateway de internet, faça login em AWS Management Console -> VPC -> Internet Gateways -> Create internet gateway -> atribua um nome para este gateway . Em seguida, selecione o gateway criado na lista e vá para Ações -> Anexar à VPC -> selecione a VPC para a lista suspensa -> Anexar . Agora, anexamos um gateway de Internet à nuvem privada. No entanto, precisamos configurar a rede para encaminhar todas as solicitações externas por meio desse gateway de internet. Portanto, temos que adicionar uma rota padrão à tabela de rotas. Vá para VPC -> Tabelas de rotas -> selecione a tabela de rotas -> Editar rotas e especifique a rede de destino, 0.0.0.0/0 e o destino (o ID do gateway de internet criado) conforme abaixo:

Então, temos que associar a sub-rede do banco de dados a esta rede para que ela atribua todas as instâncias criadas dentro desta rede à rota padrão que criamos anteriormente, selecione a tabela de rotas -> Editar associação de sub-rede -> atribua a sub-rede do banco de dados , como mostrado abaixo:

A VPC agora está pronta para ser usada pelo ClusterControl para a implantação.

Depois de criada, selecione a VPC criada na lista suspensa. Para a chave SSH, pediremos ao ClusterControl para gerá-la automaticamente:

A chave SSH gerada estará localizada dentro do servidor ClusterControl no diretório /var/lib/cmon/autogenerated_ssh_keys/s9s/.

Clique em "Resumo da implantação". Nesta página, temos que atribuir uma sub-rede da VPC ao cluster de banco de dados. Como esta é uma nova VPC, ela não possui sub-rede e precisamos criar uma nova. Clique no botão "Add New Subnet" e atribua 10.10.1.0/24 como a rede para nosso cluster de banco de dados:

Por fim, selecione a sub-rede create na caixa de texto e clique em "Deploy Cluster":

Você pode monitorar o progresso do trabalho em Activity -> Jobs -> Criar cluster . O ClusterControl executará as etapas de pré-instalação necessárias, como criar as instâncias de nuvem, grupo de segurança, gerar chave SSH e assim por diante, antes que as etapas de instalação reais comecem.

Quando o cluster estiver pronto, você deverá ver o seguinte cluster no painel ClusterControl:

Nossa implantação de cluster agora está concluída.

Pós implantação do banco de dados da AWS


Podemos começar a carregar nossos dados no cluster ou criar um novo banco de dados para o uso do seu aplicativo. Para se conectar, basta instruir seus aplicativos ou clientes a se conectarem ao endereço IP privado ou público de um dos servidores de banco de dados. Você pode obter essas informações acessando a página Nodes, conforme mostrado na captura de tela a seguir:

Se você gosta de acessar os nós do banco de dados diretamente, você pode usar o módulo Web-SSH do ClusterControl em Node Actions -> SSH Console , que oferece uma experiência semelhante, como conectar-se via cliente SSH.

Para dimensionar o cluster adicionando um nó de banco de dados, basta acessar Ações de cluster (ícone de pilha do servidor) -> Adicionar nó -> Adicionar um nó de banco de dados em uma nova instância de nuvem e você verá a seguinte caixa de diálogo:

Basta seguir o assistente de implantação e configurar sua nova instância de acordo. Depois que a instância for criada, o ClusterControl instalará, configurará e unirá o nó ao cluster automaticamente.

Por enquanto é isso, pessoal. Feliz agrupamento na nuvem!