Archiviazione, affidabilità e disponibilità di Amazon Neptune - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Archiviazione, affidabilità e disponibilità di Amazon Neptune

Amazon Neptune utilizza un'architettura di archiviazione distribuita e condivisa che si adatta automaticamente all'aumentare delle esigenze di archiviazione del database.

I dati di Neptune sono archiviati in un volume cluster che è un singolo volume virtuale che utilizza unità SSD Non-Volatile Memory Express (NVMe). Il volume cluster è costituito da una raccolta di blocchi logici noti come segmenti. A ciascuno di questi segmenti vengono assegnati 10 gigabyte (GB) di archiviazione. I dati in ogni segmento vengono replicati in sei copie, che vengono quindi allocate in tre zone di disponibilità (AZ) nella regione AWS in cui risiede il cluster database.

Quando viene creato un cluster database Neptune, gli viene assegnato un singolo segmento di 10 GB. Man mano che il volume di dati aumenta e supera lo spazio di archiviazione attualmente allocato, Neptune espande automaticamente il volume cluster aggiungendo nuovi segmenti. Un volume di cluster Neptune può crescere fino a una dimensione massima di 128 tebibyte (TiB) in tutte le regioni supportate tranne la Cina e GovCloud, dove è limitato a 64 TiB. Per i rilasci del motore precedenti a Rilascio: 1.0.2.2 (09/03/2020), tuttavia, la dimensione dei volumi cluster è limitata a 64 TiB in tutte le regioni.

Il volume cluster database contiene tutti i dati utente, gli indici e i dizionari (descritti nella sezione Modello di dati a grafo di Neptune) oltre ai metadati interni come i log delle transazioni interni. Tutti questi dati del grafo, inclusi gli indici e i log interni, non possono superare la dimensione massima del volume cluster.

Opzione Archiviazione ottimizzata per l'I/O

Neptune offre due modelli di prezzo per l'archiviazione:

  • Archiviazione standard: l'archiviazione standard fornisce archiviazione di database conveniente per applicazioni con un numero di operazioni di I/O da moderato a basso.

  • Archiviazione ottimizzata per l'I/O: con l'archiviazione ottimizzata per I/O, si paga solo per l'archiviazione utilizzata, a un costo maggiore rispetto all'archiviazione standard e non è previsto alcun pagamento per l'I/O utilizzato.

    L'archiviazione ottimizzata per l'I/O è progettata per soddisfare le esigenze di carichi di lavoro grafici con un numero elevato di operazioni di I/O a un costo prevedibile, con bassa latenza I/O e velocità di trasmissione effettiva I/O coerente.

    Per ulteriori informazioni, consulta Archiviazione ottimizzata per l'I/O.

Allocazione dell'archiviazione di Neptune

Anche se un volume cluster Neptune può aumentare fino a 128 TiB (o 64 TiB in alcune regioni), viene addebitato solo lo spazio effettivamente allocato. Lo spazio totale allocato è determinato dal livello più alto di archiviazione, ovvero la quantità massima allocata al volume cluster in qualsiasi momento durante la sua esistenza.

Ciò significa che anche se i dati utente vengono rimossi da un volume cluster, ad esempio tramite una query di rilascio come g.V().drop(), lo spazio totale allocato rimane lo stesso. Neptune ottimizza automaticamente lo spazio allocato inutilizzato per il riutilizzo in futuro.

Oltre ai dati utente, altri due tipi di contenuti occupano spazio di archiviazione interno, vale a dire i dati del dizionario e i log delle transazioni interni. Sebbene i dati del dizionario siano archiviati con i dati del grafo, persistono a tempo indeterminato, anche quando i dati a grafo supportati sono stati eliminati, il che significa che le voci possono essere riutilizzate se i dati vengono reintrodotti. I dati dei log interni vengono archiviati in uno spazio di archiviazione interno separato con un proprio limite massimo. Quando un log interno scade, lo spazio di archiviazione occupato può essere riutilizzato per altri log, ma non per i dati del grafo. La quantità di spazio interno che è stata allocata per i log è inclusa nello spazio totale riportato dalla metrica. VolumeBytesUsed CloudWatch

Vedi Best practice per l'archiviazione per trovare il modo di ridurre al minimo lo spazio di archiviazione allocato e di riutilizzare lo spazio.

Fatturazione dell'archiviazione Neptune

I costi di archiviazione vengono fatturati in base al livello più alto di archiviazione, come descritto sopra. Sebbene i dati vengano replicati in sei copie, viene fatturata solo una copia dei dati.

Puoi determinare qual è l'attuale limite massimo di archiviazione del tuo cluster DB monitorando la VolumeBytesUsed CloudWatch metrica (vedi). Monitoraggio di Neptune tramite Amazon CloudWatch

Altri fattori che possono influire sui costi di archiviazione di Neptune includono gli snapshot e il backup del database, che vengono fatturati separatamente come archiviazione di backup e si basano sui costi di archiviazione di Neptune (vedi Metriche di CloudWatch utili per la gestione dell'archiviazione di backup di Neptune).

Se si crea un clone del database, tuttavia, il clone punta allo stesso volume cluster utilizzato dal cluster database stesso, quindi non sono previsti costi di archiviazione aggiuntivi per i dati originali. Le modifiche successive al clone utilizzano il copy-on-write protocollo e comportano costi di storage aggiuntivi.

Per ulteriori informazioni sui prezzi di Neptune, consulta Prezzi di Amazon Neptune.

Best practice per l'archiviazione di Neptune

Poiché alcuni tipi di dati utilizzano un'archiviazione permanente in Neptune, utilizzare queste best practice per evitare grandi picchi di crescita dello spazio di archiviazione:

  • Quando si progetta il modello di dati a grafo, evitare il più possibile di utilizzare chiavi di proprietà e valori rivolti all'utente di natura temporanea.

  • Se si intende apportare modifiche al modello di dati, non caricare i dati in un cluster database esistente utilizzando il nuovo modello finché non si sono cancellati i dati in quel cluster database utilizzando l'API di reimpostazione rapida. La cosa migliore è spesso caricare dati che utilizzano un nuovo modello in un nuovo cluster database.

  • Le transazioni che operano su grandi quantità di dati generano log interni di dimensioni corrispondenti, che possono aumentare in modo permanente il livello più alto dello spazio dei log interni. Ad esempio, una singola transazione che elimina tutti i dati del cluster database potrebbe generare un enorme log interno che richiederebbe l'allocazione di una grande quantità di spazio di archiviazione interno e quindi una riduzione permanente dello spazio disponibile per i dati del grafo.

    Per evitare ciò, suddividere le transazioni di grandi dimensioni in transazioni più piccole e lasciare trascorrere del tempo tra loro in modo che i log interni associati abbiano la possibilità di scadere e liberare lo spazio di archiviazione interno per il riutilizzo nei log successivi.

  • Per monitorare la crescita del volume del cluster Neptune, puoi impostare CloudWatch un allarme sulla metrica. VolumeBytesUsed CloudWatch Ciò può essere particolarmente utile se i dati raggiungono la dimensione massima del volume cluster. Per ulteriori informazioni, consulta Usare gli CloudWatch allarmi Amazon.

L'unico modo per ridurre lo spazio di archiviazione utilizzato dal cluster database quando si dispone di una grande quantità di spazio allocato inutilizzato è esportare tutti i dati nel grafo e quindi ricaricarli in un nuovo cluster database. Consulta il servizio e l'utilità di esportazione dati di Neptune per esportare facilmente i dati da un cluster database e lo strumento di caricamento in blocco Neptune per reimportare facilmente i dati in Neptune.

Nota

La creazione e il ripristino di uno snapshot non riducono la quantità di spazio di archiviazione allocata per il cluster database, poiché uno snapshot conserva l'immagine originale dell'archiviazione sottostante del cluster. Se non viene utilizzata una quantità considerevole dello spazio di archiviazione allocato, l'unico modo per ridurre la quantità di spazio di archiviazione allocata è esportare i dati del grafo e ricaricarli in un nuovo cluster database.

Affidabilità e disponibilità elevata dell'archiviazione Neptune

Amazon Neptune è progettato per garantire affidabilità, durevolezza e tolleranza agli errori.

Il fatto che sei copie dei dati di Neptune siano conservate in tre zone di disponibilità (AZ) garantisce che l'archiviazione dei dati sia altamente durevole, con una probabilità molto bassa di perdita di dati. I dati vengono replicati automaticamente nelle zone di disponibilità indipendentemente dalla presenza di istanze database al loro interno e la quantità di replica è indipendente dal numero di istanze database nel cluster.

Ciò significa che è possibile aggiungere rapidamente una replica di lettura, perché Neptune non crea una nuova copia dei dati del grafo. Invece, la replica di lettura si connette al volume cluster che contiene già i dati. Allo stesso modo, la rimozione di una replica di lettura non rimuove i dati sottostanti.

È possibile eliminare il volume cluster e i relativi dati solo dopo aver eliminato tutte le relative istanze database.

Neptune inoltre rileva automaticamente gli errori nei segmenti che formano il volume cluster. Quando una copia dei dati in un segmento è danneggiata, Neptune ripara immediatamente quel segmento, utilizzando altre copie dei dati all'interno dello stesso segmento per garantire che i dati riparati siano aggiornati. Di conseguenza, Neptune evita la perdita di dati e riduce la necessità di point-in-time eseguire un ripristino per il ripristino in caso di guasto del disco.