Patroni e etcd - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Patroni e etcd

Recomendamos o Patroni como uma solução para fornecer HA com gerenciamento automático de failover. O Patroni é um gerenciador de failover automático de código aberto para bancos de dados PostgreSQL. Você pode usar o Patroni como modelo para criar sua própria solução personalizada de HA usando Python e um armazenamento de configuração distribuído, como o etcd, para máxima acessibilidade.

O Patroni também fornece APIs para verificar o status do serviço do PostgreSQL e os perfis de cada instância ou nó de banco de dados. Você deve instalar o Patroni em cada instância de banco de dados para que ele funcione com o etcd (armazenamento de configuração distribuído).

Por padrão, o Patroni configura o PostgreSQL para replicação assíncrona. A escolha do método de replicação depende de suas considerações de negócios. O Patroni é uma das melhores ferramentas para configurar a HA porque é altamente configurável. Confira algumas das vantagens de usar o Patroni:

  1. É fácil alternar entre diferentes modos de replicação (síncrona e assíncrona).

  2. O Patroni tem uma API REST robusta. O Patroni usa essa API para realizar failovers durante a corrida pela liderança usando o HAProxy ou outro balanceador de carga para realizar verificações de integridade de HTTP.

  3. O Patroni deve deixar temporariamente de gerenciar o cluster, mantendo o estado do cluster no Distributed Configuration Store (DCS). Por exemplo, você não quer que um failover ocorra durante uma janela de manutenção manual. O Patroni oferece comandos de pausa e retomada para que você possa evitar períodos de inatividade indesejados.

  4. Para evitar o problema de split-brain, o Patroni deve garantir que o PostgreSQL não aceite nenhuma confirmação de transação depois que a chave de líder expirar no DCS. O Patroni também é compatível com dispositivos como o Watchdog para evitar o problema de split-brain. Para obter mais informações sobre o problema de split-brain e o Watchdog, consulte Watchdog support na documentação do Patroni.

Arquitetura

O diagrama a seguir mostra a arquitetura para configurar a HADR para seu banco de dados PostgreSQL on-premises no Amazon EC2 usando o Patroni e o etcd.

Arquitetura do Patroni

O diagrama mostra o seguinte fluxo de trabalho:

  1. Crie instâncias do EC2.

  2. Instale um banco de dados PostgreSQL.

  3. Instale e configure o Patroni em instâncias do EC2.

  4. Crie e configure um Network Load Balancer.

  5. Configure cada banco de dados PostgreSQL no etcd (para Patroni) para obter HA.

Considerações

Recomendamos que considere as observações a seguir antes de iniciar a migração usando o Patroni:

  • Os usuários devem ter experiência em DCS e adminstração do PostgreSQL para usar o Patroni.

  • O Patroni tem uma curva de aprendizado acentuada e muitas opções de configuração para escolher.

  • Você deve ter portas extras dedicadas ao Patroni.