Esse conteúdo está desatualizado. Esta versão da Well-Architected Framework agora pode ser encontrada em: https://docs.aws.amazon.com/pt_br/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 4: Como você seleciona sua solução de banco de dados?

A solução de banco de dados ideal para um sistema varia conforme os requisitos de disponibilidade, consistência, tolerância da partição, latência, durabilidade, escalabilidade e capacidade de consulta. Muitos sistemas usam soluções de banco de dados diferentes para vários subsistemas e habilitam diferentes recursos para melhorar a performance. Selecionar a solução e os recursos de banco de dados incorretos para um sistema pode levar a uma menor eficiência.

Recursos

AWS purpose-built databases (DAT209-L)
Amazon Aurora storage demystified: How it all works (DAT309-R)
Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
Cloud Databases with AWS
AWS Database Caching
Amazon DynamoDB Accelerator
Amazon Aurora best practices
Amazon Redshift performance
Amazon Athena top 10 performance tips
Amazon Redshift Spectrum best practices
Amazon DynamoDB best practices

Melhores práticas:

Plano de melhoria

Entenda as características dos dados

  • Características de dados de pesquisa e documento: Antes de escolher uma solução de banco de dados, entenda os requisitos funcionais de sua carga de trabalho e como ela interage com os dados. Ao avaliar uma solução de banco de dados, determine se ela é a mais adequada para atender a seus requisitos (por exemplo, transações ou alta disponibilidade), de modo que você possa selecionar a melhor combinação de bancos de dados a serem usados para sua carga de trabalho. Avalie bancos de dados alternativos que atendam melhor aos seus requisitos de carga de trabalho. Por exemplo, se você estiver criando um aplicativo de IoT, talvez seja melhor selecionar um banco de dados de séries temporais, como o Amazon Timestream, para armazenar e analisar facilmente trilhões de eventos por dia a um décimo do custo dos bancos de dados relacionais.
  • Avalie as opções disponíveis

  • Selecione o tipo de banco de dados apropriado para sua carga de trabalho: Na AWS, você pode escolher entre vários mecanismos de banco de dados de finalidade específica, inclusive bancos de dados relacionais, de chave-valor, documentos, em memória, gráficos, séries temporais e livro contábeis. O portfólio de bancos de dados de uso específico da AWS oferece suporte a diversos modelos de dados e permite que você crie aplicativos distribuídos altamente escaláveis e voltados a casos de uso. Ao escolher o melhor banco de dados para resolver um problema específico (ou um grupo de problemas), você pode se libertar de bancos de dados monolíticos genéricos restritivos e se concentrar na criação de aplicativos para atender às necessidades dos seus negócios.
  • Defina os requisitos de performance do banco de dados: Identifique as métricas de performance do banco de dados relevantes para sua carga de trabalho e implemente os requisitos como parte de uma abordagem impulsionada por dados, usando testes comparativos ou de carga de trabalho. Use esses dados para identificar em que ponto sua solução de banco de dados está restrita e examinar as opções de configuração que poderiam resolver este problema.
  • Habilite opções de armazenamento em cache do banco de dados: Avalie as opções de armazenamento em cache do banco de dados, como o Amazon ElastiCache for Redis para armazenamento em cache de banco de dados relacional ou o Amazon DynamoDB Accelerator (DAX) para um cache de memória altamente disponível e gerenciado para o DynamoDB. Essas opções podem oferecer melhor performance, em alguns casos de milissegundos a microssegundos, mesmo com milhões de solicitações por segundo.
  • Colete e registre métricas de performance do banco de dados

  • Coletar métricas relacionadas ao banco de dados: Projete sua carga de trabalho para registrar métricas relacionadas à atividade do banco de dados. Esses dados são cruciais para entender como os sistemas do banco de dados estão afetando a performance geral de sua carga de trabalho e em que pontos é possível fazer alterações para melhorar a performance e a eficiência. Por exemplo, acompanhar pontos de dados como tempos de consulta, número de transações, uso de disco e uso de índice ou consultas lentas permite que você otimize seus sistemas de banco de dados.
  • Monitore as métricas: O Amazon CloudWatch pode coletar métricas nos recursos em sua arquitetura. Você também pode coletar e publicar métricas personalizadas para descobrir métricas de negócio ou derivadas. Use o CloudWatch ou soluções de terceiros para definir alarmes que indicam quando os limites são violados.
  • Escolha o armazenamento de dados conforme os padrões de acesso

  • Use padrões de acesso para determinar o armazenamento de dados: Avalie os padrões de acesso da carga de trabalho para encontrar o padrão adequado de armazenamento de dados. Por exemplo, se sua carga de trabalho exigir acesso de consulta ad hoc, você poderá selecionar um banco de dados relacional, como o Amazon RDS. Se sua carga de trabalho for impulsionada por uma alta taxa de crescimento ou eventos de alto tráfego, você deverá selecionar um banco de dados de chave-valor, como o Amazon DynamoDB.
  • Otimize o armazenamento de dados conforme as métricas e os padrões de acesso

  • Otimize o armazenamento de dados conforme as métricas e os padrões: Use as métricas relatadas para identificar todas as áreas com baixa performance na carga de trabalho e otimizar os componentes do banco de dados. Cada sistema de banco de dados tem características relacionadas a performance diferentes a serem avaliadas, como a maneira de indexar, armazenar em cache ou distribuir os dados entre vários sistemas. Meça o impacto de suas otimizações.