DEV Community

Monica Hillman for Magalu Cloud

Posted on

Como provisionar um cluster PostgreSQL no DBaaS da Magalu Cloud com failover automático

Bancos de dados relacionais continuam sendo componentes centrais em aplicações modernas. Quando o banco é crítico para o negócio, alta disponibilidade deixa de ser diferencial e passa a ser requisito.

A Magalu Cloud oferece o Database as a Service (DBaaS), que abstrai a complexidade operacional de bancos de dados gerenciados, incluindo replicação e failover automático.

Neste artigo, você vai aprender:

  • O que é um cluster PostgreSQL no DBaaS da Magalu Cloud
  • Quando faz sentido usar alta disponibilidade
  • Como provisionar um cluster PostgreSQL com failover automático usando a CLI mgc

O que é um cluster PostgreSQL

Um cluster PostgreSQL no DBaaS da Magalu Cloud é uma configuração de alta disponibilidade, formada por múltiplos nós do banco de dados:

  • 1 nó primário, responsável por leitura e escrita
  • Réplicas em espera (standby), distribuídas em Zonas de Disponibilidade diferentes
  • Failover automático, que promove uma réplica a primária em caso de falha

As alterações realizadas no nó primário são replicadas continuamente para as réplicas, reduzindo o tempo de indisponibilidade e o risco de perda de dados.

A distribuição entre Zonas de Disponibilidade (AZs) garante maior resiliência dentro de uma mesma região.


Quando usar um cluster PostgreSQL

Clusters PostgreSQL com failover automático são indicados quando a aplicação:

  • Não pode tolerar indisponibilidade prolongada
  • Precisa de replicação contínua de dados
  • Depende de alta disponibilidade para o negócio
  • Quer reduzir esforço operacional com gerenciamento de banco

Provisionamento via CLI (mgc)

Pré-requisitos

Antes de começar, você precisa:

  • Ter a CLI mgc instalada e configurada
  • Ter acesso à região desejada
  • Identificar a engine PostgreSQL e o tipo de instância adequado

1. Listar engines disponíveis

Primeiro, identifique a engine PostgreSQL disponível:

mgc dbaas engines list --status=ACTIVE
Enter fullscreen mode Exit fullscreen mode

Anote o id correspondente ao PostgreSQL (por exemplo, PostgreSQL 16).


2. Listar tipos de instância compatíveis

Em seguida, liste os tipos de instância disponíveis para essa engine:

mgc dbaas instance-types list \
  --engine-id="SEU_ENGINE_ID" \
  --status=ACTIVE
Enter fullscreen mode Exit fullscreen mode

Cada tipo de instância define CPU e memória de cada nó do banco.

Entendendo o compatible_product

No resultado, observe o campo:

  • SINGLE_INSTANCE - pode ser usado apenas para instâncias simples
  • CLUSTER - pode ser usado apenas para clusters com alta disponibilidade

Esse campo é informativo e serve para orientar a escolha correta do instance-type-id.


3. Criar um cluster PostgreSQL com failover automático

A criação do cluster é feita com o comando mgc dbaas clusters create.

Diferente de uma instância simples, o cluster já nasce com múltiplos nós e com alta disponibilidade configurada desde o início.

Apenas tipos de instância com compatible_product: CLUSTER podem ser utilizados neste comando.

Exemplo de criação de cluster

mgc dbaas clusters create \
  --name="meu-postgres-cluster" \
  --user="admin" \
  --password="SenhaSegura!" \
  --engine-id="ID_DA_ENGINE_POSTGRESQL" \
  --instance-type-id="ID_DO_INSTANCE_TYPE_CLUSTER" \
  --volume.size=100 \
  --volume.type="CLOUD_NVME20K"
Enter fullscreen mode Exit fullscreen mode

Principais parâmetros

  • --name
    Nome do cluster PostgreSQL

  • --user
    Usuário administrador do banco

  • --password
    Senha do usuário administrador

  • --engine-id
    Identificador da engine PostgreSQL

  • --instance-type-id
    Tipo de instância compatível com CLUSTER, que define CPU e memória de cada nó

  • --volume.size
    Tamanho do volume de dados em GiB

  • --volume.type
    Tipo de armazenamento gerenciado do DBaaS - Você pode verificar os valores na documentação.

Após a execução, o cluster entra em processo de provisionamento, o que pode levar alguns minutos.


4. Acompanhar o status do cluster e das instâncias

Para acompanhar o status do cluster:

mgc dbaas clusters get "ID_DO_CLUSTER"
Enter fullscreen mode Exit fullscreen mode

Após a criação, você pode listar os nós do cluster:

mgc dbaas instances list
Enter fullscreen mode Exit fullscreen mode

E obter detalhes de um nó específico:

mgc dbaas instances get "ID_DA_INSTANCIA"
Enter fullscreen mode Exit fullscreen mode

Failover automático na prática

Quando o cluster está ativo, o DBaaS da Magalu Cloud monitora continuamente o nó primário. Em caso de falha:

  • Uma réplica é promovida automaticamente a primária
  • O endpoint do cluster permanece o mesmo
  • A aplicação precisa apenas lidar com reconexões

Todo o processo ocorre sem intervenção manual.


Boas práticas

  • Utilize senhas fortes para usuários do banco
  • Escolha tipos de instância compatíveis com a carga da aplicação
  • Monitore o status das instâncias via CLI
  • Garanta que a aplicação lide bem com reconexões

Conclusão

Provisionar um cluster PostgreSQL com failover automático no DBaaS da Magalu Cloud permite unir simplicidade operacional e alta disponibilidade.

Com a CLI mgc, você consegue:

  • Identificar engines e tipos de instância
  • Criar clusters PostgreSQL com alta disponibilidade desde a criação
  • Contar com failover automático gerenciado pela plataforma
  • Monitorar o estado do banco de dados de forma centralizada

Isso reduz a complexidade operacional e permite que o time foque no desenvolvimento da aplicação, aproveitando a infraestrutura gerenciada da Magalu Cloud.

Top comments (0)