PERF03-BP01 Use um armazenamento de dados específico que melhor suporte seus requisitos de acesso e armazenamento de dados - AWS Estrutura Well-Architected

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

PERF03-BP01 Use um armazenamento de dados específico que melhor suporte seus 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, escalabilidade e armazenamento atendam aos requisitos de dados da carga de trabalho. 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 valores-chave, documentos, na memória, gráficos, séries temporais e bancos de dados contábeis. 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 romper com a tecnologia de armazenamento monolítico e com as one-size-fits-all abordagens restritivas 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

    • ACIDrequisitos (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 armazenamentos de dados (serviços de armazenamento e banco de dados) disponíveis para sua carga de trabalho AWS que podem atender às suas características de dados, conforme descrito em. PERF01-BP01 Conheça e compreenda os serviços e recursos de nuvem disponíveis Alguns exemplos de tecnologias de armazenamento da AWS e suas principais características incluem:

    Tipo AWS Serviços 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

    Amazon Kinesis

    Amazon Managed Streaming para Apache Kafka (Amazon) MSK

    Ingestão e armazenamento eficientes de dados de streaming.
    Sistema de arquivos compartilhado

    Amazon Elastic File System (AmazonEFS)

    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 Desenvolvido com base nas soluções de AWS computação mais recentes para oferecer suporte a quatro sistemas de arquivos comumente usados: Open NetApp ONTAPZFS, Windows File Server e Lustre. A FSx latência e a taxa de transferência da Amazon IOPS variam de acordo com o sistema de arquivos e devem ser consideradas ao selecionar o sistema de arquivos certo para suas necessidades de carga de trabalho.
    Armazenamento em bloco Amazon Elastic Block Store (AmazonEBS) Serviço de armazenamento em bloco escalável e de alto desempenho projetado para o Amazon Elastic Compute Cloud (Amazon). EC2 A Amazon EBS inclui armazenamento SSD garantido para cargas de trabalho transacionais IOPS intensivas e HDD armazenamento garantido para cargas de trabalho com alto rendimento.
    Banco de dados relacional Amazon Aurora, AmazonRDS, Amazon Redshift. Projetado para suportar transações ACID (atomicidade, consistência, isolamento, durabilidade) e manter a integridade referencial e a forte consistência dos dados. Muitos aplicativos tradicionais, planejamento de recursos corporativos (ERP), gerenciamento de relacionamento com o cliente (CRM) e comércio eletrônico usam bancos de dados relacionais para armazenar seus 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 JSON documentos semelhantes. 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 para 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. Os aplicativos de IoT e a telemetria industrial podem utilizar bancos de dados de séries temporais. DevOps
    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 Banco de dados Amazon Quantum Ledger (AmazonQLDB) 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, aproveite a arquitetura de dados moderna AWS para integrar seu data lake, data warehouse e armazenamentos de dados 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?
    Que nível de integridade referencial é necessário?
    • Para restrições de chave estrangeira, bancos de dados relacionais como Amazon e RDS Aurora podem fornecer esse nível de integridade.

    • Normalmente, em um SQL modelo sem dados, você desnormalizaria seus dados em um único documento ou coleção de documentos a serem recuperados em uma única solicitação, em vez de unir documentos ou tabelas. 

    A conformidade ACID (atomicidade, consistência, isolamento, durabilidade) é necessária?
    Como as necessidades de armazenamento serão alteradas ao longo do tempo? Como isso afeta a escalabilidade?
    • Bancos de dados sem servidor, como o DynamoDB e o Amazon Quantum Ledger Database (QLDBAmazon), 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?
    O armazenamento e a modificação (OLTP- Processamento de Transações Online) ou a recuperação e emissão de relatórios (OLAP- Processamento Analítico Online) têm maior prioridade?
    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 Amazon RDS e DynamoDB, oferecem suporte à exportação de dados para o Amazon S3 para retenção e arquivamento de longo prazo.

    Você quer se livrar de mecanismos de bancos de dados comerciais ou custos de licenças?
    Qual é a expectativa operacional para o banco de dados? A migração para serviços gerenciados é uma preocupação importante?
    • Aproveitar a Amazon RDS em vez da Amazon EC2 e o DynamoDB ou o Amazon DocumentDB em vez de hospedar automaticamente SQL um banco de dados inexistente pode reduzir a sobrecarga operacional.

    Como o banco de dados é acessado no momento? É apenas acesso a aplicativos ou há usuários de business intelligence (BI) e outros off-the-shelf aplicativos conectados?
    • Se houver dependências de ferramentas externas, talvez seja necessário manter a compatibilidade com os bancos de dados que elas suportam. RDSA Amazon é totalmente compatível com as diferentes versões do mecanismo que suporta, incluindo Microsoft SQL Server, OracleSQL, My 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:

Exemplos relacionados: