PERF03-BP02 Avaliar as opções de configuração disponíveis para o datastore - Framework Well-Architected da AWS

PERF03-BP02 Avaliar as opções de configuração disponíveis para o datastore

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ê só usa um tipo de armazenamento, como o Amazon EBS, para todas as workloads.

  • Você usa as IOPS provisionadas para todas as workloads 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 documentação e as práticas recomendadas da AWS para saber mais sobre as opções de configuração indicadas que podem ajudar a melhorar a performance do datastore. 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)
    • Nas tabelas do DynamoDB, é possível descarregar leituras usando o DAX para armazenamento em cache.

    • É possível criar um cluster do Amazon ElastiCache (Redis OSS) e configurar a aplicação para ler primeiro do cache e voltar para o banco de dados caso o item solicitado não esteja presente.

    • Todos os bancos de dados relacionais, como Amazon RDS e Aurora, e bancos de dados NoSQL provisionados, como Neptune e Amazon DocumentDB, permitem adicionar réplicas de leitura para descarregar as partes de leitura da workload.

    • Os bancos de dados de tecnologia sem servidor, como o DynamoDB, ajustarão a escala automaticamente. Verifique se você tem unidades de capacidade de leitura (RCU) suficientes provisionadas para processar a workload.

    Escalar gravações (como a fragmentação da chave da partição ou a introdução de uma fila)
    • No caso de bancos de dados relacionais, é possível aumentar o tamanho da instância para acomodar uma workload maior, ou aumentar as IOPs provisionadas para permitir um throughput mais alto no 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.

    • Os bancos de dados com tecnologia sem servidor, como o DynamoDB, podem ajustar a escala do throughput de gravação automaticamente ou ajustar as unidades da capacidade de gravação (WCU) provisionadas, dependendo do modo da capacidade. 

    • 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. Você pode aproveitar 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 do ciclo de vida do Amazon EFS 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 o Amazon RDS e o Aurora para gerenciar as 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 monitoramento da AWS (como o Amazon CloudWatch) e de otimização (como a Lente de Armazenamento do Amazon S3) para otimizar constantemente o datastore usando um padrão de uso real.

Recursos

Documentos relacionados:

Vídeos relacionados:

Exemplos relacionados: