Armazenamento, confiabilidade e disponibilidade do Amazon 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á.

Armazenamento, confiabilidade e disponibilidade do Amazon Neptune.

O Amazon Neptune usa uma arquitetura de armazenamento distribuído e compartilhado que é escalada automaticamente à medida que suas necessidades de armazenamento de banco de dados aumentam.

Os dados do Neptune são armazenados em um volume de cluster, que é um único volume virtual que usa unidades baseadas em Non-Volatile Memory Express (). NVMe SSD O volume de cluster consiste em uma coleção de blocos lógicos conhecidos como segmentos. Cada um desses segmentos recebe 10 gigabytes (GB) de armazenamento. Os dados em cada segmento são replicados em seis cópias, que são então alocadas em três zonas de disponibilidade (AZs) na AWS região em que o cluster de banco de dados reside.

Quando um cluster de banco de dados do Neptune é criado, ele recebe um único segmento de 10 GB. À medida que o volume de dados aumenta e excede o armazenamento alocado no momento, o Neptune expande automaticamente o volume do cluster adicionando novos segmentos. Um volume de cluster Neptune pode crescer até um tamanho máximo de 128 tebibytes (TiB) em todas as regiões suportadas, exceto na China GovCloud e, onde está limitado a 64 TiB. No entanto, para versões de mecanismos anteriores a Versão: 1.0.2.2 (09/03/2020), o tamanho dos volumes do cluster é limitado a 64 TiB em todas as regiões.

O volume de cluster de banco de dados contém todos os dados do usuário, índices e dicionários (descritos na seção Modelo de dados de grafo do Neptune), bem como metadados internos, como logs de transações internas. Todos esses dados grafos, incluindo índices e logs internos, não podem exceder o tamanho máximo do volume do cluster.

Opção de armazenamento otimizada para E/S

O Neptune oferece dois modelos de preços para armazenamento:

  • Armazenamento padrão: o armazenamento padrão fornece armazenamento econômico de banco de dados para aplicações com uso moderado a baixo de E/S.

  • Armazenamento otimizado para E/S: com o armazenamento otimizado para E/S, você paga somente pelo armazenamento que está usando, a um custo maior do que o armazenamento padrão, e não paga nada pela E/S que usa.

    O armazenamento otimizado para E/S foi desenvolvido para atender às necessidades de workloads de grafos de uso intensivo de E/S a um custo previsível, com baixa latência de E/S e throughput de E/S consistente.

    Para obter mais informações, consulte Armazenamento otimizado para E/S.

Alocação de armazenamento do Neptune

Embora um volume de cluster do Neptune possa aumentar até 128 TiB (ou 64 TiB em algumas regiões), você só é cobrado pelo espaço realmente alocado. O espaço total alocado é determinado pela marca d'água alta de armazenamento, que é a quantidade máxima alocada ao volume do cluster a qualquer momento durante sua existência.

Isso significa que, mesmo que os dados do usuário sejam removidos de um volume de cluster, por exemplo, por meio de uma consulta de descarte como g.V().drop(), o espaço total alocado permanece o mesmo. O Neptune otimiza automaticamente o espaço alocado não utilizado para reutilização no futuro.

Além dos dados do usuário, dois tipos adicionais de conteúdo consomem espaço de armazenamento interno, ou seja, dados do dicionário e logs de transação internos. Embora os dados do dicionário sejam armazenados com dados do grafo, eles são persistidos indefinidamente, mesmo quando os dados do grafo compatíveis foram excluídos, o que significa que as entradas poderão ser reutilizadas se os dados forem reintroduzidos. Os dados de log internos são armazenados em um espaço de armazenamento interno separado que tem sua própria marca d'água alta. Quando um log interno expira, o armazenamento que ele ocupava pode ser reutilizado para outros logs, mas não para dados de grafo. A quantidade de espaço interno que foi alocada para registros está incluída no espaço total relatado pela VolumeBytesUsed CloudWatch métrica.

Confira Práticas recomendadas de armazenamento para conhecer maneiras de reduzir ao mínimo o armazenamento alocado e de reutilizar o espaço.

Faturamento de armazenamento do Neptune

Os custos de armazenamento são cobrados com base na marca d’água alta de armazenamento, conforme descrito acima. Embora seus dados sejam replicados em seis cópias, você só será cobrado por uma cópia dos dados.

Você pode determinar qual é o limite máximo de armazenamento atual do seu cluster de banco de dados monitorando a VolumeBytesUsed CloudWatch métrica (consulteMonitorando Neptune usando a Amazon CloudWatch).

Outros fatores que podem afetar seus custos de armazenamento do Neptune incluem snapshots e backup do banco de dados, que são cobrados separadamente como armazenamento de backup e se baseiam nos custos de armazenamento do Neptune (consulte CloudWatch métricas que são úteis para gerenciar o armazenamento de backup do Neptune).

No entanto, se você criar um clone do seu banco de dados, o clone apontará para o mesmo volume de cluster que seu próprio cluster de banco de dados usa, portanto, não há cobrança adicional de armazenamento pelos dados originais. Alterações subsequentes no clone usam o copy-on-write protocolo e resultam em custos adicionais de armazenamento.

Para obter mais informações sobre preços do Neptune, consulte Preços do Amazon Neptune.

Práticas recomendadas de armazenamento do Neptune

Como determinados tipos de dados consomem armazenamento permanente no Neptune, use estas práticas recomendadas para evitar grandes picos no crescimento do armazenamento:

  • Ao projetar seu modelo de dados do grafo, evite, o máximo possível, usar chaves de propriedade e valores voltados para o usuário que sejam temporários por natureza.

  • Se você planeja fazer alterações em seu modelo de dados, não carregue dados em um cluster de banco de dados existente usando o novo modelo até limpar os dados desse cluster de banco de dados usando a reinicialização API rápida. Geralmente, a melhor estratégia é carregar dados que usam um novo modelo em um novo cluster de banco de dados.

  • As transações que trabalham com grandes volumes de dados geram logs internos grandes de modo correspondente, o que pode aumentar permanentemente a marca d'água alta do espaço de log interno. Por exemplo, uma única transação que exclua todos os dados do cluster de banco de dados pode gerar um enorme log interno que exigiria a alocação de uma grande quantidade de armazenamento interno e, assim, reduziria permanentemente o espaço disponível para dados de grafo.

    Para evitar isso, divida as transações grandes em transações menores e reserve um tempo entre elas para que os logs internos associados tenham a chance de expirar e liberar seu armazenamento interno para reutilização pelos logs subsequentes.

  • Para monitorar o crescimento do volume do cluster Neptune, você pode definir CloudWatch um alarme na métrica. VolumeBytesUsed CloudWatch Isso poderá ser particularmente útil se os dados estiverem atingindo o tamanho máximo do volume do cluster. Para obter mais informações, consulte Usando CloudWatch alarmes da Amazon.

A única maneira de reduzir o espaço de armazenamento usado pelo seu cluster de banco de dados quando você tem uma grande quantidade de espaço alocado não utilizado é exportar todos os dados do seu grafo e depois recarregá-los em um novo cluster de banco de dados. Consulte o serviço e utilitário de exportação de dados do Neptune para ver uma maneira fácil de exportar dados de um cluster de banco de dados e o carregador em massa do Neptune para conhecer uma maneira fácil de importar dados de volta para o Neptune.

nota

Criar e restaurar um snapshot não reduz a quantidade de armazenamento alocada para seu cluster de banco de dados, porque um snapshot retém a imagem original do armazenamento subjacente do cluster. Se uma quantidade considerável do armazenamento alocado não estiver sendo usada, a única maneira de reduzir a quantidade de armazenamento alocado é exportar os dados do grafo e recarregá-los em um novo cluster de banco de dados.

Confiabilidade e alta disponibilidade do armazenamento do Neptune

O Amazon Neptune foi projetado para ser confiável, durável e tolerante a falhas.

O fato de seis cópias dos dados do Neptune serem mantidas em três zonas de disponibilidade AZs () garante que o armazenamento dos dados seja altamente durável, com probabilidade muito baixa de perda de dados. Os dados são replicados automaticamente em todas as zonas de disponibilidade, independentemente de haver instâncias de bancos de dados nelas, e a quantidade de replicação independe do número de instâncias de banco de dados no cluster.

Isso significa que é possível adicionar uma réplica de leitura rapidamente, porque o Neptune não cria uma cópia dos dados do grafo. Em vez disso, a réplica de leitura se conecta ao volume de cluster que já contém os dados. Da mesma forma, remover uma réplica de leitura não remove nenhum dos dados subjacentes.

Você pode excluir o volume do cluster e seus dados somente depois de excluir todas as suas instâncias de banco de dados.

O Neptune também detecta automaticamente as falhas nos segmentos que compõem o volume do cluster. Quando uma cópia dos dados em um segmento é corrompida, o Neptune repara imediatamente esse segmento, usando outras cópias dos dados dentro do mesmo segmento para garantir que os dados reparados estejam atualizados. Como resultado, o Neptune evita a perda de dados e reduz a necessidade de point-in-time realizar uma restauração para se recuperar de uma falha no disco.