View a markdown version of this page

PERF04-BP04 Escolher armazenamento de dados com base nos padrões de acesso - AWS Well-Architected Framework

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:

  1. 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.

  2. 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.

  3. 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.

  4. Identifique e documente o crescimento antecipado dos dados e do tráfego.

    1. 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.

    2. O DynamoDB e o Amazon S3 escalam automaticamente até o volume de armazenamento quase ilimitado.

    3. 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. 

    4. 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. 

  5. 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).

  6. 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: