Configuração adicional para clusters e instâncias de banco de dados do Neptune Serverless - Amazon Neptune

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á.

Configuração adicional para clusters e instâncias de banco de dados do Neptune Serverless

Além de definir a capacidade mínima e máxima para o cluster de banco de dados do Neptune Serverless, há algumas outras opções de configuração a serem consideradas.

Combinar instâncias sem servidor e provisionadas em um cluster de banco de dados

Um cluster de banco de dados não precisa ser apenas sem servidor. É possível criar uma combinação de instâncias sem servidor e provisionadas (uma configuração mista).

Por exemplo, suponha que você precise de mais capacidade de gravação do que está disponível em uma instância sem servidor. Nesse caso, é possível configurar o cluster com um gravador provisionado muito grande e ainda usar as instâncias sem servidor para os leitores.

Ou suponha que a workload de gravação no cluster varie, mas a workload de leitura permaneça estável. Nesse caso, você pode configurar o cluster com um gravador sem servidor e um ou mais leitores provisionados.

Consulte Usar o Amazon Neptune Serverless para obter informações sobre como criar um cluster de banco de dados de configuração mista.

Definir os níveis de promoção para instâncias do Neptune Serverless

No caso de clusters que contenham várias instâncias sem servidor ou uma mistura de instâncias sem servidor e provisionadas, preste atenção à configuração do nível de promoção de cada instância sem servidor. Essa configuração controla mais aspectos do comportamento das instâncias sem servidor do que das instâncias de banco de dados provisionadas.

No painel, AWS Management Console, você especifica essa configuração usando a prioridade de failover em Configuração adicional nas páginas Criar banco de dados, Modificar instância e Adicionar leitor. Você pode ver essa propriedade para instâncias existentes na coluna Nível de prioridade da página Bancos de dados. Você também pode ver essa propriedade na página de detalhes de uma instância ou um cluster de banco de dados.

No caso de instâncias provisionadas, a escolha do nível de 0 a 15 determina apenas a ordem na qual o Neptune escolhe qual instância de leitor promover ao gravador durante uma operação de failover. No caso de instâncias de leitor do Neptune Serverless, o número do nível também determina se a escala da instância será aumentada verticalmente para corresponder à capacidade da instância de gravador ou se será escalada independentemente dela, com base somente na própria workload.

As instâncias de leitor do Neptune Serverless no nível 0 ou 1 são mantidas em uma capacidade mínima pelo menos tão alta quanto a instância de gravador, para que estejam prontas para assumir o gravador em caso de failover. Caso o gravador seja uma instância provisionada, o Neptune estima a capacidade sem servidor equivalente e usa essa estimativa como a capacidade mínima para a instância de leitor sem servidor.

As instâncias de leitor do Neptune Serverless nos níveis 2 a 15 não têm a mesma restrição na capacidade mínima e são escaladas independentemente do gravador. Quando estão ociosos, eles diminuem para o NCU valor mínimo especificado na faixa de capacidade do cluster. No entanto, isso poderá causar problemas se a workload de leitura aumentar rapidamente.

Manter a capacidade do leitor alinhada à capacidade do gravador

Um fator importante a ser lembrado é que convém garantir que as instâncias de leitor possam acompanhar a instância de gravador, para evitar atrasos excessivos na replicação. Isso é particularmente preocupante em duas situações em que as instâncias de leitor sem servidor não são escaladas automaticamente em sincronia com a instância de gravador:

  • Quando o gravador é provisionado e os leitores são sem servidor.

  • Quando o gravador é sem servidor e os leitores sem servidor estão nos níveis de promoção de 2 a 15.

Nos dois casos, defina a capacidade mínima sem servidor para corresponder à capacidade esperada do gravador, a fim de garantir que as operações do leitor não atinjam o tempo limite e causem reinicializações. No caso de uma instância de gravador provisionada, defina a capacidade mínima para corresponder à da instância provisionada. No caso de um gravador sem servidor, a configuração ideal pode ser mais difícil de prever.

Como o intervalo de capacidade da instância é definido em nível de cluster, todas as instâncias sem servidor são controladas pelas mesmas configurações de capacidade mínima e máxima. As instâncias de leitor nos níveis 0 e 1 são escaladas em sincronia com a instância de gravador, mas as instâncias nos níveis de promoção de 2 a 15 são escaladas independentemente umas das outras e da instância de gravador, dependendo da workload. Se você definir a capacidade mínima muito baixa, a escala das instâncias ociosas nos níveis de 2 a 15 poderá ser reduzida verticalmente de forma excessiva para ser aumentada com rapidez suficiente para lidar com uma explosão repentina na atividade do gravador.

Evitar definir um valor de tempo limite muito alto

Você poderá gerar custos inesperados se definir um valor de tempo limite de consulta muito alto em uma instância sem servidor.

Sem uma configuração de tempo limite razoável, você pode emitir acidentalmente uma consulta que exija um tipo de instância avançado e caro e que continue em execução por muito tempo, gerando custos nunca previstos. É possível evitar essa situação usando um valor de tempo limite que acomode a maioria das consultas e ocasione o término do tempo limite apenas para as excepcionalmente longas.

Isso vale tanto para valores de tempo limite de consulta gerais definidos com parâmetros quanto para valores de tempo limite por consulta definidos com dicas de consulta.

Otimizar a configuração do Neptune Serverless

Se o cluster de banco de dados do Neptune Serverless não estiver ajustado à workload em execução, você poderá perceber que ele não funciona de maneira ideal. É possível ajustar a configuração de capacidade mínima e/ou máxima para que ela possa ser escalada sem encontrar problemas de memória.

  • Aumentar a configuração de capacidade mínima do cluster Isso pode corrigir a situação em que a instância ociosa é escalada para uma capacidade com menos memória do que a aplicação e os atributos habilitados precisam.

  • Aumente a configuração de capacidade máxima do cluster. Isso pode corrigir a situação em que não é possível aumentar a escala de um banco de dados ocupado verticalmente até uma capacidade com memória suficiente para lidar com a workload e os atributos habilitados com uso intenso de memória.

  • Altere a workload na instância em questão. Por exemplo, você pode adicionar instâncias de leitor ao cluster para distribuir a carga de leitura por mais instâncias.

  • Ajuste as consultas da aplicação para que elas usem menos recursos.

  • Tente usar uma instância provisionada que seja maior do que o máximo NCUs disponível no Neptune Serverless, para ver se ela é mais adequada à memória e aos requisitos da carga de trabalho. CPU