在 ElastiCache 中尋找連線端點 - Amazon ElastiCache

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

在 ElastiCache 中尋找連線端點

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

您也可以透過建立介面 VPC 端點,在 VPC 和 ElastiCache API 端點之間建立私有連線 AWS PrivateLink。如需詳細資訊,請參閱ElastiCache API 和界面 VPC 端點 (AWS PrivateLink)

要搭配 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 或 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 Management Console ,並在 https:// 開啟 ElastiCache 主控台。 https://console.aws.amazon.com/elasticache/

  2. 從導覽窗格中,選擇 Valkey 叢集Redis OSS 叢集

    叢集畫面將出現,其中包含 Valkey 或 Valkey 或 Redis OSS (停用叢集模式) 和 Valkey 或 Redis OSS (啟用叢集模式) 叢集的清單。

  3. 若要尋找叢集的主要和/或讀取器端點,請選擇叢集名稱 (而非左側的按鈕)。

    影像:Valkey 或 Valkey 或 Redis OSS (停用叢集模式) 叢集的主要端點

    Valkey 或 Valkey 或 Redis OSS (停用叢集模式) 叢集的主要端點和讀取器端點

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

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

    隨即顯示節點畫面,其顯示叢集中的每個節點、主要複本和複本,並與其端點一起列出。

    影像:Valkey 或 Valkey 或 Redis OSS (停用叢集模式) 叢集的節點端點

    Valkey 或 Valkey 或 Redis OSS (停用叢集模式) 叢集的節點端點

  5. 將端點複製到剪貼簿:

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

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

    現在,端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊,請參閱 連線至 Memcached 節點

一個 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 (啟用叢集模式) 叢集具有單一組態端點。只要連線到組態端點,您的應用程式就可以探索叢集中每個碎片的主要和讀取端點。

尋找 Valkey 或 Redis OSS (啟用叢集模式) 叢集的端點
  1. 登入 AWS Management Console ,並在 開啟 ElastiCache 主控台。 https://console.aws.amazon.com/elasticache/

  2. 從導覽窗格中,選擇 Valkey 叢集Redis OSS 叢集

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

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

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

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

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

若要複製端點,請選擇端點位址前面的複製圖示。如需使用端點連線至節點的相關資訊,請參閱 連線至 Memcached 節點

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

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.

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

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

尋找節點和叢集的端點 (AWS CLI)

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

以下命令會擷取 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

針對 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 主題。

尋找 Valkey 或 Redis OSS 複寫群組的端點 (AWS CLI)

您可以使用 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

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

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

找節點和叢集的端點 (ElastiCache API)

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

對於 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)

您可以使用 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