PERF03-BP01 Usar um datastore com propósitos específicos que melhor atenda aos requisitos de acesso e armazenamento de dados
Entenda as características dos dados (como possibilidade de compartilhamento, tamanho, tamanho do cache, padrões de acesso, latência, throughput e persistência dos dados) a fim de selecionar os datastores com propósito específico (armazenamento ou banco de dados) para sua workload.
Práticas comuns que devem ser evitadas:
-
Utilizar um único datastore porque há experiência e conhecimento internos de um tipo específico de solução de banco de dados.
-
Você pressupõe que todas as workloads têm requisitos de acesso e armazenamento de dados semelhantes.
-
Você não implementou um catálogo de dados para criar um inventário de seus ativos de dados.
Benefícios de implementar esta prática recomendada: entender as características e os requisitos de dados permite que você determine a tecnologia de armazenamento mais eficiente e com melhor performance adequada às necessidades da workload.
Nível de risco exposto se esta prática recomendada não for estabelecida: Alto
Orientação para implementação
Ao selecionar e implementar o armazenamento de dados, certifique-se de que as características de consulta, ajuste de escala e armazenamento atendam aos requisitos de dados da workload. A AWS fornece várias tecnologias de armazenamento de dados e banco de dados, incluindo armazenamento em blocos, armazenamento de objetos, armazenamento de streaming, sistema de arquivos, bancos de dados relacionais, de chave-valor, de documentos, na memória, de grafos, de séries temporais e ledger. Cada solução de gerenciamento de dados tem opções e configurações disponíveis para compatibilidade com seus casos de uso e modelos de dados. Ao compreender as características e os requisitos dos dados, você pode se separar da tecnologia de armazenamento monolítico e das abordagens restritivas e únicas para se concentrar no gerenciamento adequado dos dados.
Etapas de implementação
-
Realize um inventário dos vários tipos de dados que existem na workload.
-
Entenda e documente as características e os requisitos dos dados, incluindo:
-
Tipo de dados (não estruturados, semiestruturados, relacionais)
-
Volume e crescimento de dados
-
Durabilidade dos dados: persistentes, efêmeros, transitórios
-
Requisitos de ACID (atomicidade, consistência, isolamento, durabilidade)
-
Padrões de acesso a dados (com muita leitura ou gravação)
-
Latência
-
Throughput
-
IOPS (operações de entrada/saída por segundo)
-
Período de retenção de dados
-
-
Conheça os diferentes datastores (serviços de armazenamento e banco de dados) disponíveis para a workload na AWS que podem atender às características dos dados (conforme descrito em PERF01-BP01 Conhecer e compreender os serviços e recursos de nuvem disponíveis. Alguns exemplos de tecnologias de armazenamento da AWS e suas principais características incluem:
Tipo Serviços da AWS Características principais Armazenamento de objetos Amazon S3 Escalabilidade ilimitada, alta disponibilidade e várias opções de acessibilidade. A transferência e o acesso a objetos dentro e fora do Amazon S3 podem usar um serviço, como o Transfer Acceleration ou Access Points , para oferecer suporte a sua localização, necessidades de segurança e padrões de acesso. Armazenamento de arquivamento Amazon S3 Glacier Desenvolvido para arquivamento de dados. Armazenamento de streaming Ingestão e armazenamento eficientes de dados de streaming. Sistema de arquivos compartilhado Sistema de arquivos montável que pode ser acessado por vários tipos de soluções de computação.
Sistema de arquivos compartilhado Amazon FSx Baseia-se nas soluções de computação mais recentes da AWS para oferecer compatibilidade com quatro sistemas de arquivos usados com frequência: NetApp ONTAP, OpenZFS, Windows File Server e Lustre. A latência, o throughput e as IOPS do Amazon FSx variam de acordo com o sistema de arquivos e devem ser consideradas ao selecionar o sistema de arquivos certo para as necessidades da sua workload. Armazenamento em bloco Amazon Elastic Block Store (Amazon EBS) Serviço de armazenamento em blocos fácil de usar, escalável e de alta performance projetado para o Amazon Elastic Compute Cloud (Amazon EC2). O Amazon EBS inclui armazenamento baseado em SSD para workloads transacionais de alto throughput e em HDD para workloads trabalho de alto throughput. Banco de dados relacional Amazon Aurora , Amazon RDS , Amazon Redshift . Projetados para oferecer compatibilidade com transações ACID (atomicidade, consistência, isolamento, durabilidade) e manter a integridade referencial e uma forte consistência de dados. Muitas aplicações tradicionais, planejamento de recursos empresariais (ERP), gerenciamento de relacionamentos com o cliente (CRM) e comércio eletrônico usam bancos de dados relacionais para armazenar os dados. Banco de dados de chave-valor Amazon DynamoDB Otimizados para padrões de acesso comuns, normalmente visando armazenar e recuperar grandes volumes de dados. Aplicações web de alto tráfego, sistemas de comércio eletrônico e aplicações de jogos são os casos de uso habituais para bancos de dados de chave-valor. Banco de dados de documentos Amazon DocumentDB Projetado para armazenar dados semiestruturados, como documentos do tipo JSON. Esses bancos de dados ajudam os desenvolvedores a criar e atualizar rapidamente aplicações de gerenciamento de conteúdo, catálogos e perfis de usuário, por exemplo. Banco de dados na memória Amazon ElastiCache , Amazon MemoryDB for Redis Usados para aplicações que exigem acesso em tempo real aos dados, latência mais baixa e throughput mais alto. É possível usar bancos de dados na memória para armazenamento em cache de aplicações, gerenciamento de sessões, tabelas de classificação de jogos, arquivo de atributos de ML de baixa latência, sistema de mensagens de microsserviços e um mecanismo de streaming de alto throughput. Banco de dados de grafos Amazon Neptune Utilizado para aplicações que precisam navegar e consultar milhões de relacionamentos entre conjuntos de dados de grafos altamente conectados com latência de milissegundos em grande escala. Muitas empresas usam bancos de dados gráficos para detecção de fraudes, redes sociais e mecanismos de recomendação. Banco de dados de séries temporais Amazon Timestream Utilizado para coletar, sintetizar e gerar com eficiência insights de dados que mudam ao longo do tempo. Aplicações de IoT, DevOps e telemetria industrial podem utilizar bancos de dados de séries temporais. Coluna ampla Amazon Keyspaces (for Apache Cassandra) Usa tabelas, linhas e colunas, mas ao contrário de um banco de dados relacional, os nomes e o formato das colunas podem variar de linha para linha na mesma tabela. Normalmente, você vê um repositório de coluna ampla em aplicações industriais de alta escala para manutenção de equipamentos, gerenciamento de frotas e otimização de rotas. ledger Amazon Quantum Ledger Database (Amazon QLDB) Oferece uma autoridade centralizada e confiável para manter um registro escalável, imutável e criptograficamente verificável de transações para cada aplicação. Vemos os bancos de dados de livro-razão empregados em sistemas de registro, cadeia de suprimentos, inscrições e até mesmo transações bancárias. -
Se você estiver criando uma plataforma de dados, utilize a arquitetura de dados moderna
na AWS para integrar seu data lake, data warehouse e datastores específicos. -
As principais questões que você precisa considerar ao escolher um datastore para sua workload são as seguintes:
Pergunta Fatos a serem considerados Como os dados são estruturados? -
Se os dados não forem estruturados, considere um armazenamento de objetos, como o Amazon S3
, ou um banco de dados NoSQL, como o Amazon DocumentDB . -
Para dados de valor-chave, considere o DynamoDB
, o Amazon ElastiCache (Redis OSS) ou o Amazon MemoryDB .
Que nível de integridade referencial é necessário? -
Para restrições de chave estrangeira, bancos de dados relacionais como Amazon RDS
e Aurora podem fornecer esse nível de integridade. -
Normalmente, em um modelo de dados NoSQL, você desnormalizaria os dados em um único documento ou coleção de documentos para serem recuperados em uma única solicitação em vez de unir documentos ou tabelas de diferentes locais.
A conformidade com ACID (atomicidade, consistência, isolamento, durabilidade) é necessária? -
Se as propriedades ACID associadas aos bancos de dados relacionais forem necessárias, pense em um banco de dados relacional, como o Amazon RDS
e o Aurora . -
Se uma consistência forte for necessária para o banco de dados NoSQL
, você pode usar leituras altamente consistentes com o DynamoDB .
Como as necessidades de armazenamento serão alteradas ao longo do tempo? Como isso afeta a escalabilidade? -
Os bancos de dados sem servidor, como o DynamoDB
e o Amazon Quantum Ledger Database (Amazon QLDB) , serão escalados dinamicamente. -
Os bancos de dados relacionais têm limites superiores em armazenamento provisionado e devem ser particionados horizontalmente usando mecanismos, como fragmentação, quando atingem esses limites.
Qual é a proporção de consultas de leitura em relação a consultas de gravação? O armazenamento em cache melhoraria a performance? -
Workloads com muitas operações de leitura poderão se beneficiar de uma camada de cache, como ElastiCache
ou DAX , se o banco de dados for o DynamoDB. -
As leituras também podem ser descarregadas em réplicas de leitura com bancos de dados relacionais, como o Amazon RDS
.
O armazenamento e a modificação (OLTP – Processamento de transações on-line) ou a recuperação e a geração de relatórios (OLAP – Processamento analítico on-line) têm uma prioridade mais alta? -
Para um processamento transacional de throughput alto de leitura no estado em que se encontra, considere um banco de dados NoSQL, como o DynamoDB.
-
Para padrões de leitura complexos e de throughput alto (como junção) com consistência use o Amazon RDS.
-
Para consultas analíticas, considere usar um banco de dados colunar, como o Amazon Redshift
, ou exportar os dados para o Amazon S3 e realizar análises usando o Athena ou o Amazon QuickSight .
Que nível de durabilidade os dados exigem? -
O Aurora replica automaticamente os dados entre três zonas de disponibilidade em uma região, o que significa que seus dados terão mais durabilidade com menos chance de serem perdidos.
-
O DynamoDB é automaticamente replicado entre várias zonas de disponibilidade, fornecendo alta disponibilidade e durabilidade aos dados.
-
O Amazon S3 fornece 11 noves de durabilidade. Muitos serviços de banco de dados, como o Amazon RDS e o DynamoDB, são compatíveis com a exportação de dados para o Amazon S3 para retenção de longo prazo e arquivamento.
Você quer se livrar de mecanismos de bancos de dados comerciais ou custos de licenças? -
Considere usar mecanismos de código aberto, como PostgreSQL e MySQL no Amazon RDS ou Aurora.
-
Utilize o AWS Database Migration Service
e o AWS Schema Conversion Tool para realizar migrações de mecanismos de bancos de dados comerciais para código aberto
Qual é a expectativa operacional para o banco de dados? A migração para serviços gerenciados é uma preocupação importante? -
Utilizar o Amazon RDS em vez do Amazon EC2 e o DynamoDB ou o Amazon DocumentDB em vez de um host automático de um banco de dados NoSQL pode reduzir a sobrecarga operacional.
Como o banco de dados é acessado no momento? Ele é acessado apenas por aplicações ou há usuários de inteligência de negócios (BI) e outras aplicações prontas para uso conectadas? -
Se houver dependências de ferramentas externas, talvez seja necessário manter a compatibilidade com os bancos de dados que elas suportam. O Amazon RDS é totalmente compatível com as diferentes versões do mecanismo a que ele oferece suporte, incluindo Microsoft SQL Server, Oracle, MySQL e PostgreSQL.
-
-
Faça experimentos e testes comparativos em um ambiente de não produção para identificar qual datastore pode atender às necessidades da workload.
Recursos
Documentos relacionados:
Vídeos relacionados:
-
AWS re:Invent 2023: Melhorar a eficiência do Amazon Elastic Block Store e ser mais econômico
-
AWS re:Invent 2023: Criar e otimizar data lakes no Amazon Simple Storage Service
-
AWS re:Invent 2022: Construir arquiteturas de dados modernos na AWS
-
AWS re:Invent 2022: Construir arquiteturas de data mesh na AWS
-
AWS re:Invent 2023: Mergulho profundo no Amazon Aurora e suas inovações
-
AWS re:Invent 2023: Modelagem de dados com o Amazon DynamoDB
-
AWS re:Invent 2022: Modernizar aplicações com bancos de dados com propósito específico
-
Mergulho profundo no Amazon DynamoDB: padrões de design avançados (DAT403-R1)
Exemplos relacionados: