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

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

在 中尋找連線端點 ElastiCache

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

要與 Valkey 或 Redis 搭配使用的端點 OSS
  • 獨立節點 ,同時使用節點的端點進行讀取和寫入操作。

     

  • Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集 ,請使用主要端點進行所有寫入操作。使用「讀取器端點」來將傳入連線平均分散在所有讀取複本間的端點中。使用個別節點端點進行讀取操作 (在 API/CLI 中,這些端點稱為讀取端點)。

     

  • Valkey 或 Redis OSS(啟用叢集模式) 叢集 ,針對支援叢集模式啟用命令的所有操作使用叢集的組態端點。您必須使用支援 Valkey Cluster 或 Redis OSS Cluster (Redis OSS 3.2) 的用戶端。您仍然可以從個別節點端點讀取 (在 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,則必須將用戶端設定為使用個別的節點端點以進行讀取和寫入。您也必須在新增和移除節點時追蹤這些端點。

如果 Valkery、Valkey 或 Redis OSS(停用叢集模式) 叢集只有一個節點,則節點的端點會同時用於讀取和寫入。如果 Valkery 或 Valkey 或 Redis OSS(停用叢集模式) 叢集具有多個節點,則有三種類型的端點:主要端點 讀取器端點節點端點

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

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

注意

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Valkery 或 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 並在 https://console.aws.amazon.com/elasticache/開啟 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
重要

如果您選擇CNAME為 Memcached 組態端點建立 ,為了讓自動探索用戶端將 識別CNAME為組態端點,您必須包含在 .cfg.中CNAME。

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

對於 Redis,您可以使用 AWS CLI for 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" } ] }
重要

如果您選擇CNAME為 Memcached 組態端點建立 ,為了讓自動探索用戶端將 識別CNAME為組態端點,您必須包含在 .cfg.中CNAME。例如,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": {} } ] }

如需詳細資訊,請參閱 命令參考 describe-replication-groups 中的 。 AWS CLI

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

對於 Redis,您可以使用 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>
重要

如果您選擇CNAME為 Memcached 組態端點建立 ,為了讓自動探索用戶端將 識別CNAME為組態端點,您必須包含在 .cfg.中CNAME。例如,session.save_path 參數 php.ini 檔案中的 mycluster.cfg.local

尋找 Valkey 或 Redis OSS 複寫群組的端點 (ElastiCache API)

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

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

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