O ClusterControl 1.6 vem com maior integração com AWS, Azure e Google Cloud, então agora é possível lançar novas instâncias e implantar MySQL, MariaDB, MongoDB e PostgreSQL diretamente da interface de usuário do ClusterControl. Neste blog, mostraremos como implantar um cluster na Amazon Web Services.
Observe que este novo recurso requer dois módulos chamados clustercontrol-cloud e clustercontrol-clud . O primeiro é um daemon auxiliar que estende a capacidade CMON de comunicação na nuvem, enquanto o último é um cliente gerenciador de arquivos para fazer upload e download de arquivos em instâncias de nuvem. Ambos os pacotes são dependências do pacote clustercontrol UI, que será instalado automaticamente se não existirem. Consulte a página de documentação de componentes para obter detalhes.
Credenciais de nuvem
ClusterControl permite que você armazene e gerencie suas credenciais de nuvem em Integrações (menu lateral) -> Provedores de Nuvem:
As plataformas de nuvem suportadas nesta versão são Amazon Web Services, Google Cloud Platform e Microsoft Azure. Nesta página, você pode adicionar novas credenciais de nuvem, gerenciar as existentes e também conectar-se à sua plataforma de nuvem para gerenciar recursos.
As credenciais que foram configuradas aqui podem ser usadas para:
- Gerenciar recursos de nuvem
- Implantar bancos de dados na nuvem
- Fazer upload de backup para armazenamento em nuvem
Veja a seguir o que você veria se clicasse no botão "Gerenciar AWS":
Você pode executar tarefas de gerenciamento simples em suas instâncias de nuvem. Você também pode verificar as configurações da VPC na guia "AWS VPC", conforme mostrado na captura de tela a seguir:
Os recursos acima são úteis como referência, especialmente ao preparar suas instâncias de nuvem antes de iniciar as implantações de banco de dados.
Implantação de banco de dados na nuvem
Nas versões anteriores do ClusterControl, a implantação de banco de dados na nuvem seria tratada de forma semelhante à implantação em hosts padrão, onde você precisava criar as instâncias de nuvem antecipadamente e fornecer os detalhes e credenciais da instância no assistente "Implantar cluster de banco de dados". O procedimento de implantação não tinha conhecimento de nenhuma funcionalidade e flexibilidade extras no ambiente de nuvem, como IP dinâmico e alocação de nome de host, endereço IP público NAT, elasticidade de armazenamento, configuração de rede de nuvem privada virtual e assim por diante.
Com a versão 1.6, você só precisa fornecer as credenciais de nuvem, que podem ser gerenciadas pela interface "Cloud Providers" e seguir o assistente de implantação "Deploy in the Cloud". Na interface do usuário do ClusterControl, clique em Deploy e você verá as seguintes opções:
No momento, os provedores de nuvem suportados são os três grandes players - Amazon Web Service (AWS), Google Cloud e Microsoft Azure. Vamos integrar mais provedores na versão futura.
Na primeira página, você verá as opções Cluster Details:
Nesta seção, você precisaria selecionar o tipo de cluster compatível, MySQL Galera Cluster, MongoDB Replica Set ou PostgreSQL Streaming Replication. A próxima etapa é escolher o fornecedor com suporte para o tipo de cluster selecionado. No momento, os seguintes fornecedores e versões são suportados:
- MySQL Galera Cluster - Percona XtraDB Cluster 5.7, MariaDB 10.2
- MongoDB Cluster - MongoDB 3.4 da MongoDB, Inc e Percona Server para MongoDB 3.4 da Percona (somente conjunto de réplicas).
- PostgreSQL Cluster - PostgreSQL 10.0 (somente replicação de streaming).
Na próxima etapa, você verá a seguinte caixa de diálogo:
Aqui você pode configurar o tipo de cluster selecionado de acordo. Escolha o número de nós. O nome do cluster será usado como a tag da instância, para que você possa reconhecer facilmente essa implantação no painel do seu provedor de nuvem. Nenhum espaço é permitido no nome do cluster. O modelo My.cnf é o arquivo de configuração do modelo que o ClusterControl usará para implantar o cluster. Ele deve estar localizado em /usr/share/cmon/templates no host ClusterControl. O resto dos campos são bastante auto-explicativos.
A próxima caixa de diálogo é selecionar as credenciais da nuvem:
Você pode escolher as credenciais de nuvem existentes ou criar uma nova clicando no botão "Adicionar nova credencial". O próximo passo é escolher a configuração da máquina virtual:
A maioria das configurações nesta etapa é preenchida dinamicamente a partir do provedor de nuvem pelas credenciais escolhidas. Você pode configurar o sistema operacional, o tamanho da instância, a configuração da VPC, o tipo e o tamanho do armazenamento e também especificar o local da chave SSH no host ClusterControl. Você também pode permitir que o ClusterControl gere uma nova chave especificamente para essas instâncias. Ao clicar no botão "Add New" ao lado de Virtual Private Cloud, você será apresentado a um formulário para criar uma nova VPC:
VPC é uma infraestrutura de rede lógica que você tem em sua plataforma de nuvem. Você pode configurar sua VPC modificando seu intervalo de endereços IP, criando sub-redes, configurando tabelas de rotas, gateways de rede e configurações de segurança. É recomendável implantar sua infraestrutura de banco de dados nesta rede para controle de isolamento, segurança e roteamento.
Ao criar uma nova VPC, especifique o nome da VPC e o bloco de endereço IPv4 com sub-rede. Em seguida, escolha se o IPv6 deve fazer parte da rede e a opção de locação. Você pode usar essa rede virtual para sua infraestrutura de banco de dados.
A última etapa é o resumo da implantação:
Neste estágio, você precisa escolher em qual sub-rede na rede virtual escolhida você deseja que o banco de dados seja executado. Observe que a sub-rede escolhida DEVE ter um endereço IPv4 público de atribuição automática habilitado. Você também pode criar uma nova sub-rede nesta VPC clicando no botão "Add New Subnet". Verifique se tudo está correto e clique no botão "Implantar Cluster" para iniciar a implantação.
Você pode então monitorar o progresso clicando em Activity -> Jobs -> Create Cluster -> Full Job Details:
Dependendo das conexões, pode levar de 10 a 20 minutos para ser concluído. Uma vez feito, você verá um novo cluster de banco de dados listado no painel ClusterControl. Para o cluster de replicação de streaming PostgreSQL, talvez seja necessário conhecer os endereços IP mestre e escravo assim que a implantação for concluída. Basta ir à guia Nós e você verá os endereços IP públicos e privados na lista de nós à esquerda:
Seu cluster de banco de dados agora está implantado e em execução na AWS.
No momento, o dimensionamento funciona de maneira semelhante ao host padrão, onde você precisa criar uma instância de nuvem manualmente com antecedência e especificar o host em ClusterControl -> escolha o cluster -> Adicionar nó.
Sob o capô, o processo de implantação faz o seguinte:
- Criar instâncias de nuvem
- Configurar grupos de segurança e rede
- Verifique a conectividade SSH do ClusterControl com todas as instâncias criadas
- Implantar banco de dados em todas as instâncias
- Configure os links de cluster ou replicação
- Registre a implantação no ClusterControl
Observe que esse recurso ainda está em beta. No entanto, você pode usar esse recurso para acelerar seu ambiente de desenvolvimento e teste controlando e gerenciando o cluster de banco de dados em diferentes provedores de nuvem a partir de uma única interface de usuário.
Backup de banco de dados na nuvem
Esse recurso existe desde o ClusterControl 1.5.0 e agora adicionamos suporte ao Azure Cloud Storage. Isso significa que agora você pode carregar e baixar o backup criado em todos os três principais provedores de nuvem (AWS, GCP e Azure). O processo de upload acontece logo após o backup ser criado com sucesso (se você alternar "Upload Backup to the Cloud") ou você pode clicar manualmente no botão do ícone da nuvem da lista de backups:
Você pode baixar e restaurar backups da nuvem, caso tenha perdido seu armazenamento de backup local ou se precisar reduzir o uso de espaço em disco local para seus backups.
Limitações atuais
Existem algumas limitações conhecidas para o recurso de implantação na nuvem, conforme indicado abaixo:
- Atualmente, não há 'contabilidade' para as instâncias de nuvem. Você precisará remover manualmente as instâncias de nuvem se remover um cluster de banco de dados.
- Você não pode adicionar ou remover um nó automaticamente com instâncias de nuvem.
- Você não pode implantar um balanceador de carga automaticamente com uma instância de nuvem.
Testamos extensivamente o recurso em muitos ambientes e configurações, mas sempre há casos de canto que podemos ter perdido. Para obter mais informações, consulte o log de alterações.
Feliz agrupamento na nuvem!