使用複本縮減 Redis OSS 叢集的規模 - Amazon ElastiCache (雷迪OSS斯)

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

使用複本縮減 Redis OSS 叢集的規模

以下各節將引導您如何將具有複本節點的 Redis OSS (叢集模式停用) 快取叢集擴展到較小的節點類型。請務必確保新的,較小的節點類型足夠大而可以容納所有資料和成本。如需詳細資訊,請參閱 確定您有足夠的記憶體來建立 Redis OSS 快照

注意

針對執行 r6gd 節點類型的叢集,您只能擴展到 r6gd 節點系列中的節點大小。

重要

如果您的參數群組使用reserved-memory為 Redis OSS 額外負荷預留記憶體,在開始調整規模之前,請確定您有一個自訂參數群組,為新節點類型保留正確的記憶體數量。或者,您可以修改自訂參數群組,使得它會對您的新叢集使用 reserved-memory-percent 並使用該參數群組。

如果您使用 reserved-memory-percent,則不需執行此動作。

如需詳細資訊,請參閱 管理預留記憶體

主題

    下列程序會使用主控台將具有複本節點的 Redis OSS 叢集擴展為較小的節點類型。 ElastiCache

    使用複本節點 (主控台) 縮減 Redis OSS 叢集
    1. 確保該較小的節點類型對您的資料和成本而言已足夠。

    2. 如果您的參數群組使用reserved-memory為 Redis OSS 額外負荷預留記憶體,請確定您擁有自訂參數群組,以便為新節點類型預留正確的記憶體數量。

      或者,您可以將自訂參數群組修改為使用 reserved-memory-percent。如需詳細資訊,請參閱 管理預留記憶體

    3. 請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/

    4. 從叢集的清單,選擇您要縮減規模的叢集。此叢集必須執行 Redis 的 OSS 引擎,而不是叢集 Redis 的 OSS 引擎。

    5. 選擇 Modify (修改)。

    6. Modify Cluster (修改叢集) 精靈中:

      1. Node type (節點類型) 清單,選擇您要縮減規模的節點類型。

      2. 如果您使用 reserved-memory 來管理記憶體,請從 Parameter Group (參數群組) 清單中,選擇會為新節點類型保留正確記憶體數量的自訂參數群組。

    7. 如果您要立即執行縮減規模程序,請選擇 Apply immediately (立即套用) 核取方塊。如果將 Apply immediately (立即套用) 核取方塊保留未選擇,在此叢集的下一個維護時段期間,會執行縮減規模程序。

    8. 選擇 Modify (修改)。

    9. 當叢集的狀態從 modifying (修改中) 變更為 available (可用),您的叢集即已擴展為新節點類型。不需要在應用程式中更新端點。

    下列程序會使用 AWS CLI,將複寫群組從其目前的節點類型擴展至新的、較的節點類型。在此過程中, ElastiCache (Redis 的 OSS) 會更新 DNS 項目,以便它們指向新的節點。因此,您不需在應用程式中更新端點。對於 Redis OSS 5.0.5 及更新版本,您可以擴展啟用 auto 容錯移轉的叢集,同時叢集繼續保持在線狀態並提供傳入的要求。在 4.0.10 和以下版本中,您會注意到,DNS 項目更新的同時,前幾版來自主節點的讀取和寫入發生短暫中斷。

    不過,來自僅供讀取複本快取叢集的讀取會繼續不中斷。

    向下擴展至較小的節點類型所需的時間可能不同,取決於節點類型和您目前快取叢集中的資料量。

    若要縮減 Redis 的 OSS 複寫群組 ()AWS CLI
    1. 透過使用下列參數執行 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」。

    2. 使用具有下列參數的 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-type cache.t2.small \ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

      針對 Windows:

      aws elasticache modify-replication-group ^ --replication-group-id my-repl-group ^ --cache-node-type cache.t2.small ^ --cache-parameter-group-name redis32-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」。

    3. 如果您使用此--apply-immediately參數,請使用具有下列參數的 AWS CLI describe-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
    1. 透過下列參數使用 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 參考中的。

    2. 使用 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 參考中的。

    3. 如果已使用 ApplyImmediately=true,請使用具有下列參數的 ElastiCache API DescribeReplicationGroups 動作監視複寫群組的狀態。當狀態從 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 參考中的。