PERF04-BP04 Escolher armazenamento de dados com base nos padrões de acesso
Use os padrões de acesso da workload e requisitos das aplicações para decidir sobre serviços de dados e tecnologias ideais a serem usadas.
Resultado desejado: o armazenamento de dados foi selecionado com base nos padrões de acesso aos dados identificados e documentados. Isso pode incluir as consultas mais comuns de leitura, gravação e exclusão, as necessidades de cálculos e agregações, a complexidade dos dados, a interdependência dos dados e a consistência exigida.
Antipadrões comuns:
-
Você só seleciona um mecanismo 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 fins 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, particionamento de dados e armazenamento em cache ajuda a reduzir a sobrecarga operacional e a escalar com base nas necessidades da workload.
Nível de risco exposto se esta prática recomendada não é 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.
| AWS Services | Amazon RDS | Amazon Aurora | Amazon DynamoDB | Amazon DocumentDB | Amazon ElastiCache | Amazon Neptune | Amazon Timestream | Amazon Keyspaces | Amazon QLDB |
|---|---|---|---|---|---|---|---|---|---|
| Scaling Storage | Storage can be scaled up manually or configured to scale automatically to a maximum of 64 TiB based on engine types. Provisioned storage cannot be decreased. | Storage scales automatically up to maximum of 128 TiB and decreases when data is removed. Maximum storage size also depends upon specific Aurora MySQL or Aurora Postgres engine versions. | Storage automatically scales. Tables are unconstrained in terms of size. | Storage scales automatically up to maximum of 64 TiB. Starting Amazon DocumentDB 4.0 storage can decrease by comparable amounts for data removal through dropping a collection or index. With Amazon DocumentDB 3.6 allocated space remains same and free space is reused when data volume increases. | Storage is in-memory, tied to instance type or count. | Storage scales automatically can grow up to 128 TiB (or 64 TiB in few Regions). Upon data removal from, total allocated space remains same and is reused in the future. | Organizes your time series data to optimize query processing and reduce storage costs. Retention period can be configured through in-memory and magnetic tiers. | Scales table storage up and down automatically as your application writes, updates, and deletes data. | Storage automatically scales. Tables are unconstrained in terms of size. |
Etapas da implementação:
-
Entenda os requisitos das transações, a conformidade de atomicidade, consistência, isolamento e durabilidade (ACID) e as leituras consistentes. Nem todo banco de dados é compatível com isso e a maioria dos bancos de dados NoSQL fornece um modelo de consistência eventual.
-
Considere os padrões de tráfego, a latência e os requisitos de acesso para uma aplicação distribuída globalmente a fim de identificar a solução de armazenamento ideal.
-
Analise padrões de consulta, padrões de acesso aleatório e consultas únicas. Considerações relativas à funcionalidade de consultas altamente especializadas para processamento de texto e de linguagem natural, às séries temporais e aos gráficos também devem ser avaliadas.
-
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 automático da escala vertical até os limites documentados. Além disso, considere fazer a transição de dados mais antigos ao Amazon S3 para arquivamento, agregando dados históricos para análise ou escalando horizontalmente por meio de fragmentação.
-
O DynamoDB e o Amazon S3 escalam automaticamente até o volume de armazenamento quase ilimitado.
-
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.
-
-
Os requisitos base 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 (como replicação global, Multi-AZ, replicação de leitura e vários nós de gravação).
Nível de esforço do plano de implementação: baixo. 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: