透過修改節點類型來進行線上垂直擴展 - Amazon ElastiCache

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

透過修改節點類型來進行線上垂直擴展

透過搭配 Valkey 7.2 版或更新版本,或 Redis 3.2.10 OSS版或更新版本使用線上垂直擴展,您可以在最短的停機時間下動態擴展您的 Valkey 或 Redis OSS叢集。這可讓 Valkey 或 Redis OSS叢集在擴展時提供請求。

注意

不支援在資料分層叢集 (例如,使用 r6gd 節點類型的叢集) 與未使用資料分層叢集 (例如,使用 r6g 節點類型的叢集) 之間的擴展。如需詳細資訊,請參閱中的資料分層 ElastiCache

您可以執行下列作業:

  • 擴展 – 透過調整 Valkey 或 Redis OSS叢集的節點類型以使用較大的節點類型來增加讀取和寫入容量。

    ElastiCache 動態調整叢集的大小,同時保持連線和服務請求。

  • 縮減規模 - 將節點類型向下調整為使用較小的節點,減少讀取和寫入容量。再次強調, ElastiCache 動態調整叢集的大小,同時保持線上狀態並提供請求。在這種情況下,您透過縮減節點來降低成本。

注意

向上擴展和向下擴展程序牽涉到使用新選取的節點類型來建立叢集,並將新節點與先前的節點進行同步。若要確保順暢的向上/向下擴展流程,請執行以下操作:

  • 確保您有足夠的 ENI(彈性網路介面) 容量。若是向下擴展,請確定較小的節點有足夠的記憶體,可以吸收預期的流量。

    如需記憶體管理的最佳實務,請參閱管理 Valkey 和 Redis 的預留記憶體 OSS

  • 雖然垂直擴展程序的目標是保持全面上線,但此程序也需要在舊節點和新節點之間同步資料。建議您在預期資料流量最小的時間內啟動向上/向下擴展。

  • 盡可能在預備環境中測試您的應用程式行為。

線上擴充規模

擴展 Valkey 或 Redis OSS快取叢集 (主控台)

下列程序說明如何使用 ElastiCache 管理主控台擴展 Valkey 或 Redis OSS叢集。在此過程中,您的叢集將繼續以最短的停機時間提供請求。

擴展 Valkey 或 Redis OSS叢集 (主控台)
  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/elasticache/開啟 ElastiCache 主控台。

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

  3. 從叢集的清單中,選擇叢集。

  4. 選擇 Modify (修改)。

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

    1. Node type (節點類型) 清單選擇您要擴展的節點類型。若要向上擴展,請選取大於現有節點的節點類型。

  6. 如果您要立即執行向上擴展程序,請選擇 Apply immediately (立即套用) 方塊。如果未選擇 Apply immediately (立即套用) 方塊,在此叢集的下一個維護時段期間,會執行向上擴展程序。

  7. 選擇 Modify (修改)。

    如果您在上一個步驟中選擇 Apply immediately (立即套用),叢集的狀態變更為 modifying (修改中)。當狀態變更為 available (可用),修改即已完成,並且您可以開始使用新叢集。

擴展 Valkey 或 Redis OSS快取叢集 (AWS CLI)

下列程序說明如何使用 擴展 Valkey 或 Redis OSS快取叢集 AWS CLI。在此過程中,您的叢集將繼續以最短的停機時間提供請求。

擴展 Valkey 或 Redis OSS快取叢集 (AWS CLI)
  1. 使用下列參數執行 list-allowed-node-type-modifications命令,決定您可以擴展至 的 AWS CLI 節點類型。

    若為 Linux、macOS 或 Unix:

    aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-replication-group-id

    針對 Windows:

    aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-replication-group-id

    從上述命令輸出看起來像這樣 (JSON 格式)。

    { "ScaleUpModifications": [ "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" ] "ScaleDownModifications": [ "cache.t2.micro", "cache.t2.small ", "cache.t2.medium", "cache.t1.small " ], }

    如需詳細資訊,請參閱 list-allowed-node-type-修改 在AWS CLI 參考 中。

  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-redis-cluster \ --cache-node-type cache.m3.xlarge \ --apply-immediately

    針對 Windows:

    aws elasticache modify-replication-group ^ --replication-group-id my-redis-cluster ^ --cache-node-type cache.m3.xlarge ^ --apply-immediately

    從上述命令輸出看起來像這樣 (JSON 格式)。

    { "ReplicationGroup": { "Status": "modifying", "Description": "my-redis-cluster", "NodeGroups": [ { "Status": "modifying", "Slots": "0-16383", "NodeGroupId": "0001", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-east-1f", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-001" }, { "PreferredAvailabilityZone": "us-east-1d", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-002" } ] } ], "ConfigurationEndpoint": { "Port": 6379, "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com" }, "ClusterEnabled": true, "ReplicationGroupId": "my-redis-cluster", "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotWindow": "07:30-08:30", "MemberClusters": [ "my-redis-cluster-0001-001", "my-redis-cluster-0001-002" ], "CacheNodeType": "cache.m3.xlarge", "DataTiering": "disabled" "PendingModifiedValues": {} } }

    如需詳細資訊,請參閱 modify-replication-group 在AWS CLI 參考 中。

  3. 如果您使用 --apply-immediately,請使用具有下列參數的 命令來 AWS CLI describe-cache-clusters檢查快取叢集的狀態。當狀態變更為可用,您就可以開始使用新的、較大的快取叢集節點。

擴展 Valkey 或 Redis OSS快取叢集 (ElastiCache API)

下列程序會使用 ,將快取叢集從目前的節點類型擴展到新的較大節點類型 ElastiCache API。在此過程中, 會 ElastiCache 更新DNS項目,以便它們指向新的節點。因此,您不需在應用程式中更新端點。對於 Valkey 7.2 及更新版本 Redis OSS 5.0.5 及更新版本,您可以在叢集持續上線並提供傳入請求時擴展自動容錯移轉啟用的叢集。在 Redis OSS 4.0.10 及更低版本上,您可能會注意到DNS項目更新時,先前節點的讀取和寫入短暫中斷。

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

擴展 Valkey 或 Redis OSS 快取叢集 (ElastiCache API)
  1. 使用 ListAllowedNodeTypeModifications動作搭配下列參數, ElastiCache API決定您可以擴展到哪些節點類型。

    • 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. 使用 ModifyReplicationGroup ElastiCache API動作和下列參數,將您目前的複寫群組擴展到新的節點類型。

    • ReplicationGroupId - 複寫群組的名稱。

    • CacheNodeType - 此複寫群組中較大的新快取叢集節點類型。此值必須是上一個步驟中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,請使用具有下列參數DescribeReplicationGroups的動作來 ElastiCache API監控複寫群組的狀態。當狀態從 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 參考 中。

線上縮減規模

縮減 Valkey 或 Redis OSS快取叢集 (主控台)

下列程序說明如何使用 ElastiCache 管理主控台縮減 Valkey 或 Redis OSS叢集規模。在此過程中,您的 Valkey 或 Redis OSS叢集將繼續以最短的停機時間提供請求。

若要縮減 Valkey 或 Redis OSS叢集 (主控台)
  1. 登入 AWS Management Console 並在 https://console.aws.amazon.com/elasticache/開啟 ElastiCache 主控台。

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

  3. 從叢集的清單中,選擇您偏好的叢集。

  4. 選擇 Modify (修改)。

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

    1. Node type (節點類型) 清單選擇您要擴展的節點類型。若要向下擴展,請選取小於現有節點的節點類型。請注意,並非所有節點類型都可縮減規模。

  6. 如果您要立即執行向下擴展程序,請選擇 Apply immediately (立即套用) 方塊。如果未選擇 Apply immediately (立即套用) 方塊,則會在此叢集的下一個維護時段期間,執行向下擴展程序。

  7. 選擇 Modify (修改)。

    如果您在上一個步驟中選擇 Apply immediately (立即套用),叢集的狀態變更為 modifying (修改中)。當狀態變更為 available (可用),修改即已完成,並且您可以開始使用新叢集。

縮減 Valkey 或 Redis OSS快取叢集 (AWS CLI)

下列程序說明如何使用 縮減 Valkey 或 Redis OSS快取叢集的規模 AWS CLI。在此過程中,您的叢集將繼續以最短的停機時間提供請求。

若要縮減 Valkey 或 Redis OSS快取叢集 (AWS CLI)
  1. 使用下列參數執行 list-allowed-node-type-modifications命令, AWS CLI 決定您可以縮減規模的節點類型。

    若為 Linux、macOS 或 Unix:

    aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-replication-group-id

    針對 Windows:

    aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-replication-group-id

    從上述命令輸出看起來像這樣 (JSON 格式)。

    { "ScaleUpModifications": [ "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" ] "ScaleDownModifications": [ "cache.t2.micro", "cache.t2.small ", "cache.t2.medium ", "cache.t1.small" ] }

    如需詳細資訊,請參閱 list-allowed-node-type-修改 在AWS CLI 參考 中。

  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-redis-cluster \ --cache-node-type cache.t2.micro \ --apply-immediately

    針對 Windows:

    aws elasticache modify-replication-group ^ --replication-group-id my-redis-cluster ^ --cache-node-type cache.t2.micro ^ --apply-immediately

    從上述命令輸出看起來像這樣 (JSON 格式)。

    { "ReplicationGroup": { "Status": "modifying", "Description": "my-redis-cluster", "NodeGroups": [ { "Status": "modifying", "Slots": "0-16383", "NodeGroupId": "0001", "NodeGroupMembers": [ { "PreferredAvailabilityZone": "us-east-1f", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-001" }, { "PreferredAvailabilityZone": "us-east-1d", "CacheNodeId": "0001", "CacheClusterId": "my-redis-cluster-0001-002" } ] } ], "ConfigurationEndpoint": { "Port": 6379, "Address": "my-redis-cluster.r7gdfi.clustercfg.use1.cache.amazonaws.com" }, "ClusterEnabled": true, "ReplicationGroupId": "my-redis-cluster", "SnapshotRetentionLimit": 1, "AutomaticFailover": "enabled", "SnapshotWindow": "07:30-08:30", "MemberClusters": [ "my-redis-cluster-0001-001", "my-redis-cluster-0001-002" ], "CacheNodeType": "cache.t2.micro", "DataTiering": "disabled" "PendingModifiedValues": {} } }

    如需詳細資訊,請參閱 modify-replication-group 在AWS CLI 參考 中。

  3. 如果您使用 --apply-immediately,請使用具有下列參數的 命令來 AWS CLI describe-cache-clusters檢查快取叢集的狀態。當狀態變更為可用,您就可以開始使用新的、較小的快取叢集節點。

縮減 Valkey 或 Redis OSS快取叢集 (ElastiCache API)

下列程序會使用 將複寫群組從目前的節點類型擴展到新的較小節點類型 ElastiCache API。在此過程中,您的 Valkey 或 Redis OSS叢集將繼續以最短的停機時間提供請求。

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

縮減規模 (ElastiCache API)
  1. 使用 ListAllowedNodeTypeModifications動作搭配下列參數, ElastiCache API決定您可以縮減為哪些節點類型。

    • 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. 使用 ModifyReplicationGroup ElastiCache API動作和下列參數,將您目前的複寫群組縮減為新的節點類型。

    • ReplicationGroupId - 複寫群組的名稱。

    • CacheNodeType - 此複寫群組中較小的新快取叢集節點類型。此值必須是上一個步驟中ListAllowedNodeTypeModifications動作傳回的執行個體類型之一。

    • CacheParameterGroupName - [選用] 如果您使用 reserved-memory 來管理叢集的保留記憶體,請使用此參數。指定自訂快取參數群組,其會為您的新節點類型保留正確的記憶體數量。如果您要使用 reserved-memory-percent,則可以忽略此參數。

    • ApplyImmediately - 設定為 true 會立即套用縮減規模程序。若要將向下擴展程序延期至下一個維護時段,請使用 ApplyImmediately=false

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.t2.micro &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 參考 中。