Amazon DocumentDB: 它是如何工作的 - Amazon DocumentDB

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

Amazon DocumentDB: 它是如何工作的

Amazon DocumentDB 資料庫 (與 MongoDB 相容性) 是一個完全受管、與 MongoDB 相容的資料庫服務。透過 Amazon DocumentDB,您可以執行相同的應用程式程式碼,並使用與 MongoDB 搭配使用的相同驅動程式和工具。Amazon DocumentDB 與 MongoDB 3.6,4.0 和 5.0 兼容。

當您使用 Amazon DocumentDB 時,首先要創建一個叢集。資料庫叢集包含零或多個資料庫執行個體,和一個管理這些執行個體資料的叢集磁碟區。Amazon DocumentDB 叢集磁碟區是跨越多個可用區域的虛擬資料庫儲存磁碟區。每個可用區域具有叢集資料的複本。

Amazon DocumentDB 集群由兩個組件組成:

  • 叢集磁碟區:使用雲端原生儲存服務,跨三個可用區域六種方式複寫資料,提供高耐用性和可用性的儲存體。Amazon DocumentDB 叢集只有一個叢集磁碟區,最多可存放 128 TiB 的資料。

  • 執行個體 — 提供資料庫的處理能力,將資料寫入叢集儲存磁碟區,以及從叢集儲存磁碟區讀取資料。一個 Amazon DocumentDB 集群可以有 0-16 個實例。

執行個體提供以下兩種角色:

  • 主要執行個體:支援讀取和寫入作業,並對叢集磁碟區執行所有資料修改。每個 Amazon DocumentDB 叢集都有一個主要執行個體。

  • 複本執行個體 — 僅支援讀取作業。除了主執行個體之外,Amazon DocumentDB 叢集最多可以有 15 個複本。擁有多個複本可讓您分配讀取工作負載。此外,透過將複本置於不同可用區域,您也可提高叢集可用性。

下圖說明 Amazon DocumentDB 叢集中叢集磁碟區、主要執行個體和複本之間的關係:

Amazon DocumentDB 端點,包括叢集、讀取器和執行個體端點。

叢集執行個體不需為相同執行個體類別,而您可以隨需要佈建和終止它們。這個架構可讓您擴展叢集的運算容量,而不影響儲存。

當您的應用程式會將資料寫入主執行個體,主執行個體會將耐用資料寫入叢集磁碟區。然後,它會將該寫入狀態 (而非資料) 複寫到每個使用中複本。Amazon DocumentDB 複本不會參與處理寫入,因此 Amazon DocumentDB 複本對於讀取擴展有利。從 Amazon DocumentDB 複本讀取最終會與最小的複本延遲一致,通常在主執行個體寫入資料之後不到 100 毫秒。從複本的讀取保證會以複本寫入主要執行個體的順序來進行讀取。複本延遲取決於資料變更的速率,以及高寫入活動的期間可能會增加複本延遲。如需詳細資訊,請參閱 Amazon DocumentDB 指標ReplicationLag 指標。

Amazon DocumentDB 端點

Amazon DocumentDB 提供多種連線選項,可為各種使用案例提供服務。若要連接到 Amazon DocumentDB 叢集中的執行個體,請指定執行個體的端點。端點是主機地址和連接埠號碼 (以冒號分隔)。

除非您有連線至讀取器端點或執行個體端點的特定使用案例,否則我們建議使用叢集端點並在複本集模式下 (請參閱 以複本集形式連接至 Amazon DocumentDB) 連線至叢集。若要將請求路由到您的複本,請選擇驅動程式讀取偏好設定,以發揮最大讀取擴展,同時符合您應用程式的讀取一致性要求。secondaryPreferred 讀取偏好設定會啟用複本讀取,並釋出主要執行個體以進行更多工作。

下列端點可從 Amazon DocumentDB 叢集取得。

叢集端點

叢集端點會連接至叢集目前的主要執行個體。您可以使用叢集端點來執行讀取和寫入操作。亞 Amazon DocumentDB 叢集只有一個叢集端點。

叢集端點可為叢集的讀寫連接提供容錯移轉支援。如果叢集目前的主要執行個體發生故障,您的叢集至少有一個作用中的僅供讀取複本,叢集端點會自動重新導向到新主要執行個體的連線請求。連線到 Amazon DocumentDB 叢集時,建議您使用叢集端點並以複本集模式連線到叢集 (請參閱以複本集形式連接至 Amazon DocumentDB)。

以下是 Amazon DocumentDB 群集端點的示例:

sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017

以下是使用此叢集端點的範例連線字串:

mongodb://username:password@sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017

如需尋找叢集端點的詳細資訊,請參閱 尋找叢集端點

讀取器端點

讀取器端點負載會平衡在叢集中所有可用複本的僅供讀取連線。如果您透過replicaSet模式進行連線,則叢集讀取器端點將作為叢集端點執行,表示在連接字串中,複本集參數為&replicaSet=rs0。在這種情況下,您將能夠對主要項目執行寫入作業。不過,如果您連線到指定的叢集directConnection=true,則嘗試透過與讀取器端點的連線執行寫入作業會導致錯誤。Amazon DocumentDB 集群只有一個讀取器端點。

如果叢集僅包含一個 (主要) 執行個體,讀取器端點會連接至主要執行個體。將複本執行個體新增至 Amazon DocumentDB 叢集時,讀取器端點會在新複本處於作用中狀態後開啟與該複本的唯讀連線。

以下是 Amazon DocumentDB 叢集的讀取器端點範例:

sample-cluster.cluster-ro-123456789012.us-east-1.docdb.amazonaws.com:27017

以下是使用此讀取器端點的範例連線字串:

mongodb://username:password@sample-cluster.cluster-ro-123456789012.us-east-1.docdb.amazonaws.com:27017

讀取器端點負載會平衡唯讀連線,而不是讀取請求。如果一些讀取器端點連線的使用量較其他連線頻繁,則系統可能無法在叢集中的執行個體間平均地平衡讀取請求。建議連線至做為複本集的叢集端點,並利用 secondaryPreferred 讀取偏好設定選項,來發佈請求。

如需尋找叢集端點的詳細資訊,請參閱 尋找叢集端點

執行個體端點

執行個體端點會連線到叢集中的特定執行個體。您可以將目前主要執行個體的執行個體端點用於讀取和寫入操作。不過,嘗試對執行個體端點執行讀取複本的寫入操作可能會造成錯誤。Amazon DocumentDB 叢集的每個作用中執行個體都有一個執行個體端點。

執行個體端點對特定執行個體的連接提供直接控制,使用叢集端點或讀取器端點的案例可能不適用。範例使用案例佈建的是適用於週期性唯讀分析工作負載。您可以佈建 larger-than-normal 複本執行個體、使用其執行個體端點直接連線至新的較大型執行個體、執行分析查詢,然後終止執行個體。使用執行個體端點可讓分析流量不會影響到其他叢集執行個體。

以下是 Amazon DocumentDB 叢集中單一執行個體的執行個體端點範例:

sample-instance.123456789012.us-east-1.docdb.amazonaws.com:27017

以下是使用此執行個體端點的範例連線字串:

mongodb://username:password@sample-instance.123456789012.us-east-1.docdb.amazonaws.com:27017
注意

做為主要或複本的執行個體角色可以因為容錯移轉事件而變更。應用程式絕不應該假設特定執行個體端點是主執行個體。我們不建議連線至生產應用程式的執行個體端點。我們建議您改為使用叢集端點並在複本集模式下 (請參閱 以複本集形式連接至 Amazon DocumentDB) 連接至您的叢集。如需執行個體容錯移轉優先順序更進階的控制,請參閱了解 Amazon DocumentDB 叢集容錯

如需尋找叢集端點的詳細資訊,請參閱 搜尋執行個體的端點

複本集模式

您可以指定複本集名稱,以複本集模式連接到 Amazon DocumentDB 叢集端點。rs0在複本集模式中連接可讓您指定 Read Concern、Write Concern 和 Read Preference 選項。如需詳細資訊,請參閱 讀取一致性

以下是在複本集模式中連接的範例連線字串:

mongodb://username:password@sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0

當您以複本集模式連線時,您的 Amazon DocumentDB 叢集會以複本集的形式顯示給驅動程式和用戶端。從 Amazon DocumentDB 叢集新增和移除的執行個體會自動反映在複本集組態中。

每個 Amazon DocumentDB 叢集都包含具有預設名稱的單一複本集。rs0複本集名稱無法修改。

若是一般用途,建議連接到在複本集模式中的叢集端點。

注意

Amazon DocumentDB 叢集中的所有執行個體都會在相同的 TCP 連接埠上接聽以進行連線。

TLS 支援

如需使用傳輸層安全性 (TLS) 連線至 Amazon DocumentDB 的詳細資訊,請參閱。對傳輸中資料進行加密

Amazon DocumentDB 存儲

Amazon DocumentDB 資料存放在叢集磁碟區中,叢集磁碟區是使用固態硬碟 (SSD) 的單一虛擬磁碟區。叢集磁碟區由六個資料副本組成,這些副本會在單一的多個可用區域間自動複寫 AWS 區域。此複寫有助於確保您的資料具有高耐用性,同時降低資料遺失的機率。它也有助於確保您的叢集在容錯移轉時提供更高的可用性,因為資料副本已存在於其他可用區域。這些副本可以繼續為 Amazon DocumentDB 叢集中的執行個體提供資料請求。

資料儲存體的計費方式

隨著資料量的增加,Amazon DocumentDB 會自動增加叢集磁碟區的大小。Amazon DocumentDB 叢集磁碟區的大小上限為 128 TiB;不過,您只需支付在 Amazon DocumentDB 叢集磁碟區中使用的空間費用。從 Amazon DocumentDB 4.0 開始,當資料被移除 (例如透過刪除集合或索引) 時,整體配置的空間會減少可比較的數量。因此,您可以刪除不再需要的集合、索引和資料庫,以減少儲存體費用。使用 Amazon DocumentDB 3.6 時,移除資料時 (例如透過刪除集合或索引),整體配置的空間會保持不變。future 資料量增加時,系統會自動重複使用可用空間。

注意

使用 Amazon DocumentDB 3.6 時,儲存成本是根據儲存「高水位標記」(在任何時間點為 Amazon DocumentDB 叢集配置的最大量)。您可以避免建立大量臨時資訊的 ETL 做法,或在移除不需要的舊資料之前載入大量新資料,藉此管理成本。如果從 Amazon DocumentDB 叢集移除資料會導致大量已配置但未使用的空間,則重設高浮水印需要執行邏輯資料傾印,並使用或等工具還原到新叢集。mongodump mongorestore建立和還原快照不會減少配置的儲存空間,因為基礎儲存的實體配置在還原的快照中保持不變。

注意

使用 mongodumpmongorestore 之類的公用程式會根據所讀取和寫入儲存磁碟區的資料大小產生 I/O 費用。

如需 Amazon 資料儲存和 I/O 定價的相關資訊,請參閱 Amazon DocumentDB (與 MongoDB 相容性) 定價和定價常見問答集。

Amazon DocumentDB 複寫

在 Amazon DocumentDB 叢集中,每個複本執行個體都會公開一個獨立的端點。這些複本端點對叢集磁碟區的資料提供唯讀存取權。它們可讓您隨著多個複寫執行個體擴展資料的讀取工作負載。它們還有助於提高資料讀取的效能,並提高 Amazon DocumentDB 叢集中資料的可用性。Amazon DocumentDB 複本也是容錯移轉目標,如果 Amazon DocumentDB 叢集的主執行個體發生故障,就會快速升級。

Amazon DocumentDB 可靠性

Amazon DocumentDB 的設計是為了可靠、耐用和容錯。若要提高可用性,您應該設定 Amazon DocumentDB 叢集,以便在不同的可用區域中擁有多個複本執行個體。) Amazon DocumentDB 包含數種自動功能,使其成為可靠的資料庫解決方案。

儲存體自動修復

Amazon DocumentDB 會在三個可用區域中維護多個資料副本,大幅減少因儲存故障而遺失資料的機會。Amazon DocumentDB 會自動偵測叢集磁碟區中的故障。當叢集磁碟區的某個區段發生故障時,Amazon DocumentDB 會立即修復該區段。它會使用叢集磁碟區組成之其他磁碟區中的資料,以協助確保中修復區段的資料是最新的。因此,Amazon DocumentDB 可避免資料遺失,並減少執行還原以從執行個體故障中 point-in-time 復原的需求。

可存活的快取預備

Amazon DocumentDB 會在與資料庫不同的程序中管理其頁面快取,因此頁面快取可以獨立存在於資料庫之外。在極少的情況下,若資料庫發生故障,頁面快取仍會留在記憶體中。這可確保在資料庫重新啟動時緩衝集區仍是最新狀態。

損毀復原

Amazon DocumentDB 的設計目的是幾乎可以立即從損毀中復原,並繼續為您的應用程式資料提供服務。Amazon DocumentDB 會在 parallel 執行緒上以非同步方式執行損毀復原,因此您的資料庫在當機後幾乎可以立即開啟且可用。

資源治理

Amazon DocumentDB 可保護在服務中執行關鍵流程所需的資源,例如運作狀態檢查。為此,當執行個體遇到高記憶體壓力時,Amazon DocumentDB 會限制請求。因此,某些作業可能會排入佇列,等待記憶體壓力消退。如果記憶體壓力持續,佇列的作業可能會逾時。您可以使用下列 CloudWatch 指標來監視是否因記憶體不足而導致的服務節流作業:LowMemThrottleQueueDepth、、LowMemThrottleMaxQueueDepthLowMemNumOperationsThrottledLowMemNumOperationsTimedOut如需詳細資訊,請參閱使用. CloudWatch 如果您看到執行個體持續存在的記憶體壓力,我們建議您擴大執行個體,為您的工作負載提供額外的記憶體。 LowMem CloudWatch

讀取偏好設定選項

Amazon DocumentDB 使用雲端原生共用儲存服務,在三個可用區域複寫資料六次,以提供高耐用性。Amazon DocumentDB 不需要將資料複寫到多個執行個體來達到耐久性。無論您的叢集資料包含的是單一執行個體或 15 個執行個體,它都具有耐用性。

寫入耐久性

Amazon DocumentDB 使用獨特、分散式、容錯、自我修復的儲存系統。此系統會在三個 AWS 可用區域複製六份資料副本 (V=6),以提供高可用性和耐久性。寫入資料時,Amazon DocumentDB 可確保在確認寫入用戶端之前,在大多數節點上持久記錄所有寫入作業。如果您正在執行三節點 MongoDB 複本集,與 Amazon DocumentDB 進行比較時,使用的寫入問題{w:3, j:true}會產生最佳的組態。

對 Amazon DocumentDB 叢集的寫入必須由叢集的寫入執行個體處理。嘗試寫入讀取器會導致錯誤。來自 Amazon DocumentDB 主要執行個體的確認寫入資訊是耐用的,而且無法復原。Amazon DocumentDB 預設為高耐用性,不支援非耐用寫入選項。您無法修改耐用性層級 (即寫入考量)。Amazon DocumentDB 忽略 w = 任何東西,並且是有效的 w:3 和 j:真。你不能減少它。

由於 Amazon DocumentDB 架構中的儲存和運算是分開的,因此具有單一執行個體的叢集非常耐用。耐用性會在儲存層處理。因此,具有單一執行個體和一個具有三個執行個體的 Amazon DocumentDB 叢集可達到相同等級的耐久性。您可以設定您的叢集,以適用於特定使用案例,同時又可為您的資料提供高耐用性。

對 Amazon DocumentDB 叢集的寫入在單一文件中是不可原子的。

Amazon DocumentDB 不支援此選wtimeout項,如果指定了值,也不會傳回錯誤。保證不會無限期封鎖對主要 Amazon DocumentDB 執行個體的寫入。

讀取隔離

從 Amazon DocumentDB 執行個體讀取,只會傳回在查詢開始之前持久耐用的資料。讀取永遠不會傳回在查詢開始執行後修改的資料,在任何情況下。也不可能會發生已變更讀取。

讀取一致性

從 Amazon 文件資料庫叢集讀取的資料非常耐用,而且不會復原。您可以透過指定請求或連線的讀取偏好設定來修改 Amazon DocumentDB 讀取的讀取一致性。Amazon DocumentDB 不支持非耐久性讀取選項。

在正常操作條件下,從 Amazon DocumentDB 叢集的主要執行個體讀取會保持一致性,且具有 read-after-write 一致性。如果在寫入和後續讀取之間發生容錯移轉事件,系統可以短暫傳回非極其一致的讀取。所有來自僅供讀取複本的讀取最終皆會一致,並以相同順序傳回資料,複本延遲通常小於 100 毫秒。

Amazon DocumentDB 讀取首選項

只有在以複本集模式從叢集端點讀取資料時,Amazon DocumentDB 才支援設定讀取偏好設定選項。設定讀取偏好設定選項會影響 MongoDB 用戶端或驅動程式將讀取請求路由到 Amazon DocumentDB 叢集中執行個體的方式。您可以為特定查詢設定讀取偏好設定選項,或將其設為 MongoDB 驅動程式的一般選項。(請參閱用戶端或驅動程式的文件,以取得如何設定讀取偏好設定選項。)

如果您的用戶端或驅動程式未以複本集模式連線至 Amazon DocumentDB 叢集端點,則指定讀取偏好設定的結果未定義。

Amazon DocumentDB 不支援將標籤組設定為讀取偏好設定。

支援讀取偏好設定選項
  • primary指定primary讀取偏好設定有助於確保所有讀取都路由至叢集的主要執行個體。如果主要執行個體不可用時,讀取操作會失敗。primary讀取偏好設定可產生 read-after-write 一致性,並適用於將 read-after-write 一致性優先於高可用性和讀取擴展的使用案例。

    以下範例指定 primary 讀取偏好設定:

    db.example.find().readPref('primary')

     

  • primaryPreferred指定primaryPreferred讀取偏好設定路由會在正常操作下讀取主要實例。如果是主要容錯移轉,用戶端會將請求路由到複本。primaryPreferred讀取偏好設定可在正常作業期間產生一致 read-after-write 性,並在容錯移轉事件期間最終一致讀取。primaryPreferred讀取偏好設定適用於將 read-after-write 一致性優先於讀取擴展,但仍需要高可用性的使用案例。

    以下範例指定 primaryPreferred 讀取偏好設定:

    db.example.find().readPref('primaryPreferred')

     

  • secondary指定secondary讀取偏好設定可確保只會將讀取路由至複本,而不是主要實例。如果叢集中沒有複本執行個體,讀取請求會失敗。secondary讀取偏好設定會產生最終一致的讀取,適用於將主要執行個體寫入輸送量優先於高可用 read-after-write 性和一致性的使用案例。

    以下範例指定 secondary 讀取偏好設定:

    db.example.find().readPref('secondary')

     

  • secondaryPreferred指定secondaryPreferred讀取偏好設定可確保當一或多個複本處於使用中狀態時,讀取會路由至僅供讀取複本。如果沒有叢集中沒有作用中的複本執行個體,系統會將讀取請求路由到主要執行個體。secondaryPreferred 讀取偏好會在僅供讀取複本提供讀取服務時,提供最終一致讀取。當主要執行個體提供讀取服務時,它會產生 read-after-write 一致性 (禁止容錯移轉事件)。secondaryPreferred讀取偏好設定適用於將讀取擴展與高可用性優先於 read-after-write 一致性的使用案例。

    以下範例指定 secondaryPreferred 讀取偏好設定:

    db.example.find().readPref('secondaryPreferred')

     

  • nearest— 指定nearest讀取偏好設定僅根據用戶端與 Amazon DocumentDB 叢集中所有執行個體之間測量的延遲來路由讀取。nearest 讀取偏好會在僅供讀取複本提供讀取服務時,提供最終一致讀取。當主要執行個體提供讀取服務時,它會產生 read-after-write 一致性 (禁止容錯移轉事件)。nearest讀取偏好設定適用於優先順序達到最低可能讀取延遲和高可用性,而不是 read-after-write 一致性和讀取擴展的使用案例。

    以下範例指定 nearest 讀取偏好設定:

    db.example.find().readPref('nearest')

高可用性

Amazon DocumentDB 透過使用複本做為主要執行個體的容錯移轉目標來支援高可用性叢集組態。如果主執行個體失敗,Amazon DocumentDB 複本會提升為新的主執行個體,並會短暫中斷,在此期間,對主執行個體所做的讀取和寫入請求會失敗,但發生例外狀況。

如果您的 Amazon DocumentDB 叢集不包含任何複本,則會在發生故障時重新建立主執行個體。不過,升級 Amazon DocumentDB 複本比重新建立主執行個體快得多。因此,我們建議您建立一或多個 Amazon DocumentDB 複本做為容錯移轉目標。

做為容錯移轉目標的複本執行個體類別應與主要執行個體的執行個體類別相同。它們應該佈建在與主要執行個體不同的可用區域。您可以控制哪些複本是偏好做為容錯移轉目標。如需設定 Amazon DocumentDB 以取得高可用性的最佳實務,請參閱。了解 Amazon DocumentDB 叢集容錯

擴展讀取

Amazon DocumentDB 複本是讀取擴展的理想選擇。他們完全專用於叢集磁碟區上的讀取操作,也就是說,複本並不會處理寫入。資料複寫發生於叢集磁碟區內,而非執行個體之間。因此,每個複本的資源都專用於處理您的查詢,而非複寫和寫入資料。

如果您的應用程式需要讀取容量,您可以快速將複本新增到您的叢集 (通常少於十分鐘)。如果您的讀取容量需求減少,您可以移除不需要的複本。使用 Amazon DocumentDB 複本時,您只需為所需的讀取容量付費。

Amazon DocumentDB 透過使用讀取偏好設定選項來支援用戶端讀取擴展。如需詳細資訊,請參閱 Amazon DocumentDB 讀取首選項

TTL 刪除

透過背景程序從 TTL 索引刪除是最佳作法,但無法保證可在特定時間範圍內完成。像是執行個體大小、執行個體資源使用率、文件大小和整體輸送量等因素,都會影響 TTL 刪除的時間。

當 TTL 監控器刪除文件時,每個刪除都會產生 IO 成本,使帳單金額增加。如果輸送量和 TTL 刪除率增加,請注意帳單金額會因為 IO 使用率提升而增加。

當您在現有集合上建立 TTL 索引時,必須先刪除所有過期的文件,然後再建立索引。目前的 TTL 實作已針對刪除集合中的一小部分文件進行最佳化,如果從一開始就在集合上啟用 TTL,這很典型,如果需要一次性刪除大量文件,則可能會導致高於必要的 IOPS。

如果您不想建立 TTL 索引來刪除文件,您可以改為根據時間將文件細分為集合,並在不再需要文件時直接拖放這些集合。例如:您可以每週建立一個集合,然後將其刪除,而不會產生 IO 成本。這比使用 TTL 索引更具成本效益。

可計費資源

識別可計費的 Amazon DocumentDB 資源

Amazon DocumentDB 是一項完全受管的資料庫服務,會針對執行個體、儲存、I/O、備份和資料傳輸收費。如需詳細資訊,請參閱 Amazon DocumentDB (與 MongoDB 相容性) 定價。

若要探索帳戶中的可計費資源,並可能刪除資源,您可以使用 AWS Management Console 或 AWS CLI。

使用 AWS Management Console

使用 AWS Management Console,您可以探索已為指定佈建的 Amazon DocumentDB 叢集、執行個體和快照。 AWS 區域

找出叢集、執行個體和快照
  1. 登入 AWS Management Console,然後在 https://console.aws.amazon.com/docdb 開啟 Amazon DocumentDB 主控台。

  2. 若要探索預設地區以外的地區的可計費資源,請在畫面右上角選擇您 AWS 區域 要搜尋的資源。

    區域選取器中的北維吉尼亞區域。
  3. 在導覽窗格中,選擇您感興趣的應計費資源類型:Clusters (叢集)Instances (執行個體)Snapshots (快照)

    瀏覽窗格中的叢集、執行個體和快照。
  4. 右窗格會列出您針對該區域佈建的所有叢集、執行個體或快照。您需要支付叢集、執行個體和快照的費用。

使用 AWS CLI

使用 AWS CLI,您可以探索已為指定佈建的 Amazon DocumentDB 叢集、執行個體和快照。 AWS 區域

找出叢集和執行個體

以下程式碼會列出指定區域的所有叢集和執行個體。如果想要搜尋預設區域中的叢集和執行個體,您可以省略 --region 參數。

若為 Linux、macOS 或 Unix:

aws docdb describe-db-clusters \ --region us-east-1 \ --query 'DBClusters[?Engine==`docdb`]' | \ grep -e "DBClusterIdentifier" -e "DBInstanceIdentifier"

針對 Windows:

aws docdb describe-db-clusters ^ --region us-east-1 ^ --query 'DBClusters[?Engine==`docdb`]' | ^ grep -e "DBClusterIdentifier" -e "DBInstanceIdentifier"

此操作的輸出將會如下所示。

"DBClusterIdentifier": "docdb-2019-01-09-23-55-38", "DBInstanceIdentifier": "docdb-2019-01-09-23-55-38", "DBInstanceIdentifier": "docdb-2019-01-09-23-55-382", "DBClusterIdentifier": "sample-cluster", "DBClusterIdentifier": "sample-cluster2",
找出快照

以下程式碼會列出指定區域的所有快照。如果想要搜尋預設區域中的快照,您可以省略 --region 參數。

若為 Linux、macOS 或 Unix:

aws docdb describe-db-cluster-snapshots \ --region us-east-1 \ --query 'DBClusterSnapshots[?Engine==`docdb`].[DBClusterSnapshotIdentifier,SnapshotType]'

針對 Windows:

aws docdb describe-db-cluster-snapshots ^ --region us-east-1 ^ --query 'DBClusterSnapshots[?Engine==`docdb`].[DBClusterSnapshotIdentifier,SnapshotType]'

此操作的輸出將會如下所示。

[ [ "rds:docdb-2019-01-09-23-55-38-2019-02-13-00-06", "automated" ], [ "test-snap", "manual" ] ]

您只需要刪除 manual 快照。當您刪除叢集時,也會刪除 Automated 快照。

刪除不需要的應計費資源

若要刪除某個叢集,您必須先刪除該叢集中的所有執行個體。