Amazon DynamoDB 全域資料表
什麼是全域資料表?
DynamoDB 全域資料表是一個全受管、無伺服器、多區域和多作用中資料庫。全域資料表為您提供高達 99.999% 的可用性、提升的應用程式彈性,以及改善業務持續性。由於全域資料表會在您選擇的 AWS 區域自動複寫資料表,因此您可以實現快速的本機讀取和寫入效能。
如果應用程式處理在某個區域中斷,則無需進行資料庫容錯移轉,因為全域資料表的多作用中架構可讓客戶讀取和寫入任何複本資料表。全域資料表亦免除解決多區域工作負載更新衝突的困難工作。
全域資料表同時支援高度一致性模式與最終一致性模式,以實現多區域一致性。具有多區域高度一致性,可為您提供最高水準的應用程式彈性,能夠讓客戶的應用程式始終處於可用狀態,並一率讀取任何區域內的最新資料。您現在可建置復原點目標為零的應用程式。憑藉多區域最終一致性,您可在單一 AWS 帳戶內或跨多個 AWS 帳戶建立複本。
運作方式
DynamoDB 全域資料表由多個複本資料表組成。每個複本資料表都存在於不同的區域中,但所有複本都具有相同的主索引鍵結構描述。將資料寫入任何複本資料表時,DynamoDB 會自動將該資料複寫到全域資料表中的所有其他複本資料表。
例如,假設您的應用程式服務的客戶群遍及三個地理區域 – 美國東海岸、加拿大和西歐。不使用全域資料表,您需要在每個 AWS 區域建立資料表,並撰寫程式碼,以便在每個區域的每個資料表之間複寫資料變更。
使用全域資料表,您可以在最接近每個地理區域的三個區域建立具有複本資料表的全域資料表。DynamoDB 會自動將任何複本的變更複製到其他區域中的複本。
全域資料表可讓應用程式的使用者無論身在何處,都能以低延遲的方式存取資料。如果您的應用程式處理在某個區域中斷,客戶仍然可以存取其他區域中的複本資料表。
建立全域資料表時,您可選擇高度一致性或最終一致性。針對多區域高度一致性設定全域資料表,能夠跨多個區域執行高度一致性讀取能力。預設設定為多區域最終一致性。
針對使用多區域最終一致性設定的全域資料表,您可在單一 AWS 帳戶內或跨多個 AWS 帳戶建立複本。多帳戶全域資料表可在多個帳戶與區域中自動複寫資料表,從而交付增強的復原能力、安全性與治理。該表非常適合採用多帳戶策略或使用 AWS Organizations 來改善安全性隔離、強制資料周界防護機制、實作災難復原,或依業務單位分隔工作負載的客戶。
開始使用全域資料表非常簡單,因為它使用與單一區域表相同的 DynamoDB API。使用全域資料表無須預付成本或簽訂合約,您只需依據使用的資源付費。您可以使用 AWS CLI 或 AWS CloudFormation,在 AWS 管理主控台中設定全域資料表。還可輕鬆轉換單一區域表至全域資料表。
全域資料表的優勢
全域資料表的設計可提供 99.999% 的可用性。若單一區域隔離或降級,您的應用程式可轉移流量至其他區域,並對不同的複本資料表執行讀寫操作。您可以套用自訂業務邏輯,來確定何時將請求重新定向至其他區域。另外,使用多區域高度一致性模式,應用程式會始終讀取任何區域的最新資料。
全域資料表免除在 DynamoDB 中部署和管理多作用中、多區域複寫時的複雜性和操作重擔。您只需選擇要複寫資料的區域,剩下的就交給 DynamoDB 處理。您可選擇最終一致性或高度一致性,以便在跨區域的資料表複本間進行複寫。憑藉高度多區域一致性,您不必在容錯移轉操作期間考慮資料一致性或資料復原。
您還可選擇在單一 AWS 帳戶內或跨多個 AWS 帳戶建立複本。您可使用多帳戶全域資料表,跨帳戶建置應用程式,以實現更強的隔離、更出色的安全性與治理,以及改善營運復原能力,這符合 AWS Well-Architected Framework。應用程式透過使用現有 DynamoDB API 和端點來存取全域資料表。
全域資料表現在可設定為提供高度一致性與最終一致性。高度一致性可保證高度一致性讀取會反映最近寫入,而最終一致性會在一段時間內保持穩定,所有複本才會反映最新更新,以換取更低延遲的本地讀寫操作。
在多區域高度一致性模式下,DynamoDB 能確保在任意區域對任何複本成功確認的寫入操作,可立即從任何其他複本讀取。若寫入操作要修改另一個區域中已經在修改的項目,該寫入操作會失敗,並且發生可重試異常狀況。
在多區域最終一致性模式下,DynamoDB 能將在任意區域寫入任何複本的資料,複寫至所有其他複本,通常可在一至兩秒內完成。若同一項目在多個區域被修改,DynamoDB 將使用後寫者勝出的解決方法來解決衝突。
全域資料表可讓您在本機讀取和寫入資料,為各種規模的全球分散式應用程式提供低於 10 毫秒的延遲。這可提升大規模擴展的全球應用程式的效能。