PERF03-BP02 Avalie 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 o desempenho da workload.
Antipadrões comuns:
-
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 tem ciência das 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 estabelecer 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 e o custo do desempenho, você deve 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 do desempenho.
Etapas da 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 da AWS e as práticas recomendadas para saber mais sobre as opções de configuração indicadas que podem ajudar a melhorar o desempenho do datastore. As principais opções de datastore a serem consideradas são as seguintes:
Opção de configuração Exemplos Offloading reads (like read replicas and caching) -
Em tabelas do DynamoDB, é possível descarregar leituras usando o DAX para armazenamento em cache.
-
Você pode 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.
Scaling writes (like partition key sharding or introducing a queue) -
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 de 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 ao escolher uma chave de partição mais igualmente distribuída ou fragmentar a gravação da chave de partição.
Policies to manage the lifecycle of your datasets -
Você pode usar o Ciclo de Vida do Amazon S3 para gerenciar os objetos em todo o ciclo de vida. Se os padrões de acesso forem desconhecidos, variáveis ou imprevisíveis, você pode usar o Amazon S3 Intelligent-Tiering, que monitora padrões de acesso e move automaticamente objetos que não foram acessados para níveis de acesso de menor custo. Você pode aproveitar as métricas de Lente de Armazenamento do Amazon S3 para identificar oportunidades de otimização e lacunas no gerenciamento do ciclo de vida.
-
Gerenciamento do ciclo de vida do Amazon EFS gerencia automaticamente o armazenamento de arquivos para os sistemas de arquivos.
Gerenciamento de conexões e agrupamento -
O Amazon RDS Proxy pode ser usado com o Amazon RDS e o Aurora para gerenciar as conexões com o banco de dados.
-
Bancos de dados de 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 que não seja de 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 desempenho.
-
Use ferramentas de monitoramento da AWS (como o Amazon CloudWatch
) e otimização (como a Lente de Armazenamento do Amazon S3 ) para otimizar continuamente o armazenamento de dados usando o padrão de uso do mundo real.
Recursos
Documentos relacionados:
Vídeos relacionados:
Exemplos relacionados: