Compartilhar via


Práticas recomendadas de arquitetura para Banco de Dados do Azure para PostgreSQL

Banco de Dados do Azure para PostgreSQL é um serviço de banco de dados relacional em Azure baseado no banco de dados relacional de software livre do PostgreSQL. É uma solução de banco de dados totalmente gerenciada e baseada em nuvem que dá suporte a cargas de trabalho críticas com desempenho previsível, segurança, alta disponibilidade e escalabilidade dinâmica. Banco de Dados do Azure para PostgreSQL é baseado na versão comunitária do mecanismo de banco de dados PostgreSQL. Ele é compatível com a edição de comunidade do servidor PostgreSQL e dá suporte a recursos de extensão do PostgreSQL, como PostGIS e TimescaleDB.

Este artigo pressupõe que, como arquiteto, você revisou as opções de dados Azure e escolheu Banco de Dados do Azure para PostgreSQL como o armazenamento de dados para sua carga de trabalho. As diretrizes neste artigo fornecem recomendações arquitetônicas mapeadas para os princípios dos pilares da Estrutura Well-Architected.

Escopo da tecnologia

Esta revisão se concentra nas decisões interrelacionadas para os seguintes recursos de Azure:

  • Banco de Dados do Azure para PostgreSQL

Reliability

A finalidade do pilar confiabilidade é fornecer funcionalidade contínua criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.

princípios de design de confiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.

Lista de verificação de design de carga de trabalho

  • Familiarize-se com as diretrizes de confiabilidade do produto do Banco de Dados do Azure para PostgreSQL.
    Para obter mais informações, consulte os seguintes recursos:

  • Alinhe seus destinos de confiabilidade e recuperação para Banco de Dados do Azure para PostgreSQL com seus destinos de carga de trabalho. Escolha um SKU apropriado do Banco de Dados do Azure para PostgreSQL que possa dar suporte aos seus objetivos de confiabilidade e recuperação.

  • Determine as configurações apropriadas de alta disponibilidade e redundância para suas instâncias de Banco de Dados do Azure para PostgreSQL. Determine se você precisa de configurações zonais ou com redundância de zona para atender aos seus requisitos de confiabilidade.

  • Incorpore a recuperação de suas instâncias de Banco de Dados do Azure para PostgreSQL em seu planejamento e exercícios de recuperação de desastre. Verifique se toda a sua carga de trabalho é recuperável de acordo com seus objetivos de recuperação.

  • Incorpore suas instâncias de Banco de Dados do Azure para PostgreSQL em sua plataforma de observabilidade. Habilite métricas aprimoradas para monitorar a saúde da sua instância. Inclua monitoramento da saúde em alta disponibilidade em sua solução de monitoramento.

Recomendações de configuração

Recommendation Benefit
Selecione a configuração de alta disponibilidade apropriada. Quando a alta disponibilidade é configurada, o servidor Banco de Dados do Azure para PostgreSQL provisiona e gerencia automaticamente uma réplica em espera. Essa configuração garante que o serviço permaneça disponível e não perca dados durante uma interrupção de zona.
Configurar backups com redundância geográfica. Réplicas de leitura entre regiões podem ser implantadas para proteger seus bancos de dados contra falhas no nível da região. Os backups com redundância geográfica são habilitados em regiões selecionadas e ajudam na recuperação de desastre se a região do servidor primário não estiver disponível.

A redundância geográfica também pode ser obtida usando um cofre de Backup do Azure para armazenamento de longo prazo dos pontos de recuperação. Se ocorrer uma interrupção regional ou desastre, você poderá usar o Backup para restaurar o servidor de banco de dados para uma região emparelhada por Azure, o que minimiza o tempo de inatividade.

Backup do Azure também fornece redundância geográfica para Banco de Dados do Azure para PostgreSQL. Esse recurso aumenta a eficiência e reduz o tempo de inatividade durante desastres ou interrupções regionais.
Teste regularmente sua estratégia de backup e restauração. Testar regularmente sua estratégia de backup e restauração garante que você possa recuperar seus bancos de dados e manter operações se ocorrer uma falha.

Segurança

O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade à carga de trabalho.

Os princípios de design Security fornecem uma estratégia de design de alto nível para atingir essas metas aplicando abordagens ao design técnico de Banco de Dados do Azure para PostgreSQL.

Lista de verificação de design de carga de trabalho

  • Examine a linha de base de segurança. Para aprimorar a postura de segurança da carga de trabalho, examine a linha de base de segurança do Azure para o Banco de Dados do Azure para PostgreSQL.

  • Implemente o gerenciamento de identidades e acesso rigoroso, condicional e auditável. Use Microsoft Entra ID para autenticação e autorização para aprimorar o gerenciamento de identidade.

  • Aplicar controles de segmentação e segurança de rede. Use o firewall interno no nível do servidor junto com mecanismos de firewall de rede virtual para isolar sua instância de outros componentes de carga de trabalho e redes públicas.

  • Use recursos de segurança nativos para adicionar camadas extras de proteção. Ajude a evitar atividades mal-intencionadas configurando a segurança em nível de linha e a limitação de conexão.

Recomendações de configuração

Recommendation Benefit
Implemente grupos de segurança de rede e firewalls para controlar o acesso ao banco de dados. Como parte do modelo de Confiança Zero para segurança, use a segmentação de rede para restringir caminhos de comunicação entre componentes, como servidores de aplicativo e banco de dados, apenas para o que é necessário. Esse recurso pode ser implementado usando grupos de segurança de rede e grupos de segurança de aplicativos.
Conecte-se aos seus bancos de dados usando Link Privado do Azure. Link Privado permite criar pontos de extremidade privados para Banco de Dados do Azure para PostgreSQL para estender o serviço dentro de sua rede virtual.
Use Microsoft Entra ID para autenticação e autorização para aprimorar o gerenciamento de identidade. Você pode usar Microsoft Entra autenticação para se conectar a Banco de Dados do Azure para PostgreSQL usando identidades gerenciadas em Microsoft Entra.
Configure a segurança em nível de linha. A segurança em nível de linha é um recurso de segurança do PostgreSQL que permite que os administradores de banco de dados definam políticas para controlar como linhas específicas de dados exibem e operam para uma ou mais funções. A segurança em nível de linha é um filtro extra que você pode aplicar a uma tabela de banco de dados PostgreSQL.
Se necessário para conformidade, use CMKs (chaves gerenciadas pelo cliente) para criptografia de dados e armazene suas chaves em Azure Key Vault. Os CMKs oferecem controle total do ciclo de vida da chave de criptografia, incluindo a rotação de chaves, para se alinhar às políticas corporativas. Key Vault habilita o gerenciamento centralizado e a organização de suas chaves de criptografia em suas próprias instâncias de Key Vault dedicadas.
Para os requisitos de segurança mais altos, habilite a computação confidencial para proteger os dados em uso com criptografia baseada em hardware. A computação confidencial fornece criptografia baseada em hardware para operações de processamento de dados. As organizações que processam dados confidenciais em setores altamente regulamentados podem atender a requisitos regulatórios rigorosos, mantendo o desempenho do banco de dados.
Habilite a limitação de conexão para endereços IP com excesso de tentativas de entrada com falha. Definir o parâmetro do connection_throttling servidor para enabled ajudar a proteger seus bancos de dados contra tentativas de entrada mal-intencionadas e ataques de DDoS (negação de serviço distribuído) limitando tentativas de conexão repetidas do mesmo endereço IP.
Realize auditorias de segurança regularmente. A realização regular de auditorias de segurança ajuda a identificar e corrigir possíveis vulnerabilidades.

Otimização de custos

A otimização de custos se concentra na na detecção de padrões de gastos, na priorização de investimentos em áreas críticas e na otimização de outras para atender ao orçamento da organização e, ao mesmo tempo, aos requisitos comerciais.

Os princípios de design Cost Optimization fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no design técnico relacionado a Banco de Dados do Azure para PostgreSQL e seu ambiente.

Lista de verificação de design de carga de trabalho

  • Estimar o custo inicial. Como parte do exercício de modelagem de custos, use a calculadora de preços Azure para avaliar os custos aproximados associados ao Banco de Dados do Azure para PostgreSQL em sua carga de trabalho.

  • Escolha a camada de serviço certa para sua carga de trabalho. Determine se o tipo de preço Com Capacidade de Intermitência, Uso Geral ou Otimizado para Memória para recursos computacionais atende as necessidades do seu caso de uso.

  • Aplique uma estratégia de dimensionamento bem informada. Para determinar quando e como dimensionar seus recursos de Banco de Dados do Azure para PostgreSQL, observe e analise continuamente a capacidade e a demanda da carga de trabalho.

  • Aproveite os descontos disponíveis. Considere reservas de recursos computacionais para um ou três anos. Instâncias reservadas podem economizar custos significativos para recursos de computação.

  • Use o armazenamento provisionado. Não há custo adicional para o armazenamento de backup até 100% do armazenamento total do servidor provisionado.

  • Entenda os custos de redundância. O uso de configurações zonais ou com redundância de zona duplica os custos da instância, por isso avalie o projeto de redundância com atenção.

  • Entenda os custos de instância protegida e do armazenamento de backup. Ao fazer backup Banco de Dados do Azure para PostgreSQL usando Backup do Azure, você incorre em taxas de instância protegidas para cada 250 GB e taxas de armazenamento de backup com base no total de dados armazenados e no tipo de redundância.

  • Implante na mesma região que o aplicativo. Implante na mesma região que seus aplicativos para minimizar os custos de transferência.

  • Consolide bancos de dados e servidores. Quando prático, a consolidação de vários bancos de dados e servidores em um único servidor pode ajudar a reduzir os custos.

Recomendações de configuração

Recommendations Benefits
Escolha o tipo e a SKU corretos. Escolher o tipo e a SKU corretos ajuda a evitar o desperdício de dinheiro com recursos superprovisionados. Assistente do Azure fornece recomendações, incluindo sugestões para redimensionamento de servidores, para otimizar e reduzir seus gastos gerais com o Azure.
Dimensione os recursos de computação e armazenamento quando a demanda de carga de trabalho for alterada. Você pode dimensionar os recursos de computação verticalmente (para cima ou para baixo) e horizontalmente (para fora ou para dentro) conforme necessário. Você não pode reduzir o armazenamento depois de aumentá-lo.
Use o recurso iniciar/parar. Use o recurso iniciar/parar para impedir que o servidor seja executado quando ele não for necessário.

Excelência operacional

A Excelência Operacional concentra-se principalmente em procedimentos relacionados às práticas de desenvolvimento , observabilidade e gerenciamento de lançamentos.

Os princípios de design da Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.

Lista de verificação de design de carga de trabalho

  • Otimize a capacidade de recuperação de seus bancos de dados. Defina políticas de backup e retenção para atender aos seus requisitos de conformidade.

  • Automatizar tarefas operacionais. Use tarefas de automação para executar tarefas automaticamente, como iniciar e parar um servidor, dimensionar recursos e outras tarefas.

  • Monitore a integridade e o desempenho do banco de dados. Colete e analise logs e métricas de sua instância para detectar proativamente possíveis problemas.

  • Mantenha-se atualizado com as versões do PostgreSQL. As versões mais recentes vêm com recursos de atualização no local sem tempo de inatividade, permitindo transições de versões principais sem interrupção do serviço.

Recomendações de configuração

Recommendation Benefits
Use uma política Backup do Azure individualmente ou junto com os backups automatizados nativos para fazer backup de bancos de dados. Banco de Dados do Azure para PostgreSQL fornece backups automatizados e restauração pontual para seu banco de dados. Você pode configurar o período de retenção para backups de até 35 dias.

Use Backup do Azure para definir como e quando os backups são criados, o período de retenção para pontos de recuperação e as regras de proteção e recuperação de dados. Você pode manter pontos de recuperação em um cofre Backup do Azure por até 10 anos. Você também pode gerenciar as operações de backup e restauração usando Azure Centro de Continuidade de Negócios.
Agende janelas de manutenção personalizadas para aplicar atualizações de serviço. Você pode definir uma agenda personalizada para cada Banco de Dados do Azure para PostgreSQL em sua assinatura Azure. Com um agendamento personalizado, você pode especificar sua janela de manutenção para o servidor escolhendo o dia da semana e a hora de início da janela de manutenção de uma hora.
Monitore seu servidor para garantir que ele esteja íntegro e executando conforme o esperado. Banco de Dados do Azure para PostgreSQL tem várias métricas que fornecem insights sobre o comportamento dos recursos que dão suporte à instância de Banco de Dados do Azure para PostgreSQL. Você também pode habilitar métricas aprimoradas para obter monitoramento refinado e alertas em bancos de dados.

Banco de Dados do Azure para PostgreSQL oferece dashboards Grafana integrados no portal Azure por meio da integração nativa do Azure Monitor. Os painéis predefinidos mostram o uso da CPU, o armazenamento, as conexões ativas e o desempenho de consultas com a correlação de logs. Esses painéis reduzem a complexidade da pilha de observabilidade fornecendo monitoramento sem necessidade de configuração para o nível de dados do PostgreSQL. Para cargas de trabalho em que o PostgreSQL é uma camada de dados crítica, use esses painéis para obter sinais de integridade essenciais sem implantar uma infraestrutura de monitoramento separada.

Eficiência de desempenho

Eficiência de desempenho significa manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento da capacidade. A estratégia inclui dimensionamento de recursos, identificação e otimização de possíveis gargalos e otimização para o desempenho de pico.

Os princípios de design de eficiência de desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade considerando o uso esperado.

Lista de verificação de design de carga de trabalho

  • Otimize as consultas. Use recursos nativos para encontrar oportunidades para otimizar consultas.

  • Otimizar índices. Use recursos como ajuste de índice para analisar automaticamente padrões de consulta e receber recomendações acionáveis para criar ou remover índices para melhorar o desempenho.

  • Descarregue as operações somente leitura. Se o aplicativo aceita cadeias de conexão somente leitura, você pode descarregar as operações somente leitura para réplicas de leitura.

Recomendações de configuração

Recommendation Benefits
Use o repositório de consultas para acompanhar o desempenho da consulta ao longo do tempo. O repositório de consultas simplifica a solução de problemas de desempenho, ajudando você a encontrar rapidamente as consultas mais longas e com uso intensivo de recursos.
Use o Query Performance Insight para identificar as principais consultas de consumo de recursos e de execução longa em sua carga de trabalho. A Análise de Desempenho de Consultas ajuda a identificar consultas de longa duração e as alterações ao longo do tempo, determinar os tipos de espera que as afetam, analisar as principais consultas de banco de dados por frequência, além de outros benefícios.
Utilize o ajuste de índice com o armazenamento de consultas para analisar consultas rastreadas e fornecer recomendações. O ajuste de índice analisa a carga de trabalho rastreada pelo repositório de consultas. Ele produz recomendações de índice para melhorar o desempenho da carga de trabalho analisada ou remover índices duplicados ou não utilizados. O ajuste de índice ajuda a identificar índices benéficos, índices duplicados e índices não utilizados.
Use o ajuste inteligente para melhorar o desempenho automaticamente e ajudar a evitar problemas. O ajuste inteligente monitora continuamente o status do banco de dados do servidor flexível Banco de Dados do Azure para PostgreSQL e adapta dinamicamente o banco de dados à sua carga de trabalho.
Habilite o suporte para PgBouncer para otimizar o pool de conexões. Aprimora a utilização de recursos de banco de dados e o gerenciamento de conexões.

políticas de Azure

Azure fornece um amplo conjunto de políticas internas relacionadas a Banco de Dados do Azure para PostgreSQL e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio de Azure Policy. Por exemplo, você pode verificar se:

Para governança abrangente, examine as definições internas da Azure Policy para o Banco de Dados do Azure para PostgreSQL e outras políticas que podem afetar a segurança dos repositórios de dados.

recomendações de Assistente do Azure

Assistente do Azure é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações de Azure.

Para obter mais informações, consulte Assistente do Azure.

Arquitetura de exemplo

Arquitetura fundamental que demonstra as principais recomendações: Padrão de aplicativo Web confiável para Java.