

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

# 連線至 Amazon Aurora 全域資料庫
<a name="aurora-global-database-connecting"></a>

 每個 Aurora 全域資料庫都有一個寫入器端點，Aurora 會自動更新該端點，將請求路由到主要資料庫叢集的目前寫入器執行個體。使用寫入器端點時，使用受管 Aurora 全域資料庫切換和容錯移轉功能變更主要區域的位置之後，您不需要修改連線字串。若要進一步了解如何使用寫入器端點以及 Aurora 全域資料庫切換和容錯移轉，請參閱 [在 Amazon Aurora 全球資料庫中使用切換或容錯移轉](aurora-global-database-disaster-recovery.md)。如需使用 RDS Proxy 連線至 Aurora 全域資料庫的資訊，請參閱[搭配使用 RDS Proxy 與 Aurora 全域資料庫](https://docs.aws.amazon.com/AuroraUserGuide/rds-proxy-gdb.html)。

**Topics**
+ [選擇符合您應用程式需求的端點](#gdb-endpoint-choosing)
+ [檢視 Amazon Aurora 全域資料庫的端點](#viewing-endpoints)
+ [使用全域寫入器端點的考量](#global-writer-endpoint-considerations)

## 選擇符合您應用程式需求的端點
<a name="gdb-endpoint-choosing"></a>

 連線至 Aurora 全球資料庫取決於您需要從資料庫讀取或寫入，以及您要路由請求的 AWS 區域。以下是一些典型的使用案例：
+  **將請求路由至寫入器執行個體**：如果您需要執行資料處理語言 (DML) 和資料定義語言 (DDL) 陳述式，或如果您在讀取和寫入之間需要高度一致性，請連線至 Aurora 全域資料庫寫入器端點。該端點會將請求路由到您全球資料庫主要叢集中的寫入器執行個體。此端點會自動更新，以將請求路由至寫入器執行個體，無需在每次變更全域叢集中的寫入器位置時更新應用程式。您也可以使用全域端點，將跨區域讀取/寫入請求傳送至寫入器。
**注意**  
 如果您在 Aurora 全域資料庫寫入器端點可用之前設定全域資料庫，您的應用程式可能會連線到主要叢集的叢集端點。在此情況下，建議您切換連線設定以改用全域寫入器端點。如此一來，就不需要在每次 Aurora 全域資料庫切換或容錯移轉後變更連線設定。  
 寫入器端點名稱的第一部分是 Aurora 全域資料庫的名稱。因此，如果您重新命名 Aurora 全域資料庫、寫入器端點名稱變更，以及使用它的任何程式碼，都必須更新為新的名稱。
+  **擴展讀取更接近您應用程式的區域**：若要擴展與您應用程式相同或附近的 AWS 區域中的唯讀請求，請連線至主要或次要 Aurora 叢集的讀取器端點。
+  **使用偶爾的跨區域寫入擴展讀取**：對於偶爾的 DML 陳述式，例如用於維護和資料清理，請連線至已啟用寫入轉送的次要叢集的讀取器端點。透過寫入轉送，Aurora 會自動將寫入陳述式轉送至 Aurora 全域資料庫主要區域中的寫入器。寫入轉送提供下列優點：
  +  您不需要進行繁重工作，即可在次要叢集和主要叢集之間建立連線，以傳送跨區域寫入。
  +  您不需要分割應用程式中的讀取和寫入請求。
  +  您不需要開發複雜的邏輯來管理 read-after-write 請求的一致性。

   不過，使用寫入轉送時，您需要更新應用程式程式碼或組態，才能在執行跨區域容錯移轉或切換後連線到新提升的主要區域的讀取器端點。我們建議您監控透過寫入轉送完成的操作延遲，以檢查處理寫入請求的額外負荷。最後，寫入轉送不支援某些 MySQL 或 PostgreSQL 操作，例如進行資料定義語言 (DDL) 變更或`SELECT FOR UPDATE`陳述式。

   若要進一步了解如何在 AWS 區域間使用寫入轉送，請參閱 [在 Amazon Aurora 全域資料庫中使用寫入轉送](aurora-global-database-write-forwarding.md)。

 如需不同類型 Aurora 端點的詳細資訊，請參閱 [連接至 Amazon Aurora 資料庫叢集](Aurora.Connecting.md)。

## 檢視 Amazon Aurora 全域資料庫的端點
<a name="viewing-endpoints"></a>

 當您在主控台中檢視 Aurora 全域資料庫時，可以看到與其所有叢集相關聯的所有端點。下圖顯示您在檢視主要資料庫叢集的詳細資訊時看到的端點類型範例：
+  全域寫入器 – 單一讀取/寫入端點，一律指向全域資料庫叢集的目前寫入器資料庫執行個體。
+  寫入器 – 全域資料庫叢集中主要資料庫叢集讀取/寫入請求的連線端點。
+  讀取器 – 全域資料庫叢集中主要或次要資料庫叢集的唯讀請求連線端點。若要將延遲降至最低，請選擇所在 AWS 區域 或最接近之 AWS 區域 中的讀取器端點。

![\[在 RDS 主控台中，Aurora 全域資料庫的 [連線和安全] 索引標籤會顯示全域寫入器端點。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-databases-primary-cluster-connectivity-2.png)


### 主控台
<a name="viewing-endpoints.console"></a>

**若要檢視全域資料庫的端點**

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1.  在導覽窗格中，選擇 **Databases** (資料庫)。

1.  在清單中，選擇全域資料庫，或您要檢視其端點的主要或次要資料庫叢集。

1.  選擇**連線和安全**索引標籤以查看端點詳細資訊。顯示的端點取決於您選取的叢集類型，如下所示：
   +  全域資料庫 – 全域寫入器端點。
   +  主要資料庫叢集 – 全域寫入器端點，以及主要叢集的叢集端點和讀取器端點。
   +  次要資料庫叢集 – 次要叢集的叢集端點和讀取器端點。在次要叢集上，叢集端點會顯示非**作用中**狀態，因為它不會處理寫入請求。您仍然可以連線至叢集端點，但僅適用於讀取查詢。

### AWS CLI
<a name="viewing-endpoints.CLI"></a>

 若要檢視全域叢集的寫入器端點，請使用 AWS CLI [describe-global-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-global-clusters.html) 命令，如下列範例所示。

```
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](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 命令，如下列範例所示。針對 `Endpoint` 和 `ReaderEndpoint` 傳回的值分別是叢集和讀取器端點。

```
aws rds describe-db-clusters --region primary_region --db-cluster-identifier db_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
        }
    ]
}
```

### RDS API
<a name="viewing-endpoints.API"></a>

 若要檢視全域叢集的寫入器端點，請使用 RDS API [DescribeGlobalClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeGlobalClusters.html) 操作。若要檢視全域叢集成員資料庫叢集的叢集和讀取器端點，請使用 RDS API [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) 操作。

## 使用全域寫入器端點的考量
<a name="global-writer-endpoint-considerations"></a>

 您可以遵循下列準則和最佳實務，有效使用 Aurora 全域資料庫寫入器端點：
+  若要將跨區域容錯移轉或切換後的中斷降至最低，您可以在應用程式運算與主要和次要 AWS 區域之間設定 VPC 連線。例如，假設您的應用程式或用戶端系統在與主要叢集相同的 VPC 中執行。如果次要叢集提升，全域寫入器端點會自動變更為指向該叢集。雖然全域寫入器端點可讓您避免變更應用程式的連線設定，但在您設定兩個 VPC 之間的聯網之前，您的應用程式無法存取新提升主要 AWS 區域 VPC 中的 IP 位址。請參閱 [Amazon VPC-to-Amazon VPC 連線選項](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/amazon-vpc-to-amazon-vpc-connectivity-options.html)，以評估設定此連線的不同選項。
+  全域資料庫容錯移轉或切換之後的全域寫入器端點更新可能需要很長的時間，具體取決於您的網域名稱服務 (DNS) 快取持續時間。如需進一步了解，請參閱 [Amazon Aurora MySQL 資料庫管理員手冊](https://docs.aws.amazon.com/pdfs/whitepapers/latest/amazon-aurora-mysql-db-admin-handbook/amazon-aurora-mysql-db-admin-handbook.pdf)。當 Aurora 全域資料庫在全域寫入器端點上看到 DNS 變更時，會發出 RDS 事件。您可以使用事件來設計策略，以確保 DNS 快取不會超過事件產生後的時間。如需更多詳細資訊，請參閱 [資料庫叢集事件](USER_Events.Messages.md#USER_Events.Messages.cluster)。
+  Aurora 全域資料庫會以非同步方式複寫資料。跨區域容錯移轉方法可能會導致一些寫入交易資料在容錯移轉啟動之前未複寫到選擇的次要區域。雖然 Aurora 會盡力封鎖原始主要 AWS 區域中的寫入，但容錯移轉可能會容易發生核心分裂問題。將資料遺失和核心分裂風險降至最低的考量也適用於 Aurora 全域資料庫寫入器端點。如需更多詳細資訊，請參閱 [針對 Aurora 全球資料庫執行受管容錯移轉](aurora-global-database-disaster-recovery.md#aurora-global-database-failover.managed-unplanned)。