PERF04-BP04 Escolher armazenamento de dados com base nos padrões de acesso
Use os padrões de acesso da carga de trabalho para decidir que serviços e tecnologias usar. Além dos requisitos não funcionais, como performance e escala, os padrões de acesso influenciam fortemente a escolha das soluções de banco de dados e de armazenamento. A primeira dimensão é a necessidade de transações, conformidade com ACID e leituras consistentes. Nem todo banco de dados é compatível com isso, e a maioria dos bancos de dados NoSQL fornecem um modelo de consistência eventual. A segunda importante dimensão seria a distribuição de gravações e leituras ao longo do tempo e do espaço. As aplicações distribuídas globalmente precisam considerar os requisitos de padrões de tráfego, de latência e de acesso para identificar a solução ideal de armazenamento. O terceiro aspecto essencial a considerar é a flexibilidade dos padrões de consultas, os padrões de acesso aleatório e as consultas de uma única vez. Considerações relativas à funcionalidade de consultas altamente especializadas para processamento de texto e de linguagem natural, às séries temporais e aos grafos também devem ser avaliadas.
Resultado desejado: O armazenamento de dados foi selecionado com base nos padrões de acesso aos dados identificados e documentados. Isso pode incluir as consulta mais comuns de leitura, gravação e exclusão, as necessidades de cálculos e agregações ad-hoc, a complexidade dos dados, a interdependência dos dados e a consistência exigida.
Antipadrões comuns:
-
Você só seleciona um fornecedor de banco de dados para simplificar o gerenciamento de operações.
-
Você pressupõe que os padrões de acesso aos dados permanecerão consistentes ao longo do tempo.
-
Você implementa transações complexas, reversão e lógica de consistência na aplicação.
-
O banco de dados está configurado para ser compatível com alta expansão potencial de tráfego, o que faz com que os recursos do banco de dados fiquem ociosos a maior parte do tempo.
-
O uso de um banco de dados compartilhado para usos transacionais e analíticos.
Benefícios do estabelecimento desta prática recomendada: A seleção e a otimização do armazenamento de dados com base em padrões de acesso ajuda a reduzir a complexidade do desenvolvimento e a otimizar as oportunidades de performance. A compreensão de quando usar réplicas de leitura, tabelas globais e armazenamento em cache ajuda a reduzir a sobrecarga operacional e a escalar com base nas necessidades da workload.
Nível de exposição a riscos quando esta prática recomendada não for estabelecida: Médio
Orientações para a implementação
Identifique e avalie o padrão de acesso aos dados para selecionar a configuração correta do armazenamento. Cada solução de banco de dados tem opções para configurar e otimizar sua solução de armazenamento. Use as métricas e os logs coletados e experimente com opções para encontrar a configuração ideal. Use a tabela a seguir para analisar as opções de armazenamento por serviço de banco de dados.
Serviços da AWS | Amazon RDS, Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
---|---|---|---|---|---|---|---|---|
Escalabilidade de armazenamento. | A opção de escalabilidade automática de armazenamento disponível para escalar automaticamente IOPS provisionadas de armazenamento também pode ser usada independentemente do armazenamento provisionado ao utilizar tipos de IOPs provisionadas de armazenamento. | Escala automaticamente. As tabelas não são restringidas em termos de tamanho. | A opção de escalabilidade automática de armazenamento disponível escala o armazenamento provisionado. | O armazenamento é na memória, vinculado ao tipo ou à contagem de instâncias. | A opção de escalabilidade automática de armazenamento disponível para escalar automaticamente o armazenamento provisionado. | Configura o período de retenção para camadas na memória e magnéticas em dias. | Aumenta verticalmente e reduz horizontalmente a escala do armazenamento de tabelas automaticamente. | Escala automaticamente. As tabelas não são restringidas em termos de tamanho. |
Etapas da implementação:
-
Identifique e documente o crescimento antecipado dos dados e do tráfego.
-
O Amazon RDS e o Aurora são compatíveis com o aumento da escala vertical automática até os limites documentados. Além disso, considere fazer a transição de dados mais antigos para arquivamento do Amazon S3, agregando dados históricos para análise ou escalando horizontalmente por meio de fragmentação.
-
O DynamoDB e o Amazon S3 escalam até o volume de armazenamento quase ilimitado automaticamente.
-
As instâncias e os bancos de dados do Amazon RDS em execução no EC2 podem ser redimensionados manualmente, e as instâncias do EC2 podem ter novos volumes do EBS adicionados posteriormente para armazenamento adicional.
-
Os tipos de instância podem ser alterados com base nas alterações nas atividades. Por exemplo, é possível iniciar com uma instância menor para teste e escalar a instância quando o tráfego de produção começar a ser recebido no serviço. O Aurora Serverless V2 reduz a escala horizontalmente automaticamente em resposta a alterações na carga.
-
-
Documente os requisitos de performance em condições normais e em picos (transações por segundo (TPS) e consultas por segundo (QPS)) e de consistência (consistência ACID e eventual).
-
Documente os aspectos da implantação da solução e os requisitos de acesso ao banco de dados (global, Multi-AZ, replicação de leitura, vários nós de gravação).
Nível de esforço para o plano de implementação: Se você não tiver logs ou métricas para a solução de gerenciamento dos dados, será necessário realizar isso para identificar e documentar os padrões de acesso aos seus dados. Depois que o padrão de acesso aos dados for compreendido, o nível de esforço para selecionar e configurar o armazenamento dos seus dados é baixo .
Recursos
Documentos relacionados:
Vídeos relacionados:
Exemplos relacionados: