本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
連線至 Amazon Aurora Global Database
每個 Aurora Global Database 都隨附一個寫入器端點,Aurora 會自動更新該端點,以將請求路由到主要資料庫叢集的目前寫入器執行個體。使用寫入器端點時,使用受管 Aurora Global Database 切換和容錯移轉功能變更主要區域的位置後,您不必修改連線字串。若要進一步了解如何使用寫入器端點搭配 Aurora 全域資料庫切換和容錯移轉,請參閱 在 Amazon Aurora Global Database 中使用切換或容錯移轉。
選擇符合您應用程式需求的端點
連線到 Aurora 全球資料庫取決於您需要從資料庫讀取或寫入,以及 AWS 您要路由請求的區域。以下是一些典型的使用案例:
-
將請求路由至寫入器執行個體:如果您需要執行資料處理語言 (DML) 和資料定義語言 (DDL) 陳述式,或在讀取和寫入之間需要強大的一致性,請連線至 Aurora Global Database Writer 端點。該端點會將請求路由到您全球資料庫主要叢集中的寫入器執行個體。此端點會自動更新,以將請求路由至寫入器執行個體,讓您無需在每次變更全域叢集中的寫入器位置時更新應用程式。您也可以使用 全域端點,將跨區域讀取/寫入請求傳送至寫入器。
注意
如果您在 Aurora 全域資料庫寫入器端點可用之前設定全域資料庫,您的應用程式可能會連線到主要叢集的叢集端點。在此情況下,我們建議您切換連線設定,以改用全域寫入器端點。這樣做可避免在每次 Aurora 全域資料庫切換或容錯移轉後變更連線設定。
寫入器端點名稱的第一部分是 Aurora 全域資料庫的名稱。因此,如果您重新命名 Aurora Global Database、寫入器端點名稱變更,以及使用它的任何程式碼,都必須更新為新的名稱。
-
擴展讀取更接近您應用程式的區域:若要擴展與您應用程式相同或附近的 AWS 區域中的唯讀請求,請連線至主要或次要 Aurora 叢集的讀取器端點。
-
擴展讀取並偶爾進行跨區域寫入:對於偶爾的DML陳述式,例如用於維護和資料清理,請連接到已啟用寫入轉送的次要叢集的讀取器端點。透過寫入轉送,Aurora 會自動將寫入陳述式轉送至 Aurora Global Database 主要區域中的寫入器。寫入轉送提供下列優點:
-
您不需要進行繁重的工作,即可在次要叢集和主要叢集之間建立連線,以傳送跨區域寫入。
-
您不需要分割應用程式中的讀取和寫入請求。
-
您不需要開發複雜的邏輯來管理請求的 read-after-write一致性。
不過,使用寫入轉送時,您需要更新應用程式程式碼或組態,才能在執行跨區域容錯移轉或切換後連線到新提升的主要區域的讀取器端點。我們建議您監控透過寫入轉送完成的操作延遲,以檢查處理寫入請求的開銷。最後,寫入轉送不支援某些 MySQL 或 PostgreSQL 操作,例如進行資料定義語言 (DDL) 變更或
SELECT FOR UPDATE
陳述式。若要進一步了解如何跨 AWS 區域使用寫入轉送,請參閱 在 Amazon Aurora 全域資料庫中使用寫入轉送。
-
如需不同類型 Aurora 端點的詳細資訊,請參閱 連接至 Amazon Aurora 資料庫叢集。
檢視 Amazon Aurora 全域資料庫的端點
在主控台中檢視 Aurora 全域資料庫時,您可以看到與其所有叢集相關聯的所有端點。下圖顯示您在檢視主要資料庫叢集的詳細資訊時看到的端點類型範例:
-
全域寫入器 – 一律指向全域資料庫叢集目前寫入器資料庫執行個體的單一讀取/寫入端點。
-
寫入器 – 全域資料庫叢集中主要資料庫叢集讀取/寫入請求的連線端點。
-
Reader – 全域資料庫叢集中主要或次要資料庫叢集的唯讀請求連線端點。若要將延遲降至最低,請選擇 中或 AWS 區域 AWS 區域 離您最近的讀取器端點。
檢視全域資料庫的端點
-
登入 AWS Management Console 並在 開啟 Amazon RDS主控台https://console.aws.amazon.com/rds/
。 -
在導覽窗格中,選擇 Databases (資料庫)。
-
在清單中,選擇全域資料庫,或您要檢視其端點的主要或次要資料庫叢集。
-
選擇連線與安全索引標籤以查看端點詳細資訊。顯示的端點取決於您選取的叢集類型,如下所示:
-
全域資料庫 – 全域寫入器端點。
-
主要資料庫叢集 – 全域寫入器端點,以及主要叢集的叢集端點和讀取器端點。
-
次要資料庫叢集 – 次要叢集的叢集端點和讀取器端點。在次要叢集上,叢集端點會顯示非作用中狀態,因為它不會處理寫入請求。您仍然可以連線至叢集端點,但僅限於讀取查詢。
-
若要檢視全域叢集的寫入器端點,請使用 AWS CLI describe-global-clusters命令,如下列範例所示。
aws rds describe-global-clusters --region
aws_region
{ "GlobalClusters": [ { "GlobalClusterIdentifier": "global_cluster_id
", "GlobalClusterResourceId": "cluster-unique_string
", "GlobalClusterArn": "arn:aws:rds::123456789012:global-cluster:global_cluster_id
", "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.11.2", "GlobalClusterMembers": [ ... ], "Endpoint": "global_cluster_id
.global-unique_string
.global.rds.amazonaws.com" } ] }
若要檢視全域叢集成員資料庫叢集的叢集和讀取器端點,請使用 AWS CLI describe-db-clusters命令,如下列範例所示。為 Endpoint
和 傳回的值分別ReaderEndpoint
是叢集和讀取器端點。
aws rds describe-db-clusters --region
primary_region
--db-cluster-identifierdb_cluster_id
{ "DBClusters": [ { "AllocatedStorage": 1, "AvailabilityZones": [ "az_1
", "az_2
", "az_3
" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "db_cluster_id
", "DBClusterParameterGroup": "default.aurora-mysql5.7", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2023-08-01T18:21:11.301Z", "Endpoint": "db_cluster_id
.cluster-unique_string
.primary_region
.rds.amazonaws.com", "ReaderEndpoint": "db_cluster_id
.cluster-ro-unique_string
.primary_region
.rds.amazonaws.com", "MultiAZ": false, "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.11.2", "ReadReplicaIdentifiers": [ "arn:aws:rds:secondary_region
:123456789012:cluster:db_cluster_id
" ], "DBClusterMembers": [ { "DBInstanceIdentifier": "db_instance_id
", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], ... "TagList": [], "GlobalWriteForwardingRequested": false } ] }
若要檢視全域叢集的寫入器端點,請使用 RDSAPIDescribeGlobalClusters操作。若要檢視全域叢集成員資料庫叢集的叢集和讀取器端點,請使用 RDS API DescribeDBClusters 操作。
使用全域寫入器端點的考量
您可以遵循下列準則和最佳實務,有效使用 Aurora Global Database Writer 端點:
-
若要將跨區域容錯移轉或切換後的中斷降至最低,您可以設定應用程式運算與主要和次要 AWS 區域之間的VPC連線。例如,假設您的應用程式或用戶端系統在VPC與主要叢集相同的 中執行。如果次要叢集獲得提升,全域寫入器端點會自動變更為指向該叢集。雖然全域寫入器端點可讓您避免變更應用程式的連線設定,但在您設定兩個 之間的聯網VPC之前,您的應用程式無法存取新提升主要 AWS 區域中的 IP 地址VPCs。請參閱 Amazon VPC-to-Amazon VPC連線選項,以評估設定此連線的不同選項。
-
全域資料庫容錯移轉或切換之後的全域寫入器端點更新可能需要很長的時間,具體取決於您的網域名稱服務 (DNS) 快取持續時間。請參閱DNS快取以進一步了解。Aurora Global Database 在全域寫入器端點上看到DNS變更時發出RDS事件。您可以使用事件來設計策略,以確保DNS快取不會超出事件產生後的時間。如需詳細資訊,請參閱資料庫叢集事件。
-
Aurora Global Database 會以非同步方式複寫資料。跨區域容錯移轉方法可能會導致一些寫入交易資料,在容錯移轉啟動之前未複寫到所選的次要資料。雖然 Aurora 會盡最大努力封鎖原始主要 AWS 區域中的寫入,但容錯移轉可能會容易發生分割大腦問題。將資料遺失和分割大腦風險降至最低的考量也適用於 Aurora Global Database Writer 端點。如需詳細資訊,請參閱針對 Aurora 全球資料庫執行受管容錯移轉。