Amazon RDS 僅供讀取複本

Amazon RDS 僅供讀取複本提供 Amazon RDS 資料庫 (DB) 執行個體增強的效能和耐久性。僅供讀取複本可以輕鬆彈性地橫向擴展超越單一資料庫執行個體的容量限制,以處理高讀取量的資料庫工作負載。您可以建立一或多個指定來源資料庫執行個體的複本,然後從多個資料副本為大量應用程式讀取流量提供服務,以這種方式提升總體的讀取輸送量。需要將僅供讀取複本變為獨立資料庫執行個體時,也可以提升該僅供讀取複本。Amazon RDS for MySQLMariaDBPostgreSQLOracleSQL ServerAmazon Aurora 都提供僅供讀取複本。

Amazon RDS 會使用來源資料庫執行個體的快照,針對 MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 資料庫引擎建立第二個資料庫執行個體。之後,每當來源資料庫執行個體變更時,就會使用引擎的原生非同步複寫更新僅供讀取複本。使用僅供讀取複本做為資料庫執行個體僅允許唯讀連線;應用程式連線到僅供讀取複本的方式與連線其他資料庫執行個體一樣。Amazon RDS 會複寫來源資料庫執行個體中的所有資料庫。

Amazon Aurora 透過採用專為資料庫工作負載建置的 SSD 虛擬化儲存層,進一步擴展了僅供讀取複本的優勢。Amazon Aurora 複本與來源執行個體共用同一個基礎儲存,不僅能降低成本,也能消除將資料複製到複本節點的需求。如需 Amazon Aurora 複寫功能的詳細資訊,請參閱線上文件

讀取擴展和災難復原

Amazon RDS 僅供讀取複本的優勢

您可以將讀取查詢從應用程式路由到僅供讀取複本,以減少來源資料庫執行個體的負載。僅供讀取複本可以讓您彈性地橫向擴展超越單一資料庫執行個體的容量限制,以處理高讀取量的資料庫工作負載。因為僅供讀取複本可提升為主要狀態,因此實作碎片時很有用。為了進一步最大化讀取效能,使用 Amazon RDS for MySQL 可在僅供讀取複本直接新增表格索引,不須將這些索引放入主複本。
Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 中的僅供讀取複本為 Amazon RDS Multi-AZ 部署提供了互補的可用性機制。若來源資料庫執行個體失敗,可以提升僅供讀取複本,並且可以將僅供讀取複本及其備用執行個體設定於不同的可用區域中。這個功能可補充同步複寫、自動故障偵測,以及異地同步備份部署提供之容錯移轉的不足之處。
建立 Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 或 SQL Server 的僅供讀取複本時,Amazon RDS 會使用來源資料庫執行個體和僅供讀取複本之間的公開金鑰加密來設定安全的通訊通道,即使跨區域複寫時也一樣。Amazon RDS 會建立各種 AWS 安全組態,如新增啟用安全通道所需的安全群組項目。您也可以針對使用 AWS Key Management Service (KMS) 靜態加密的 Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 和 SQL Server 資料庫執行個體建立僅供讀取複本。

設定

您可以使用 AWS 管理主控台,輕鬆將僅供讀取複本新增到現有的資料庫執行個體。使用 AWS 管理主控台中與資料庫執行個體對應的 “Create Read Replica” (建立僅供讀取複本) 選項。使用 Amazon RDS for MySQL、MariaDB 和 PostgreSQL 可在每個資料庫執行個體最多新增 15 個僅供讀取複本。使用 Amazon RDS for Oracle 和 SQL Server 可在每個資料庫執行個體最多新增 5 個僅供讀取複本。

Amazon RDS for MySQL、MariaDB、PostgreSQL 和 Oracle 為資料庫儲存提供兩種 SSD 型選項:一般用途和佈建 IOPS。這些引擎的僅供讀取複本不需要使用與其主資料庫執行個體相同的儲存類型。您可以為僅供讀取複本選取替代儲存類型,以優化效能或支出。 如需詳細資訊,請參閱 Amazon RDS for MySQLMariaDBPostgreSQLOracleSQL ServerAmazon Aurora 的僅供讀取複本文件。

僅供讀取複本、異地同步備份部署和多區域部署

Amazon RDS 僅供讀取複本可補足異地同步備份部署的不足之處。雖然這兩個功能都會保留資料的第二個副本,但兩者之間有以下差異:

異地同步備份部署

多區域部署

僅供讀取複本

主要目的是高可用性

主要目的是災難復原和本機效能

主要目的是可擴展性

非 Aurora︰同步複寫;Aurora:同步複寫

非同步複寫

非同步複寫

非 Aurora︰僅主要執行個體處於作用中狀態;Aurora:所有執行個體均處於作用中狀態

所有區域皆可供存取,且可用於讀取

所有僅供讀取複本皆可供存取,且可用於讀取擴展

非 Aurora︰自動備份來自備用資料庫;Aurora:自動備份來自共用儲存層

自動備份可來自每個區域

預設不會設定任何備份

在單一區域內一律跨越至少兩個可用區域

每個區域均可採用多可用區部署

可以在一個可用區域內、跨可用區域或跨區域

非 Aurora:資料庫引擎版本升級發生於主要執行個體;Aurora:所有執行個體一起更新

非 Aurora:資料庫引擎版本升級獨立於每個區域;Aurora:所有執行個體一起更新

非 Aurora:資料庫引擎版本升級獨立於來源執行個體;Aurora:所有執行個體一起更新

偵測到問題時自動容錯移轉至備用 (非 Aurora) 或僅供讀取複本 (Aurora)

Aurora 允許提升次要區域成為主要區域

可以手動提升為獨立資料庫執行個體 (非 Aurora) 或作為主要執行個體 (Aurora)

您可以結合僅供讀取複本和其他 Amazon RDS 功能,以獲得兩者的優點。例如,您可以將來源資料庫設為異地同步備份以獲得高可用性,並建立僅供讀取複本 (在單一可用區域) 以獲得讀取可擴展性。或者,您可以使用 Aurora 全域資料庫,從異地同步備份 Aurora 部署複製到其他區域。

使用 RDS for MySQL、MariaDB、PostgreSQL 和 Oracle,您也可以將僅供讀取複本設為異地同步備份,這讓您可以將僅供讀取複本當作 DR 目標使用。當您將僅供讀取複本升級為獨立資料庫時,便準備好啟用異地同步備份功能。