レプリカを使用した Redis OSS クラスターのスケールアップ - Amazon ElastiCache (Redis OSS)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

レプリカを使用した Redis OSS クラスターのスケールアップ

Amazon ElastiCache は、Redis OSS (クラスターモードが無効) レプリケーショングループをスケールアップするためのコンソール、CLI、および API サポートを提供します。

スケールアッププロセスが開始されると、 は次の ElastiCache 操作を行います。

  1. 新しいノードタイプを使用して、レプリケーショングループを起動します。

  2. 現行プライマリノードのすべてのデータを新しいプライマリノードにコピーします。

  3. 新しいリードレプリカを新しいプライマリノードと同期させます。

  4. 新しいノードを参照するように DNS エントリを更新します。このため、アプリケーションのエンドポイントを更新する必要はありません。Redis OSS 5.0.5 以降では、自動フェイルオーバーが有効なクラスターをスケーリングしながら、クラスターがオンラインのままで受信リクエストを処理できます。バージョン 4.0.10 以前では、DNS エントリが更新されている間、以前のバージョンのプライマリノードからの読み取りと書き込みが短時間中断することがあります。

  5. 古いノード (CLI/API: レプリケーショングループ) を削除します。古いノードへの接続が切断されるため、古いノードからの読み書きが短時間 (数秒) 中断されるのが分かります。

このプロセスの所要時間はノードタイプとクラスターのデータ量によって異なります。

次の表に示すように、クラスターの次のメンテナンスウィンドウにエンジンアップグレードがスケジュールされている場合、Redis OSS のスケールアップオペレーションはブロックされます。

ブロックされた Redis OSS オペレーション
保留中のオペレーション ブロックされたオペレーション
スケールアップ 即時のエンジンのアップグレード
エンジンのアップグレード 即時のスケールアップ
スケールアップとエンジンのアップグレード 即時のスケールアップ
即時のエンジンのアップグレード

保留中のオペレーションによってブロックされている場合は、以下のいずれかを行うことができます。

  • すぐに適用チェックボックスをオフにして、次のメンテナンスウィンドウの Redis OSS スケールアップオペレーションをスケジュールします (CLI 使用: --no-apply-immediately、API 使用: ApplyImmediately=false)。

  • Redis OSS のスケールアップオペレーションを実行するには、次のメンテナンスウィンドウ (またはそれ以降) まで待ちます。

  • 「すぐに適用」チェックボックスをオンにして、Redis OSS エンジンのアップグレードをこのキャッシュクラスターの変更に追加します (CLI の使用: --apply-immediately、API の使用: ApplyImmediately=true)。これにより、エンジンのアップグレードがすぐに実行されて、スケールアップオペレーションのブロックが解除されます。

以下のセクションでは、 ElastiCache コンソール、、 AWS CLIおよび ElastiCache API を使用して、レプリカを使用して Redis OSS クラスターをスケールアップする方法について説明します。

重要

パラメータグループが reserved-memoryを使用して Redis OSS オーバーヘッドのメモリを残す場合は、スケーリングを開始する前に、新しいノードタイプに適切な量のメモリを予約するカスタムパラメータグループがあることを確認してください。または、reserved-memory-percent を使用するようにカスタムパラメータグループを変更し、新しいクラスターに対して、パラメータグループを使用することができます。

reserved-memory-percent を使用している場合、これを行う必要はありません。

詳細については、「予約メモリの管理」を参照してください。

より大きいノードタイプへのスケールアップにかかる時間はノードタイプと現在のクラスターのデータ量によって異なります。

次のプロセスでは、コンソールを使用して、レプリカを使用してクラスターを現在のノードタイプから新しいより大きなノードタイプにスケーリングします ElastiCache 。このプロセス中に、DNS エントリが更新されている間、プライマリノードからの他のバージョンの読み取りと書き込みが短時間中断される場合があります。5.0.6 バージョン以降で実行されているノードでは 1 秒未満のダウンタイム、古いバージョンでは数秒のダウンタイムが発生する場合があります。

レプリカを使用して Redis OSS クラスターをスケールアップするには (コンソール)
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

  2. ナビゲーションペインから、Redis OSS クラスターを選択します。

  3. クラスターのリストから、スケールアップするクラスターを選択します。このクラスターは、Clustered Redis OSS エンジンではなく、Redis OSS エンジンを実行している必要があります。

  4. [変更] を選択します。

  5. [Modify Cluster] ウィザードで:

    1. Node type リストから、スケーリングするノードタイプを選択します。すべてのノードタイプがスケールダウンできるわけではないことに注意してください。

    2. reserved-memory を使用してメモリを管理している場合、[Parameter Group] リストから新しいノードタイプのために適切な容量のメモリを確保するカスタムパラメータグループを選択します。

  6. スケールアッププロセスをすぐに実行する場合は、[Apply immediately] チェックボックスをオンにします。[Apply immediately] チェックボックスをオフのままにすると、スケールアッププロセスは、このクラスターの次のメンテナンス期間中に実行されます。

  7. [変更] を選択します。

  8. クラスターのステータスが [modifying] から [available] に変わると、クラスターは新しいノードタイプにスケーリングされます。アプリケーションでエンドポイントを更新する必要はありません。

次のプロセスでは、 AWS CLIを使用して、レプリケーショングループを現在のノードタイプから新しいより大きいノードタイプにスケールします。このプロセス中、 ElastiCache (Redis OSS) は DNS エントリを更新して、新しいノードをポイントします。このため、アプリケーションのエンドポイントを更新する必要はありません。Redis OSS 5.0.5 以降では、自動フェイルオーバーが有効なクラスターをスケーリングしながら、クラスターがオンラインのままで受信リクエストを処理できます。バージョン 4.0.10 以前では、DNS エントリが更新されている間、以前のバージョンのプライマリノードからの読み取りと書き込みが短時間中断することがあります。

より大きいノードタイプへのスケールアップにかかる時間はノードタイプと現在のキャッシュクラスターのデータ量によって異なります。

Redis OSS レプリケーショングループをスケールアップするには (AWS CLI)
  1. 次のパラメータを指定して list-allowed-node-type-modifications コマンドを実行して、 AWS CLI スケールアップできるノードタイプを決定します。

    • --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」を参照してください。

  2. 次のパラメータを指定して modify-replication-group コマンドを使用して、現在のレプリケーショングループを AWS CLI 新しいノードタイプにスケールアップします。

    • --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.m3.xlarge \ --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.m3.xlarge ^ --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 パラメータを使用した場合は、次のパラメータを指定して describe-replication-group コマンドを使用して AWS CLI レプリケーショングループのステータスをモニタリングします。ステータスはまだ [変更中] ですが、5.0.6 バージョン以降で実行されているノードのダウンタイムは 1 秒未満であり、DNS エントリが更新されている間、プライマリノードからの古いバージョンの読み取りと書き込みが短時間中断する場合があります。

    • --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 以降では、自動フェイルオーバーが有効なクラスターをスケーリングしながら、クラスターがオンラインのままで受信リクエストを処理できます。バージョン 4.0.10 以前では、DNS エントリが更新されている間、以前のバージョンのプライマリノードからの読み取りと書き込みが短時間中断することがあります。

より大きいノードタイプへのスケールアップにかかる時間はノードタイプと現在のキャッシュクラスターのデータ量によって異なります。

Redis OSS レプリケーショングループ (ElastiCache API) をスケールアップするには
  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>

    詳細については、「Amazon ElastiCache API リファレンスListAllowedNodeTypeModifications」の「」を参照してください。

  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>

    詳細については、「Amazon ElastiCache API リファレンスModifyReplicationGroup」の「」を参照してください。

  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>

    詳細については、「Amazon ElastiCache API リファレンスDescribeReplicationGroups」の「」を参照してください。