本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用複本擴展 Redis OSS 叢集
Amazon ElastiCache 提供主控台、CLI 和 API 支援,以擴展 Redis OSS (叢集模式已停用) 複寫群組。
啟動擴展程序時, ElastiCache 請執行下列動作:
使用新節點類型啟動複寫群組。
將所有資料從目前的主要節點複製到新的主要節點。
將新的僅供讀取複本與新主要節點同步。
更新 DNS 項目,使得它們指向新節點。因此,您不需在應用程式中更新端點。對於 Redis OSS 5.0.5 及更新版本,您可以擴展啟用 auto 容錯移轉的叢集,同時叢集繼續保持在線狀態並提供傳入的要求。在 4.0.10 和以下版本中,您會注意到,DNS 項目更新的同時,前幾版來自主節點的讀取和寫入發生短暫中斷。
刪除舊節點 (CLI/API:複寫群組)。您會注意到來自舊節點的讀取和寫入發生短暫中斷 (幾秒鐘),因為與舊節點的連線將會中斷。
此程序需要的時間與您的節點類型以及叢集中的資料量有關。
如下表所示,如果您已為叢集的下一個維護時段排定引擎升級,則會封鎖 Redis OSS 向上擴充作業。
封鎖的雷迪斯 OSS 作業 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
擱置中操作 | 封鎖的操作 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
向上擴展 | 立即升級引擎 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
引擎升級 | 立即向上擴展 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
向上擴展與升級引擎 | 立即向上擴展 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
立即升級引擎 |
如果您有正封鎖您的擱置中操作,您可以執行下列其中一項。
-
清除 [立即套用] 核取方塊 (CLI 使用:
--no-apply-immediately
, API 使用:),排程 Redis OSS 向上擴充作業的下一個維護時段。ApplyImmediately=false
-
請等到下一個維護時段 (或之後),以執行 Redis OSS 向上擴充作業。
-
將 Redis OSS 引擎升級新增至此快取叢集修改,並選取 [立即套用] 核取方塊 (CLI 使用:
--apply-immediately
, API 使用:ApplyImmediately=true
)。這樣會透過讓引擎升級立即執行,來解除封鎖您的向上擴展操作。
下列各節說明如何使用 ElastiCache 主控台、和 API 擴展具有複本的 Redis OSS 叢集。 AWS CLI ElastiCache
重要
如果您的參數群組使用reserved-memory
為 Redis OSS 額外負荷預留記憶體,在開始調整規模之前,請確定您有一個自訂參數群組,為新節點類型保留正確的記憶體數量。或者,您可以修改自訂參數群組,使得它會對您的新叢集使用 reserved-memory-percent
並使用該參數群組。
如果您使用 reserved-memory-percent
,則不需執行此動作。
如需詳細資訊,請參閱 管理預留記憶體。
向上擴展至較大的節點類型所需的時間可能不同,取決於節點類型和您目前叢集中的資料量。
下列程序會使用 ElastiCache 主控台將叢集的複本從目前的節點類型擴展到新的較大節點類型。在此過程中,更新 DNS 項目時,其他版本的主節點可能會發生讀取和寫入短暫中斷的情況。在 5.0.6 和更新版本上執行的節點,停機時間可能不到 1 秒,而在較舊版本上則可達數秒。
若要使用複本 (主控台) 擴充 Redis OSS 叢集
-
請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/
。 -
在瀏覽窗格中,選擇 Redis 的 OSS 叢集
-
從叢集的清單,選擇您要向上擴展的叢集。此叢集必須執行 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 格式)。
{ "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" ] }
如需詳細資訊,請參閱 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.m3.xlarge
\ --cache-parameter-group-nameredis32-m3-2xl
\ --apply-immediately針對 Windows:
aws elasticache modify-replication-group ^ --replication-group-id
my-repl-group
^ --cache-node-typecache.m3.xlarge
^ --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
命令來監視複寫群組的狀態。如果狀態仍是修改中,更新 DNS 項目時,在 5.0.6 和更新版本上執行的節點,停機時間可能不到 1 秒,而在較舊版本上,主節點的讀取和寫入則會短暫中斷。--replication-group-id
- 複寫群組的名稱。使用此參數來描述特定複寫群組 (而非所有複寫群組)。
若為 Linux、macOS 或 Unix:
aws elasticache describe-replication-groups \ --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 將您的複寫群組從目前的節點類型調整為新的較大節點類型。對於 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 參考中的。