本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用複本縮減 Redis OSS 叢集的規模
以下各節將引導您如何將具有複本節點的 Redis OSS (叢集模式停用) 快取叢集擴展到較小的節點類型。請務必確保新的,較小的節點類型足夠大而可以容納所有資料和成本。如需詳細資訊,請參閱 確定您有足夠的記憶體來建立 Redis OSS 快照。
注意
針對執行 r6gd 節點類型的叢集,您只能擴展到 r6gd 節點系列中的節點大小。
重要
如果您的參數群組使用reserved-memory
為 Redis OSS 額外負荷預留記憶體,在開始調整規模之前,請確定您有一個自訂參數群組,為新節點類型保留正確的記憶體數量。或者,您可以修改自訂參數群組,使得它會對您的新叢集使用 reserved-memory-percent
並使用該參數群組。
如果您使用 reserved-memory-percent
,則不需執行此動作。
如需詳細資訊,請參閱 管理預留記憶體。
主題
下列程序會使用主控台將具有複本節點的 Redis OSS 叢集擴展為較小的節點類型。 ElastiCache
使用複本節點 (主控台) 縮減 Redis OSS 叢集
-
確保該較小的節點類型對您的資料和成本而言已足夠。
-
如果您的參數群組使用
reserved-memory
為 Redis OSS 額外負荷預留記憶體,請確定您擁有自訂參數群組,以便為新節點類型預留正確的記憶體數量。或者,您可以將自訂參數群組修改為使用
reserved-memory-percent
。如需詳細資訊,請參閱 管理預留記憶體。 -
請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/
。 -
從叢集的清單,選擇您要縮減規模的叢集。此叢集必須執行 Redis 的 OSS 引擎,而不是叢集 Redis 的 OSS 引擎。
-
選擇 Modify (修改)。
-
在 Modify Cluster (修改叢集) 精靈中:
-
從 Node type (節點類型) 清單,選擇您要縮減規模的節點類型。
-
如果您使用
reserved-memory
來管理記憶體,請從 Parameter Group (參數群組) 清單中,選擇會為新節點類型保留正確記憶體數量的自訂參數群組。
-
-
如果您要立即執行縮減規模程序,請選擇 Apply immediately (立即套用) 核取方塊。如果將 Apply immediately (立即套用) 核取方塊保留未選擇,在此叢集的下一個維護時段期間,會執行縮減規模程序。
-
選擇 Modify (修改)。
-
當叢集的狀態從 modifying (修改中) 變更為 available (可用),您的叢集即已擴展為新節點類型。不需要在應用程式中更新端點。
下列程序會使用 AWS CLI,將複寫群組從其目前的節點類型擴展至新的、較的節點類型。在此過程中, ElastiCache (Redis 的 OSS) 會更新 DNS 項目,以便它們指向新的節點。因此,您不需在應用程式中更新端點。對於 Redis OSS 5.0.5 及更新版本,您可以擴展啟用 auto 容錯移轉的叢集,同時叢集繼續保持在線狀態並提供傳入的要求。在 4.0.10 和以下版本中,您會注意到,DNS 項目更新的同時,前幾版來自主節點的讀取和寫入發生短暫中斷。
不過,來自僅供讀取複本快取叢集的讀取會繼續不中斷。
向下擴展至較小的節點類型所需的時間可能不同,取決於節點類型和您目前快取叢集中的資料量。
若要縮減 Redis 的 OSS 複寫群組 ()AWS CLI
-
透過使用下列參數執行 AWS CLI
list-allowed-node-type-modifications
命令,決定可縮減至哪些節點類型。--replication-group-id
- 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。
若為 Linux、macOS 或 Unix:
aws elasticache list-allowed-node-type-modifications \ --replication-group-id
my-repl-group
針對 Windows:
aws elasticache list-allowed-node-type-modifications ^ --replication-group-id
my-repl-group
此操作的輸出看起來會類似這個 (JSON 格式)。
{ "ScaleDownModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] }
如需詳細資訊,請參閱 AWS CLI 參考中的「list-allowed-node-type-modifications」。
-
使用具有下列參數的 AWS CLI
modify-replication-group
命令,將目前的複寫群組擴展到新節點類型。--replication-group-id
- 複寫群組的名稱。--cache-node-type
- 此複寫群組中較小的新快取叢集節點類型。此值必須是步驟 1 中list-allowed-node-type-modifications
命令傳回的其中一個執行個體類型。--cache-parameter-group-name
- [選用] 如果您使用reserved-memory
來管理叢集的保留記憶體,請使用此參數。指定自訂快取參數群組,其會為您的新節點類型保留正確的記憶體數量。如果您要使用reserved-memory-percent
,則可以忽略此參數。--apply-immediately
- 會造成立即套用擴充規模程序。若要將向上擴展操作延期至下一個維護時段,請使用--no-apply-immediately
。
若為 Linux、macOS 或 Unix:
aws elasticache modify-replication-group \ --replication-group-id
my-repl-group
\ --cache-node-typecache.t2.small
\ --cache-parameter-group-nameredis32-m3-2xl
\ --apply-immediately針對 Windows:
aws elasticache modify-replication-group ^ --replication-group-id
my-repl-group
^ --cache-node-typecache.t2.small
^ --cache-parameter-group-nameredis32-m3-2xl
\ --apply-immediately此命令的輸出看起來會類似這個 (JSON 格式)。
{"ReplicationGroup": { "Status": "available", "Description": "Some description", "NodeGroups": [ { "Status": "available", "NodeGroupMembers": [ { "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-002" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com" } } ], "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "disabled", "SnapshotWindow": "12:00-13:00", "SnapshottingClusterId": "my-repl-group-002", "MemberClusters": [ "my-repl-group-001", "my-repl-group-002", ], "PendingModifiedValues": {} } }
如需詳細資訊,請參閱 AWS CLI 參考中的「modify-replication-group」。
-
如果您使用此
--apply-immediately
參數,請使用具有下列參數的 AWS CLIdescribe-replication-group
命令來監視複寫群組的狀態。當狀態從 modifying (修改中) 變更為 available (可用),您即可以開始寫入新的、已向下擴展的複寫群組。--replication-group-id
- 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。
若為 Linux、macOS 或 Unix:
aws elasticache describe-replication-group \ --replication-group-id
my-replication-group
針對 Windows:
aws elasticache describe-replication-groups ^ --replication-group-id
my-replication-group
如需詳細資訊,請參閱〈AWS CLI 參考〉describe-replication-groups中的〈〉。
下列程序會使用 ElastiCache API 將您的複寫群組從目前的節點類型調整為新的較小節點類型。在此過程中, ElastiCache (Redis 的 OSS) 會更新 DNS 項目,以便它們指向新的節點。因此,您不需在應用程式中更新端點。對於 Redis OSS 5.0.5 及更新版本,您可以擴展啟用 auto 容錯移轉的叢集,同時叢集繼續保持在線狀態並提供傳入的要求。在 4.0.10 和以下版本中,您會注意到,DNS 項目更新的同時,前幾版來自主節點的讀取和寫入發生短暫中斷。不過,來自僅供讀取複本快取叢集的讀取會繼續不中斷。
向下擴展至較小的節點類型所需的時間可能不同,取決於節點類型和您目前快取叢集中的資料量。
若要縮減 Redis 的 OSS 複寫群組 (API) ElastiCache
-
透過下列參數使用 ElastiCache API
ListAllowedNodeTypeModifications
動作,判斷可縮減為哪些節點類型。ReplicationGroupId
- 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。
https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>
如需詳細資訊,請ListAllowedNodeTypeModifications參閱 Amazon ElastiCache API 參考中的。
-
使用
ModifyRedplicationGroup
ElastiCache API 動作和下列參數,將目前的複寫群組擴展到新節點類型。ReplicationGroupId
- 複寫群組的名稱。CacheNodeType
- 此複寫群組中較小的新快取叢集節點類型。此值必須是步驟 1 中ListAllowedNodeTypeModifications
動作傳回的其中一個執行個體類型。CacheParameterGroupName
- [選用] 如果您使用reserved-memory
來管理叢集的保留記憶體,請使用此參數。指定自訂快取參數群組,其會為您的新節點類型保留正確的記憶體數量。如果您要使用reserved-memory-percent
,則可以忽略此參數。ApplyImmediately
- 設定為true
會立即套用擴充規模程序。若要將向下擴展程序延期至下一個維護時段,請使用ApplyImmediately
=false
。
https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>
如需詳細資訊,請ModifyReplicationGroup參閱 Amazon ElastiCache API 參考中的。
-
如果已使用
ApplyImmediately
=true
,請使用具有下列參數的 ElastiCache APIDescribeReplicationGroups
動作監視複寫群組的狀態。當狀態從 modifying (修改中) 變更為 available (可用),您即可以開始寫入新的、已向下擴展的複寫群組。ReplicationGroupId
- 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。
https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>
如需詳細資訊,請DescribeReplicationGroups參閱 Amazon ElastiCache API 參考中的。