

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

# 在 ElastiCache 中尋找連線端點
<a name="Endpoints"></a>

您的應用程式會使用端點連線至 ElastiCache 叢集。端點是節點或叢集的唯一位址。

您也可以透過建立界面 VPC 端點，在 VPC 和 ElastiCache API 端點之間建立私有連線 AWS PrivateLink。如需詳細資訊，請參閱[ElastiCache API 和界面 VPC 端點 (AWS PrivateLink)](elasticache-privatelink.md)。

**要與 Valkey 或 Redis OSS 搭配使用的端點。**
+ 對於**獨立節點**，請將節點的端點用於讀取和寫入操作。

   
+ 對於 **Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集**，請使用*主要端點*進行所有寫入操作。使用「讀取器端點」**來將傳入連線平均分散在所有讀取複本間的端點中。使用個別「節點端點」**以進行讀取操作 (在 API/CLI 中，它們稱為「讀取端點」)。

   
+ 針對 **Valkey 或 Redis OSS （啟用叢集模式） 叢集**，針對支援啟用叢集模式命令的所有操作，使用叢集的*組態端點*。您必須使用支援 Valkey Cluster 或 Redis OSS 3.2 及更高版本的 Redis OSS 叢集的用戶端。您仍然可以從個別節點端點讀取 (在 API/CLI 中，它們稱為「讀取端點」)。

   

以下各節可引導您探索執行引擎所需的端點。

**要與 Memcached 搭配使用的端點。**

對於適用於 **Memcached 的 ElastiCache 無伺服器快取**，只需從主控台取得叢集端點 DNS 和連接埠即可。

從 中 AWS CLI，使用 `describe-serverless-caches`命令來取得端點資訊。

Linux

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

Windows

```
aws elasticache describe-serverless-caches --serverless-cache-name CacheName
```

上述操作的輸出看起來會像這樣 (JSON 格式)：

```
{
    "ServerlessCaches": [
        {
            "ServerlessCacheName": "serverless-memcached",
            "Description": "test",
            "CreateTime": 1697659642.136,
            "Status": "available",
            "Engine": "memcached",
            "MajorEngineVersion": "1.6",
            "FullEngineVersion": "21",
            "SecurityGroupIds": [
                "sg-083eda453e1e51310"
            ],
            "Endpoint": {
                "Address": "serverless-memcached-01.amazonaws.com",
                "Port":11211
            },
            "ARN": "<the ARN>",
            "SubnetIds": [
                "subnet-0cf759df15bd4dc65",
                "subnet-09e1307e8f1560d17"
            ],
            "SnapshotRetentionLimit": 0,
            "DailySnapshotTime": "03:00"
        }
    ]
}
```

對於以**執行個體為基礎的 Memcached 叢集**，如果您使用自動探索，則可以使用叢集的*組態端點*來設定 Memcached 用戶端。這表示您必須使用支援 Automatic Discovery 的用戶端。

如果您並未使用 Automatic Discovery，則必須將用戶端設定為使用個別的節點端點以進行讀取和寫入。您也必須在新增和移除節點時追蹤這些端點。

## 尋找 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點 （主控台）
<a name="Endpoints.Find.Redis"></a>

如果 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集只有一個節點，則節點的端點會同時用於讀取和寫入。如果 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集有多個節點，則有三種類型的端點：*主要端點*、*讀取器端點*和*節點端點*。

主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動，我們建議您的應用程式連線到主要端點。

讀取器端點會在 ElastiCache for Redis OSS 叢集中的所有僅供讀取複本之間平均分割端點的傳入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除，讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache for Redis OSS 叢集的多個僅供讀取複本放在不同的 AWS 可用區域 (AZ)，以確保讀取器端點的高可用性。

**注意**  
讀取者端點並非負載平衡器。它是一筆 DNS 記錄，會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動，應用程式也可連線到叢集中的任何節點。與主要端點不同，節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本)，您必須更新您應用程式中的節點端點。

**尋找 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的端點**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

   叢集畫面會顯示 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 和 Valkey 或 Redis OSS （啟用叢集模式） 叢集的清單。

1. 若要尋找叢集的主要和/或讀取器端點，請選擇叢集名稱 (而非左側的按鈕)。  
![\[影像：Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的主要端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/Reader-Endpoint.png)

   *Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的主要端點和讀取器端點*

   如果叢集中只有一個節點，就不會有主要端點，因此您必須繼續下一個步驟。

1. 如果 Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集有複本節點，您可以選擇叢集的名稱，然後選擇**節點**索引標籤，以尋找叢集的複本節點端點。

   隨即顯示節點畫面，其顯示叢集中的每個節點、主要複本和複本，並與其端點一起列出。  
![\[影像：Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的節點端點\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/images/ElastiCache-Endpoints-Redis-Node.png)

   *Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 叢集的節點端點*

1. 將端點複製到剪貼簿：

   1. 逐一尋找您要複製的端點。

   1. 選擇端點前面的複製圖示。

   現在，端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊，請參閱 [連線至 Memcached 節點](nodes-connecting.md#nodes-connecting.mem)。

Valkey 或 Valkey 或 Redis OSS （停用叢集模式） 主要端點看起來如下。其中的差異取決於是否啟用傳輸中加密。

**未啟用傳輸中加密**

```
clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port
			
redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379
```

**已啟用傳輸中加密**

```
master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port

master.ncit.ameaqx.use1.cache.amazonaws.com:6379
```

## 尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點 （主控台）
<a name="Endpoints.Find.RedisCluster"></a>

Valkey 或 Redis OSS （啟用叢集模式） 叢集具有單一組態端點。只要連線到組態端點，您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。

**尋找 Valkey 或 Redis OSS （啟用叢集模式） 叢集的端點**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 從導覽窗格中，選擇 **Valkey 叢集**或 **Redis OSS 叢集**。

   叢集畫面會顯示叢集清單。選擇您要連線的叢集。

1. 若要尋找叢集的組態端點，請選擇叢集名稱 (而非選項按鈕)。

1. **Configuration endpoint** (組態端點) 會顯示於 **Cluster details** (叢集詳細資訊) 中。若要加以複製，請選擇端點左側的複製圖示。

## 尋找叢集的端點 （主控台） (Memcached)
<a name="Endpoints.Find.Memcached"></a>

所有 Memcached 端點都是讀取/寫入端點。若要連線至 Memcached 叢集中的節點，您的應用程式可以使用每個叢集的端點，或搭配使用 Automatic Discovery 與叢集的組態端點。若要使用 Automatic Discovery，您必須使用支援 Automatic Discovery 的用戶端。

使用 Automatic Discovery 時，您的用戶端應用程式會使用組態端點連線至 Memcached 叢集。當您透過新增或移除節點以擴展叢集時，應用程式會自動「知道」叢集中的所有節點，並能連線至其中任何節點。如果未使用 Automatic Discovery，應用程式就無法完成上述作業；您必須在每次新增或移除節點時手動更新應用程式中的端點。

若要複製端點，請選擇端點位址前面的複製圖示。如需使用端點連線至節點的相關資訊，請參閱 [連線至 Memcached 節點](nodes-connecting.md#nodes-connecting.mem)。

組態端點和節點端點看起來非常類似。下列會將差異以**粗體**醒目提示。

```
myclustername.xxxxxx.cfg.usw2.cache.amazonaws.com:port   # configuration endpoint contains "cfg"
myclustername.xxxxxx.0001.usw2.cache.amazonaws.com:port  # node endpoint for node 0001
```

**重要**  
若您選擇為 Memcached 組態端點建立正式名稱記錄 (CNAME)，為了讓自動探索用戶端將正式名稱記錄 (CNAME) 辨識為組態端點，您必須在正式名稱記錄 (CNAME) 中包含 `.cfg.`。

## 尋找端點 (AWS CLI)
<a name="Endpoints.Find.CLI"></a>

對於 Memcached，您可以使用 AWS CLI for Amazon ElastiCache 來探索節點和叢集的端點。

對於 Redis OSS，您可以使用 AWS CLI 適用於 Amazon ElastiCache 的 來探索節點、叢集和複寫群組的端點。

**Topics**
+ [尋找節點和叢集的端點 (AWS CLI)](#Endpoints.Find.CLI.Nodes)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)](#Endpoints.Find.CLI.ReplGroups)

### 尋找節點和叢集的端點 (AWS CLI)
<a name="Endpoints.Find.CLI.Nodes"></a>

您可以使用 AWS CLI ，透過 `describe-cache-clusters`命令探索叢集及其節點的端點。對於 Valkey 或 Redis OSS 叢集，命令會傳回叢集端點。 若是 Memcached 叢集，則命令會傳回組態端點。如果您包含選用參數 `--show-cache-node-info`，則命令也會傳回叢集中個別節點的端點。

**Example**  
以下命令會擷取 Memcached 叢集 *mycluster* 的組態端點 (`ConfigurationEndpoint`) 和個別節點端點 (`Endpoint`)。  
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id mycluster \
    --show-cache-node-info
```
針對 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id mycluster ^
    --show-cache-node-info
```
上述操作的輸出看起來應會與以下內容相似 (JSON 格式)。  

```
{
   "CacheClusters": [
   {
       "Engine": "memcached", 
       "CacheNodes": [
          {
             "CacheNodeId": "0001", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
             "CacheNodeId": "0002", 
             "Endpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
             }, 
                "CacheNodeStatus": "available", 
                "ParameterGroupStatus": "in-sync", 
                "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                "CustomerAvailabilityZone": "us-west-2b"
          }, 
          {
                "CacheNodeId": "0003", 
                "Endpoint": {
                   "Port": 11211, 
                   "Address": "mycluster.amazonaws.com"
                }, 
                   "CacheNodeStatus": "available", 
                   "ParameterGroupStatus": "in-sync", 
                   "CacheNodeCreateTime": "2016-09-22T21:30:29.967Z", 
                   "CustomerAvailabilityZone": "us-west-2b"
          }
       ], 
       "CacheParameterGroup": {
       "CacheNodeIdsToReboot": [], 
       "CacheParameterGroupName": "default.memcached1.4", 
       "ParameterApplyStatus": "in-sync"
            }, 
            "CacheClusterId": "mycluster", 
            "PreferredAvailabilityZone": "us-west-2b", 
            "ConfigurationEndpoint": {
                "Port": 11211, 
                "Address": "mycluster.amazonaws.com"
            }, 
            "CacheSecurityGroups": [], 
            "CacheClusterCreateTime": "2016-09-22T21:30:29.967Z", 
            "AutoMinorVersionUpgrade": true, 
            "CacheClusterStatus": "available", 
            "NumCacheNodes": 3, 
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:", 
            "CacheSubnetGroupName": "default", 
            "EngineVersion": "1.4.24", 
            "PendingModifiedValues": {}, 
            "PreferredMaintenanceWindow": "mon:09:00-mon:10:00", 
            "CacheNodeType": "cache.m4.large",
             "DataTiering": "disabled"
        }
    ]   
}
```
若您選擇為 Memcached 組態端點建立 CNAME，為了讓自動探索用戶端將 CNAME 辨識為組態端點，您必須在 CNAME 中包含 `.cfg.`。例如，`session.save_path` 參數 php.ini 檔案中的 `mycluster.cfg.local`。

**Example**  
針對 Valkey 和 Redis OSS，下列命令會擷取單一節點叢集 *mycluster* 的叢集資訊。  
參數`--cache-cluster-id`可與複寫群組中的單一節點 Valkey 或 Redis OSS （停用叢集模式） 叢集 ID 或特定節點 ID 搭配使用。複寫群組`--cache-cluster-id`的 是 4 位數的值，例如 `0001`。如果 `--cache-cluster-id`是複寫群組中叢集 （節點） 的 ID，則 `replication-group-id`會包含在輸出中。
若為 Linux、macOS 或 Unix：  

```
aws elasticache describe-cache-clusters \
    --cache-cluster-id redis-cluster \
    --show-cache-node-info
```
針對 Windows：  

```
aws elasticache describe-cache-clusters ^
    --cache-cluster-id redis-cluster ^
    --show-cache-node-info
```
上述操作的輸出看起來應會與以下內容相似 (JSON 格式)。  

```
{
    "CacheClusters": [
        {
            "CacheClusterStatus": "available",
            "SecurityGroups": [
                {
                    "SecurityGroupId": "sg-77186e0d",
                    "Status": "active"
                }
            ],
            "CacheNodes": [
                {
                    "CustomerAvailabilityZone": "us-east-1b",
                    "CacheNodeCreateTime": "2018-04-25T18:19:28.241Z",
                    "CacheNodeStatus": "available",
                    "CacheNodeId": "0001",
                    "Endpoint": {
                        "Address": "redis-cluster.amazonaws.com",
                        "Port": 6379
                    },
                    "ParameterGroupStatus": "in-sync"
                }
            ],
            "AtRestEncryptionEnabled": false,
            "CacheClusterId": "redis-cluster",
            "TransitEncryptionEnabled": false,
            "CacheParameterGroup": {
                "ParameterApplyStatus": "in-sync",
                "CacheNodeIdsToReboot": [],
                "CacheParameterGroupName": "default.redis3.2"
            },
            "NumCacheNodes": 1,
            "PreferredAvailabilityZone": "us-east-1b",
            "AutoMinorVersionUpgrade": true,
            "Engine": "redis",
            "AuthTokenEnabled": false,
            "PendingModifiedValues": {},
            "PreferredMaintenanceWindow": "tue:08:30-tue:09:30",
            "CacheSecurityGroups": [],
            "CacheSubnetGroupName": "default",
            "CacheNodeType": "cache.t2.small",
             "DataTiering": "disabled"
            "EngineVersion": "3.2.10",
            "ClientDownloadLandingPage": "https://console.aws.amazon.com/elasticache/home#client-download:",
            "CacheClusterCreateTime": "2018-04-25T18:19:28.241Z"
        }
    ]
}
```

如需詳細資訊，請參閱 [describe-cache-clusters](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-clusters.html) 主題。

### 尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)
<a name="Endpoints.Find.CLI.ReplGroups"></a>

您可以使用 AWS CLI ，透過 `describe-replication-groups`命令探索複寫群組及其叢集的端點。此命令會傳回複寫群組的主要端點、複寫群組中所有叢集 (節點) 的清單和其端點，以及讀取器端點。

下列操作會擷取複寫群組 `myreplgroup` 的主要端點與讀取器端點。使用主要端點來進行所有寫入操作。

```
aws elasticache describe-replication-groups \
    --replication-group-id myreplgroup
```

針對 Windows：

```
aws elasticache describe-replication-groups ^
    --replication-group-id myreplgroup
```

此操作的輸出看起來應會與以下內容相似 (JSON 格式)。

```
{
   "ReplicationGroups": [
     {
       "Status": "available", 
       "Description": "test", 
       "NodeGroups": [
         {
            "Status": "available", 
               "NodeGroupMembers": [
                  {
                     "CurrentRole": "primary", 
                     "PreferredAvailabilityZone": "us-west-2a", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-001.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-001"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2b", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-002.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-002"
                  }, 
                  {
                     "CurrentRole": "replica", 
                     "PreferredAvailabilityZone": "us-west-2c", 
                     "CacheNodeId": "0001", 
                     "ReadEndpoint": {
                        "Port": 6379, 
                        "Address": "myreplgroup-003.amazonaws.com"
                     }, 
                     "CacheClusterId": "myreplgroup-003"
                  }
               ], 
               "NodeGroupId": "0001", 
               "PrimaryEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup.amazonaws.com"
               },
               "ReaderEndpoint": {
                  "Port": 6379, 
                  "Address": "myreplgroup-ro.amazonaws.com"
               }
            }
         ], 
         "ReplicationGroupId": "myreplgroup", 
         "AutomaticFailover": "enabled", 
         "SnapshottingClusterId": "myreplgroup-002", 
         "MemberClusters": [
            "myreplgroup-001", 
            "myreplgroup-002", 
            "myreplgroup-003"
         ], 
         "PendingModifiedValues": {}
      }
   ]
}
```

如需詳細資訊，請參閱 *AWS CLI CLI 命令參考*中的 [describe-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-replication-groups.html)。

## 尋找端點 (ElastiCache API)
<a name="Endpoints.Find.API"></a>

對於 Memcached，您可以使用 Amazon ElastiCache API 來探索節點和叢集的端點。

對於 Redis OSS，您可以使用 Amazon ElastiCache API 探索節點、叢集和複寫群組的端點。

**Topics**
+ [找節點和叢集的端點 (ElastiCache API)](#Endpoints.Find.API.Nodes)
+ [尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)](#Endpoints.Find.API.ReplGroups)

### 找節點和叢集的端點 (ElastiCache API)
<a name="Endpoints.Find.API.Nodes"></a>

您可以使用 ElastiCache API 與 `DescribeCacheClusters` 動作，探索叢集和其節點的端點。對於 Valkey 或 Redis OSS 叢集，命令會傳回叢集端點。 若是 Memcached 叢集，則命令會傳回組態端點。如果您包含選用參數 `ShowCacheNodeInfo`，則動作也會傳回叢集中個別節點的端點。

**Example**  
對於 Memcached，下列命令會擷取 Memcached 叢集 *mycluster* 的組態端點 (`ConfigurationEndpoint`) 和個別節點端點 (`Endpoint`)。  

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeCacheClusters
    &CacheClusterId=mycluster
    &ShowCacheNodeInfo=true
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```
若您選擇為 Memcached 組態端點建立 CNAME，為了讓自動探索用戶端將 CNAME 辨識為組態端點，您必須在 CNAME 中包含 `.cfg.`。例如，`session.save_path` 參數 php.ini 檔案中的 `mycluster.cfg.local`。

### 尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)
<a name="Endpoints.Find.API.ReplGroups"></a>

您可以使用 ElastiCache API 與 `DescribeReplicationGroups` 動作，探索複寫群組和其叢集的端點。此動作會傳回複寫群組的主要端點、複寫群組中所有叢集的清單和其端點，以及讀取器端點。

下列操作會擷取複寫群組 `myreplgroup` 的主要端點 (PrimaryEndpoint)、讀取器端點 (ReaderEndpoint) 與個別節點端點 (ReadEndpoint)。使用主要端點來進行所有寫入操作。

```
https://elasticache.us-west-2.amazonaws.com/
    ?Action=DescribeReplicationGroups
    &ReplicationGroupId=myreplgroup
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20150202T192317Z
    &Version=2015-02-02
    &X-Amz-Credential=<credential>
```

如需詳細資訊，請參閱 [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html)。