PERF03-BP02 Avalie as opções de configuração disponíveis para 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-BP02 Avalie as opções de configuração disponíveis para armazenamento de dados

Entenda e avalie os vários atributos e opções de configuração disponíveis para seus datastores a fim de otimizar o espaço de armazenamento e a performance da workload.

Práticas comuns que devem ser evitadas:

  • Você usa apenas um tipo de armazenamento, como AmazonEBS, para todas as cargas de trabalho.

  • Você usa provisioned IOPS para todas as cargas de trabalho sem testes reais em todos os níveis de armazenamento.

  • Você não sabe quais são as opções de configuração da solução de gerenciamento de dados escolhida.

  • Você conta somente com o aumento do tamanho da instância sem examinar outras opções de configuração.

  • Você não testa as características de ajuste de escala do datastore.

Benefícios de implementar esta prática recomendada: a exploração e a experimentação das configurações de datastore permitem que você reduza o custo da infraestrutura, melhore a performance e diminua o esforço necessário para manter as workloads.

Nível de risco exposto se esta prática recomendada não for estabelecida: Médio

Orientação para implementação

Uma workload pode ter um ou mais datastores usados com base nos requisitos de armazenamento e acesso aos dados. Para otimizar a eficiência de performance e custos, é necessário avaliar os padrões de acesso aos dados para determinar as configurações apropriadas do datastore. Ao explorar as opções de datastore, leve em consideração vários aspectos, como opções de armazenamento, memória, computação, réplica de leitura, requisitos de consistência, grupo de conexões e opções de armazenamento em cache. Experimente essas várias opções de configuração para melhorar as métricas de eficiência de performance.

Etapas de implementação

  • Entenda as configurações atuais (como tipo de instância, tamanho do armazenamento ou versão do mecanismo de banco de dados) do datastore.

  • Analise a AWS documentação e as melhores práticas para conhecer as opções de configuração recomendadas que podem ajudar a melhorar o desempenho do seu armazenamento de dados. As principais opções de datastore a serem consideradas são:

    Opção de configuração Exemplos
    Descarregar leituras (como réplicas de leitura e cache)
    • Para tabelas do DynamoDB, você pode descarregar leituras usando para armazenamento em cache. DAX

    • Você pode criar um cluster Amazon ElastiCache (RedisOSS) e configurar seu aplicativo para ler primeiro do cache, retornando ao banco de dados se o item solicitado não estiver presente.

    • Bancos de dados relacionais, como Amazon RDS e Aurora, e provisionados. Nenhum banco de SQL dados, como Neptune e Amazon DocumentDB, oferece suporte à adição de réplicas de leitura para descarregar as partes de leitura da carga de trabalho.

    • Os bancos de dados de tecnologia sem servidor, como o DynamoDB, ajustarão a escala automaticamente. Certifique-se de que você tenha unidades de capacidade de leitura (RCU) suficientes provisionadas para lidar com a carga de trabalho.

    Escalar gravações (como a fragmentação da chave da partição ou a introdução de uma fila)
    • Para bancos de dados relacionais, você pode aumentar o tamanho da instância para acomodar uma carga de trabalho maior ou aumentar a provisionada IOPs para permitir uma maior taxa de transferência para o armazenamento subjacente.

    • Também é possível introduzir uma fila na frente do banco de dados, em vez de gravar diretamente nele. Esse padrão permite desacoplar a ingestão do banco de dados e controlar a taxa de fluxo para que o banco de dados não fique sobrecarregado. 

    • Usar solicitações de gravação em lote em vez de criar muitas transações de curta duração pode ajudar a melhorar o throughput em bancos de dados relacionais de alto volume de gravação.

    • Bancos de dados sem servidor, como o DynamoDB, podem escalar a taxa de transferência de gravação automaticamente ou ajustando as unidades de capacidade de gravação provisionadas (), dependendo do modo de capacidade. WCU 

    • Você ainda pode ter problemas com partições ativas ao atingir os limites de throughput de determinada chave de partição. Isso pode ser mitigado com a escolha de uma chave de partição mais uniformemente distribuída ou por meio da fragmentação da gravação da chave de partição. 

    Políticas para gerenciar o ciclo de vida dos seus conjuntos de dados
    • O Amazon S3 Lifecycle pode ser usado para gerenciar seus objetos durante todo o ciclo de vida de cada um. Se os padrões de acesso forem desconhecidos, variáveis ou imprevisíveis, você poderá usar o Amazon S3 Intelligent-Tiering para monitorar os padrões de acesso e mover automaticamente os objetos que não foram acessados para níveis de acesso de baixo custo. Também é possível usar as métricas da Lente de Armazenamento do Amazon S3 para identificar oportunidades de otimização e lacunas no gerenciamento do ciclo de vida.

    • O gerenciamento EFS do ciclo de vida da Amazon gerencia automaticamente o armazenamento de arquivos para seus sistemas de arquivos.

    Gerenciamento e agrupamento de conexões
    • O Amazon RDS Proxy pode ser usado com a Amazon RDS e a Aurora para gerenciar conexões com o banco de dados. 

    • Os bancos de dados com tecnologia sem servidor, como o DynamoDB, não têm conexões associadas a eles, mas considere a capacidade provisionada e as políticas de ajuste de escala automático para lidar com picos na carga.

  • Realize experimentos e testes comparativos em um ambiente de não produção para identificar qual opção de configuração pode atender aos requisitos da workload.

  • Depois de experimentar, planeje a migração e valide as métricas de performance.

  • Use ferramentas de AWS monitoramento (como Amazon CloudWatch) e otimização (como Amazon S3 Storage Lens) para otimizar continuamente seu armazenamento de dados usando padrões de uso do mundo real.

Recursos

Documentos relacionados:

Vídeos relacionados:

Exemplos relacionados: