Amazon Neptune 儲存體、可靠性和可用性 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon Neptune 儲存體、可靠性和可用性

Amazon Neptune 會使用分散式和共用儲存架構,該架構會隨著資料庫儲存需求的增長而自動擴展。

Neptune 資料儲存在叢集磁碟區中,這是使用非揮發性記憶體 Express (NVMe) SSD 型磁碟機的單一虛擬磁碟區。叢集磁碟區包含邏輯區塊 (稱為區段) 的集合。這些區段的每一個都會獲配置 10 GB 的儲存體。每個區段中的資料會複寫成六個副本,然後分配到資料庫叢集所在區域中 AWS 的三個可用區域 (AZs)。

建立 Neptune 資料庫叢集時,會為其配置 10 GB 的單一區段。當資料量增加並超過目前配置的儲存體時,Neptune 會透過新增區段來自動擴充叢集磁碟區。除了中國以外的所有支援區域,Neptune 叢集磁碟區的大小上限為 128 TB (TiB) GovCloud,且限制為 64 TiB。不過,對於 版本:1.0.2.2 (2020 年 3 月 9 日) 之前的版本引擎,所有區域中叢集磁碟區的大小限制為 64 TiB。

資料庫叢集磁碟區包含您的所有使用者資料、索引和字典 (如 Neptune 圖形資料模型。 一節所述),以及內部中繼資料,例如內部交易日誌。所有此圖形資料 (包括索引和內部日誌) 不得超過叢集磁碟區的大小上限。

I/O 優化儲存選項

Neptune 提供兩種儲存定價模式:

  • 標準儲存 — 標準儲存體可為中至低 I/O 使用量的應用程式提供具經濟效益的資料庫儲存。

  • I/O 優化儲存 — 若使用 I/O 優化儲存,您只需以高於標準儲存的成本為所使用的儲存體付費,而且無需為使用的 I/O 付費。

    I/O 優化儲存的設計符合 I/O 密集型圖形工作負載的需求,並具有低延遲要求和一致的 I/O 輸送量的低延遲。

    如需詳細資訊,請參閱 I/O 優化儲存

Neptune 儲存體配置

即使 Neptune 叢集磁碟區可以增長至 128 TiB (或在少數區域中,64 TiB),您也只需為實際配置的空間支付費用。配置的總空間是由儲存高水位決定,這是在叢集磁碟區存在期間隨時配置給叢集磁碟區的最大容量。

這表示,即使從叢集磁碟區移除使用者資料,例如透過捨棄查詢 (例如 g.V().drop()),總配置的空間仍保持不變。Neptune 會自動最佳化未使用的配置空間,以供日後重複使用。

除了使用者資料之外,另外兩種類型的內容會耗用內部儲存空間,即字典資料和內部交易日誌。雖然字典資料與圖形資料一起儲存,但即使刪除了它支援的圖形資料後,它還是會無限期地存在,這表示如果重新引入資料,可以重複使用這些項目。內部日誌資料儲存在個別的內部存儲空間中,該儲存空間具有自己的高水位。當內部日誌到期時,它所佔用的儲存體可以重複用於其他日誌,但不能用於圖形資料。已配置給記錄檔的內部空間量會包含在VolumeBytesUsedCloudWatch 指標報告的總空間中。

檢查 儲存體最佳實務 取得將配置的儲存體保持在下限並重複使用空間的方法。

Neptune 儲存計費

儲存成本是根據儲存高水位計費,如上所述。雖然您的資料會複寫為六個副本,但您只需為一份資料副本支付費用。

您可以透過監視VolumeBytesUsed CloudWatch 指標來判斷資料庫叢集目前的儲存高水位標記為何 (請參閱使用 Amazon 監控 Neptune CloudWatch)。

其他可能會影響 Neptune 儲存成本的因素包括資料庫快照和備份,這些快照和備份會以備份儲存體分別計費,並以 Neptune 儲存成本為基礎 (請參閱 有助於管理 Neptune 備份儲存體的 CloudWatch 指標)。

不過,如果您建立資料庫的複製,複製會指向資料庫叢集本身使用的同一叢集磁碟區,因此原始資料不會產生額外的儲存費用。複製後續變更會使用copy-on-write 通訊協定,並且會產生額外的儲存成本。

如需更多的 Neptune 定價資訊,請參閱 Amazon Neptune 定價

Neptune 儲存體最佳實務

由於某些類型的資料會耗用 Neptune 中的永久儲存體,因此請使用下列最佳實務來避免儲存體增長時出現大量激增的情況:

  • 在設計圖形資料模型時,請盡可能避免使用本質為暫時性的屬性索引鍵和使用者面向值。

  • 如果您打算變更資料模型,請在使用快速重設清除該資料庫叢集中的資料之前,請勿使用新模型將資料載入到現有的資料庫叢集API。最好的做法通常是將使用新模型的資料載入至新的資料庫叢集。

  • 對大量資料操作的交易會產生相應的大型內部日誌,這可能會永久增加內部日誌空間的高水位。例如,刪除資料庫叢集中所有資料的單一交易可能會產生巨大的內部日誌,該日誌需要配置大量內部儲存空間,進而永久減少可用於圖形資料的空間。

    為了避免發生這種情況,請將大型交易分割為較小的交易,並在它們之間留出時間,以便相關聯的內部日誌有機會過期並釋放其內部存儲空間,以供後續日誌重複使用。

  • 若要監視 Neptune 叢集磁碟區的成長,您可以在VolumeBytesUsed CloudWatch 指標上設定 CloudWatch 警示。如果您的資料達到叢集磁碟區的大小上限,這可能會特別有用。如需詳細資訊,請參閱使用 Amazon CloudWatch 警示

當您有大量未使用的配置空間時,縮減資料庫叢集使用的儲存空間的唯一方法是匯出圖形中的所有資料,然後將其重新載入至新的資料庫叢集。如需從資料庫叢集匯出資料的簡單方法,請參閱 Neptune 的資料匯出服務和公用程式,以及如需將資料匯回 Neptune 的簡單方法,請參閱 Neptune 的大量載入器

注意

建立和還原快照並不會減少為資料庫叢集配置的儲存空間量,因為快照會保留叢集基礎儲存體的原始映像。如果有大量配置的儲存裝置未使用,則縮減所配置之儲存空間量的唯一方法是匯出您的圖形資料,然後將其重新載入至新的資料庫叢集。

Amazon Neptune 儲存體可靠性和高可用性

Amazon Neptune 的設計目的是要既可靠、耐用且容錯。

在三個可用區域 (AZs) 之間維護六個 Neptune 資料副本的事實可確保資料的儲存具有高度耐用性,而且資料遺失的可能性極低。無論可用區域中是否有資料庫執行個體,資料都會跨這些可用區域自動複寫,而且複寫數量與您叢集中的資料庫執行個體數目無關。

這表示您可以快速新增僅供讀取複本,因為 Neptune 不會製作圖形資料的新副本。相反地,僅供讀取複本會連線至已包含您資料的叢集磁碟區。同樣地,移除僅供讀取複本並不會移除任何基礎資料。

您只能在刪除叢集磁碟區的所有資料庫執行個體之後刪除該叢集磁碟區及其資料。

Neptune 也會自動偵測在組成叢集磁碟區的區段中所發生的失敗。當區段中的資料副本損毀時,Neptune 會立即修復該區段,進而使用相同區段內的其他資料副本,以確保修復的資料是最新的。因此,Neptune 可避免資料遺失,並減少執行 point-in-time 還原以從磁碟故障復原的需求。