Provisionar infraestrutura ao migrar do Neo4j para o Neptune - 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á.

Provisionar infraestrutura ao migrar do Neo4j para o Neptune

Os clusters do Amazon Neptune são criados para serem escalados em três dimensões: armazenamento, capacidade de gravação e capacidade de leitura. As seções abaixo abordam opções específicas a serem consideradas ao migrar.

Provisionar armazenamento

O armazenamento de qualquer cluster do Neptune é provisionado automaticamente, sem nenhuma sobrecarga administrativa de sua parte. Ele é redimensionado dinamicamente em blocos de 10 GB à medida que as necessidades de armazenamento do cluster aumentam. Como resultado, não há necessidade de estimar e provisionar ou provisionar em excesso o armazenamento para lidar com o crescimento futuro dos dados.

Provisionar a capacidade de gravação

O Neptune oferece uma única instância de gravador que pode ser escalada verticalmente para qualquer tamanho de instância disponível na página Preços do Neptune. Ao ler e gravar dados em uma instância de gravador, todas as transações são compatíveis com ACID, com isolamento de dados conforme definido em Níveis de isolamento de transação no Neptune.

A escolha de um tamanho ideal de uma instância de gravador exige a execução de testes de carga para determinar o tamanho ideal da instância para a workload. Qualquer instância no Neptune pode ser redimensionada a qualquer momento modificando a classe da instância de banco de dados. É possível estimar o tamanho da instância inicial com base na simultaneidade e na latência média da consulta, conforme descrito abaixo em Estimar o tamanho ideal da instância ao provisionar o cluster.

Provisionar a capacidade de leitura

O Neptune foi criado para escalar instâncias de réplica de leitura horizontalmente, adicionando até 15 delas a um cluster (ou mais em um banco de dados global do Neptune) e verticalmente a qualquer tamanho de instância disponível na página Preços do Neptune. Todas as instâncias de réplica de leitura do Neptune usam o mesmo volume de armazenamento subjacente, permitindo a replicação transparente dos dados com o mínimo de atraso.

Além de permitir a escalabilidade horizontal das solicitações de leitura em um cluster do Neptune, as réplicas de leitura também atuam como destinos de failover para a instância de gravador a fim de permitir alta disponibilidade. Consulte Diretrizes operacionais básicas do Amazon Neptune para obter sugestões sobre como determinar o número e o posicionamento apropriados das réplicas de leitura no cluster.

Para aplicações em que a conectividade e a workload sejam imprevisíveis, o Neptune também é compatível com um atributo de ajuste de escala automático que pode ajustar automaticamente o número de réplicas do Neptune com base nos critérios especificados.

Para determinar o tamanho e o número ideais das instâncias de réplica de leitura, é necessário realizar testes de carga para determinar as características da workload de leitura que elas devem aceitar. Qualquer instância no Neptune pode ser redimensionada a qualquer momento modificando a classe da instância de banco de dados. É possível estimar o tamanho da instância inicial com base na simultaneidade e na latência média da consulta, conforme descrito na próxima seção.

Use o Neptune Serverless para escalar instâncias de leitura e gravação automaticamente, conforme necessário

Embora muitas vezes seja útil poder estimar a capacidade computacional que as workloads previstas exigirão, você pode configurar o atributo Neptune Serverless para aumentar e reduzir verticalmente a escala da capacidade de leitura e gravação de modo automático. Isso pode ajudar você a atender aos requisitos de pico e, ao mesmo tempo, reduzir automaticamente quando a demanda diminui.

Estimar o tamanho ideal da instância ao provisionar o cluster

A estimativa do tamanho ideal da instância exige conhecer a latência média da consulta no Neptune, quando a workload está em execução, bem como o número de consultas simultâneas processadas. Uma estimativa aproximada do tamanho da instância pode ser calculada como a latência média da consulta multiplicada pelo número de consultas simultâneas. Isso fornece o número médio de threads simultâneos necessários para lidar com a workload.

Cada vCPU em uma instância do Neptune pode aceitar dois threads de consulta simultâneos, portanto, dividir os threads por dois fornece o número de vCPUs necessárias, que podem ser correlacionadas ao tamanho apropriado da instância na página Preços do Neptune. Por exemplo:

Average Query Latency: 30ms (0.03s) Number of concurrent queries: 1000/second Number of threads needed: 0.03 x 1000 = 30 threads Number of vCPUs needed: 30 / 2 = 15 vCPUs

Correlacionando isso com o número de vCPUs em uma instância, vemos que obtemos uma estimativa aproximada de que a r5.4xlarge seria a instância recomendada para testar essa workload. Essa estimativa é aproximada e serve apenas para oferecer orientação inicial sobre a seleção do tamanho da instância. Qualquer aplicação deve passar por um exercício de dimensionamento correto para determinar o número e os tipos apropriados de instâncias adequadas à workload.

Os requisitos de memória também devem ser levados em consideração, assim como os requisitos de processamento. O Neptune tem melhor desempenho quando os dados acessados pelas consultas estão disponíveis no cache do grupo de buffer da memória principal. O provisionamento de memória suficiente também pode reduzir significativamente os custos de E/S.

Mais detalhes e orientações sobre o dimensionamento de instâncias em um cluster do Neptune podem ser encontrados na página Dimensionar instâncias de banco de dados em um cluster de banco de dados do Neptune.