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:
-
Entenda as características dos dados:
Entenda as diferentes características dos dados em sua carga de trabalho. Determine
se a carga de trabalho requer transações, como ela interage com dados e quais são
as demandas de performance dela. Use esses dados para selecionar a abordagem de melhor
performance para seu banco de dados (p. ex., bancos de dados relacionais, de chave-valor
em NoSQL, documentos, coluna ampla, gráficos, série temporal ou armazenamento em memória).
-
Avalie as opções disponíveis:
Avalie os serviços e as opções de armazenamento disponíveis como parte do processo
de seleção para os mecanismos de armazenamento de sua carga de trabalho. Entenda como
e quando usar um determinado serviço ou sistema para armazenamento de dados. Conheça
as opções de configuração disponíveis que podem otimizar a performance ou a eficiência
do banco de dados, como IOPS provisionadas, recursos de computação e memória, além
de armazenamento em cache.
-
Colete e registre métricas de performance do banco de dados:
Use ferramentas, bibliotecas e sistemas que registram as medidas de performance relacionadas
ao banco de dados. Por exemplo, meça transações por segundo, consultas lentas ou latência
do sistema introduzida ao acessar o banco de dados. Use esses dados para entender
a performance de seus sistemas de banco de dados.
-
Escolha o armazenamento de dados conforme os padrões de acesso:
Use os padrões de acesso da carga de trabalho para decidir que serviços e tecnologias
usar. Por exemplo, utilize um banco de dados relacional para cargas de trabalho que
exigem transações, ou um repositório de chave-valor que forneça um throughput maior,
mas que seja eventualmente consistente quando aplicável.
-
Otimize o armazenamento de dados conforme as métricas e os padrões de acesso:
Use características de performance e padrões de acesso que otimizem o modo como os
dados são armazenados ou consultados para obter a melhor performance possível. Meça
como otimizações, p. ex., indexação, distribuição de chave, design do data warehouse
ou estratégias de armazenamento em cache afetam a performance do sistema ou a eficiência
geral.
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.