Redis OSS のオンラインリシャーディングとシャードの再調整 (クラスターモードが有効) - Amazon ElastiCache (Redis OSS)

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

Redis OSS のオンラインリシャーディングとシャードの再調整 (クラスターモードが有効)

Amazon ElastiCache (Redis OSS) バージョン 3.2.10 以降でオンラインリシャーディングとシャードの再調整を使用すると、Redis OSS (クラスターモードが有効) クラスターをダウンタイムなしで動的にスケーリングできます。このアプローチでは、クラスターはスケーリングや再分散が処理中でもリクエストに対応し続けることができます。

以下の操作を行うことができます。

  • スケールアウト — Redis OSS (クラスターモードが有効) クラスター (レプリケーショングループ) にシャード (ノードグループ) を追加することで、読み取りおよび書き込み容量を増やします。

    レプリケーショングループに 1 つ以上のシャードを追加する場合、それぞれの新しいノードのノード数は既存の最小のシャードのシャード数と同じです。

  • スケールイン — Redis OSS (クラスターモードが有効) クラスターからシャードを削除することで、読み取りおよび書き込み容量を削減し、コストを削減します。

  • 再調整 — Redis OSS (クラスターモードが有効) クラスター内のシャード間でキースペースを移動し、可能な限りシャード間で均等に分散させます。

次のことはできません。

  • シャードを個別に構成:

    シャードのキースペースを個別に指定することはできません。これを行うには、オフライン処理を使用する必要があります。

現在、 ElastiCache (Redis OSS) のオンラインリシャーディングとリバランシングには次の制限が適用されます。

  • これらのプロセスには、Redis OSS エンジンバージョン 3.2.10 以降が必要です。エンジンバージョンのアップグレードについての詳細は、「エンジンバージョンとアップグレード 」を参照してください。

  • スロットまたはキースペース、および大きなアイテムには制限があります。

    シャード内のキーのいずれかに大きなアイテムが含まれる場合、そのキーはスケールアウトまたは再分散の際に移行されません。この機能により、アンバランスなシャードになる可能性があります。

    シャード内のキーのいずれかに大きなアイテム (シリアル化後 256 MB より大きいアイテム) が含まれる場合、シャードはスケールイン時に削除されません。この機能により、一部のシャードは削除されない可能性があります。

  • スケールアウトの際、新しいシャードのノード数はいずれも、既存の最小のシャードのノード数と等しくなります。

  • スケールアウトの際、既存のすべてのシャードに共通するタグは、すべて新しいシャードにコピーされます。

  • Global Data Store クラスターをスケールアウトする場合、 ElastiCache は既存のノードの 1 つから新しいノードに関数を自動的にレプリケートしません (複数可)。すべてのシャードが同じ関数を持つように、クラスターをスケールアウトした後に、新しいシャードに関数を読み込むことをお勧めします。

注記

ElastiCache (Redis OSS) バージョン 7 以降: クラスターをスケールアウトすると、 ElastiCache は既存のノードの 1 つにロードされた関数 (ランダムに選択) を新しいノードに自動的にレプリケートします。アプリケーションが Redis OSS Functions を使用している場合は、スケールアウトする前にすべての関数をすべてのシャードにロードして、 ElastiCache (Redis OSS) クラスターが異なるシャードで異なる関数定義に陥らないようにすることをお勧めします。

詳細については、「オンラインクラスターのサイズ変更」を参照してください。

、、 AWS CLIおよび ElastiCache API を使用して AWS Management Console、Redis OSS (クラスターモードが有効) クラスターを水平方向にスケーリングまたは再調整できます。

オンラインリシャーディングによるシャードの追加

、、または ElastiCache API を使用して AWS Management Console AWS CLI、Redis OSS (クラスターモードが有効) クラスターにシャードを追加できます。Redis OSS (クラスターモードが有効) クラスターにシャードを追加すると、既存のシャードのタグはすべて新しいシャードにコピーされます。

トピック

    を使用して AWS Management Console 、Redis OSS (クラスターモードが有効) クラスターに 1 つ以上のシャードを追加できます。以下の手順では、このプロセスについて説明します。

    Redis OSS (クラスターモードが有効) クラスターにシャードを追加するには
    1. https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

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

    3. シャードを追加する Redis OSS (クラスターモードが有効) クラスターのクラスター名の左側にあるボックスではなく、名前を見つけて選択します。

      ヒント

      Redis OSS (クラスターモードが有効) は、Clustered Redis OSSMode 列に表示する

    4. [Add shard] を選択します。

      1. [追加するシャード数] で、このクラスターに追加するシャード数を選択します。

      2. [アベイラビリティーゾーン] で、[No preference] または [Specify availability zones] を選択します。

      3. [Specify availability zones] を選択した場合は、各シャードのそれぞれのノードごとに、アベイラビリティゾーンのリストからノードのアベイラビリティーゾーンを選択します。

      4. 追加を選択します。

    以下のプロセスでは、 を使用してシャードを追加することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します AWS CLI。

    modify-replication-group-shard-configuration を使って以下のパラメータを使用します。

    パラメータ
    • --apply-immediately – 必須。シャードの再構成オペレーションがすぐに開始するよう指定します。

    • --replication-group-id – 必須。シャードの再構成オペレーションをどのレプリケーショングループ (クラスター) で実行するかを指定します。

    • --node-group-count – 必須。オペレーションの完了時に存在するシャード (ノードグループ) 数を指定します。シャードを追加する場合、--node-group-count の値は現在のシャード数より大きくなければなりません。

      オプションで、--resharding-configuration を使用してレプリケーショングループ内の各ノードにアベイラビリティーゾーンを指定できます。

    • --resharding-configuration - オプション。レプリケーショングループの各シャードのそれぞれのノードに推奨される、アベイラビリティーゾーンのリスト。--node-group-count の値が現在のシャード数より大きい場合にのみ、このパラメータを使用します。シャードを追加するときにこのパラメータを省略すると、Amazon ElastiCache は新しいノードのアベイラビリティーゾーンを選択します。

    次の例では、Redis OSS (クラスターモードが有効) クラスター の 4 つのシャードでキースペースを再設定しますmy-cluster。また、この例では、各シャードでそれぞれのノードのアベイラビリティーゾーンを指定しています。オペレーションはすぐに始まります。

    例 - シャードの追加

    Linux、macOS、Unix の場合:

    aws elasticache modify-replication-group-shard-configuration \ --replication-group-id my-cluster \ --node-group-count 4 \ --resharding-configuration \ "PreferredAvailabilityZones=us-east-2a,us-east-2c" \ "PreferredAvailabilityZones=us-east-2b,us-east-2a" \ "PreferredAvailabilityZones=us-east-2c,us-east-2d" \ "PreferredAvailabilityZones=us-east-2d,us-east-2c" \ --apply-immediately

    Windows の場合:

    aws elasticache modify-replication-group-shard-configuration ^ --replication-group-id my-cluster ^ --node-group-count 4 ^ --resharding-configuration ^ "PreferredAvailabilityZones=us-east-2a,us-east-2c" ^ "PreferredAvailabilityZones=us-east-2b,us-east-2a" ^ "PreferredAvailabilityZones=us-east-2c,us-east-2d" ^ "PreferredAvailabilityZones=us-east-2d,us-east-2c" ^ --apply-immediately

    詳細については、 AWS CLI ドキュメントのmodify-replication-group-shard「-configuration」を参照してください。

    ElastiCache API を使用して、 ModifyReplicationGroupShardConfigurationオペレーションを使用して Redis OSS (クラスターモードが有効) クラスターのシャードをオンラインで再設定できます。

    ModifyReplicationGroupShardConfiguration を使って以下のパラメータを使用します。

    パラメータ
    • ApplyImmediately=true – 必須。シャードの再構成オペレーションがすぐに開始するよう指定します。

    • ReplicationGroupId – 必須。シャードの再構成オペレーションをどのレプリケーショングループ (クラスター) で実行するかを指定します。

    • NodeGroupCount – 必須。オペレーションの完了時に存在するシャード (ノードグループ) 数を指定します。シャードを追加する場合、NodeGroupCount の値は現在のシャード数より大きくなければなりません。

      オプションで、ReshardingConfiguration を使用してレプリケーショングループ内の各ノードにアベイラビリティーゾーンを指定できます。

    • ReshardingConfiguration - オプション。レプリケーショングループの各シャードのそれぞれのノードに推奨される、アベイラビリティーゾーンのリスト。NodeGroupCount の値が現在のシャード数より大きい場合にのみ、このパラメータを使用します。シャードを追加するときにこのパラメータを省略すると、Amazon は新しいノードのアベイラビリティーゾーン ElastiCache を選択します。

    以下のプロセスでは、 ElastiCache API を使用してシャードを追加することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します。

    例 - シャードの追加

    次の例では、Redis OSS (クラスターモードが有効) クラスター にノードグループを追加するためmy-cluster、オペレーションの完了時に合計 4 つのノードグループがあります。また、この例では、各シャードでそれぞれのノードのアベイラビリティーゾーンを指定しています。オペレーションはすぐに始まります。

    https://elasticache.us-east-2.amazonaws.com/ ?Action=ModifyReplicationGroupShardConfiguration &ApplyImmediately=true &NodeGroupCount=4 &ReplicationGroupId=my-cluster &ReshardingConfiguration.ReshardingConfiguration.1.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2a &ReshardingConfiguration.ReshardingConfiguration.1.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2c &ReshardingConfiguration.ReshardingConfiguration.2.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2b &ReshardingConfiguration.ReshardingConfiguration.2.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2a &ReshardingConfiguration.ReshardingConfiguration.3.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2c &ReshardingConfiguration.ReshardingConfiguration.3.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2d &ReshardingConfiguration.ReshardingConfiguration.4.PreferredAvailabilityZones.AvailabilityZone.1=us-east-2d &ReshardingConfiguration.ReshardingConfiguration.4.PreferredAvailabilityZones.AvailabilityZone.2=us-east-2c &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20171002T192317Z &X-Amz-Credential=<credential>

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

    オンラインリシャーディングによるシャードの削除

    、、または ElastiCache API を使用して AWS Management Console AWS CLI、Redis OSS (クラスターモードが有効) クラスターからシャードを削除できます。

    シャードの削除 (コンソール)

    以下のプロセスでは、 を使用してシャードを削除することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します AWS Management Console。

    レプリケーショングループからノードグループ (シャード) を削除する前に、 はすべてのデータが残りのシャードに収まる ElastiCache ことを確認します。データが収まる場合、指定したシャードはリクエストに応じてレプリケーショングループから削除されます。データが残りのノードグループに収まらない場合、プロセスは終了し、レプリケーショングループはリクエスト前と同じノードグループ設定のままになります。

    を使用して AWS Management Console 、Redis OSS (クラスターモードが有効) クラスターから 1 つ以上のシャードを削除できます。レプリケーショングループのすべてのシャードを削除することはできません。代わりに、レプリケーショングループを削除する必要があります。詳細については、「レプリケーショングループの削除」を参照してください。次の手順では、1 つ以上のシャードを削除する手順を説明します。

    Redis OSS (クラスターモードが有効) クラスターからシャードを削除するには
    1. https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

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

    3. シャードを削除する Redis OSS (クラスターモードが有効) クラスターのクラスター名の左側にあるボックスではなく、名前を見つけて選択します。

      ヒント

      Redis OSS (クラスターモードが有効) クラスターのシャード列の値は 1 以上です。

    4. シャードの一覧から、削除する各シャードの名前の左にあるチェックボックスを選択します。

    5. [Delete shard] を選択します。

    シャードの削除 (AWS CLI)

    以下のプロセスでは、 を使用してシャードを削除することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します AWS CLI。

    重要

    レプリケーショングループからノードグループ (シャード) を削除する前に、 はすべてのデータが残りのシャードに収まる ElastiCache ことを確認します。データが収まる場合、指定されたシャード (--node-groups-to-remove) はリクエストに応じてレプリケーショングループから削除され、キースペースは残りのシャードにマッピングされます。データが残りのノードグループに収まらない場合、プロセスは終了し、レプリケーショングループはリクエスト前と同じノードグループ設定のままになります。

    を使用して AWS CLI 、Redis OSS (クラスターモードが有効) クラスターから 1 つ以上のシャードを削除できます。レプリケーショングループのすべてのシャードを削除することはできません。代わりに、レプリケーショングループを削除する必要があります。詳細については、「レプリケーショングループの削除」を参照してください。

    modify-replication-group-shard-configuration を使って以下のパラメータを使用します。

    パラメータ
    • --apply-immediately – 必須。シャードの再構成オペレーションがすぐに開始するよう指定します。

    • --replication-group-id – 必須。シャードの再構成オペレーションをどのレプリケーショングループ (クラスター) で実行するかを指定します。

    • --node-group-count – 必須。オペレーションの完了時に存在するシャード (ノードグループ) 数を指定します。シャードを削除する場合、--node-group-count の値は現在のシャード数より小さくなければなりません。

    • --node-groups-to-remove--node-group-count が現在のノードグループ (シャード) 数より少ない場合は必須です。レプリケーショングループから削除するシャード (ノードグループ) ID の一覧。

    次の手順では、1 つ以上のシャードを削除する手順を説明します。

    例 - シャードの削除

    次の例では、Redis OSS (クラスターモードが有効) クラスター から 2 つのノードグループを削除するためmy-cluster、オペレーションの完了時に合計 2 つのノードグループがあります。削除されたシャードのキースペースは、残りのシャード間で均等に分散されます。

    Linux、macOS、Unix の場合:

    aws elasticache modify-replication-group-shard-configuration \ --replication-group-id my-cluster \ --node-group-count 2 \ --node-groups-to-remove "0002" "0003" \ --apply-immediately

    Windows の場合:

    aws elasticache modify-replication-group-shard-configuration ^ --replication-group-id my-cluster ^ --node-group-count 2 ^ --node-groups-to-remove "0002" "0003" ^ --apply-immediately

    シャードの削除 (ElastiCache API)

    ElastiCache API を使用して、 ModifyReplicationGroupShardConfigurationオペレーションを使用して Redis OSS (クラスターモードが有効) クラスターのシャードをオンラインで再設定できます。

    以下のプロセスでは、 ElastiCache API を使用してシャードを削除することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します。

    重要

    レプリケーショングループからノードグループ (シャード) を削除する前に、 はすべてのデータが残りのシャードに収まる ElastiCache ことを確認します。データが収まる場合、指定されたシャード (NodeGroupsToRemove) はリクエストに応じてレプリケーショングループから削除され、キースペースは残りのシャードにマッピングされます。データが残りのノードグループに収まらない場合、プロセスは終了し、レプリケーショングループはリクエスト前と同じノードグループ設定のままになります。

    ElastiCache API を使用して、Redis OSS (クラスターモードが有効) クラスターから 1 つ以上のシャードを削除できます。レプリケーショングループのすべてのシャードを削除することはできません。代わりに、レプリケーショングループを削除する必要があります。詳細については、「レプリケーショングループの削除」を参照してください。

    ModifyReplicationGroupShardConfiguration を使って以下のパラメータを使用します。

    パラメータ
    • ApplyImmediately=true – 必須。シャードの再構成オペレーションがすぐに開始するよう指定します。

    • ReplicationGroupId – 必須。シャードの再構成オペレーションをどのレプリケーショングループ (クラスター) で実行するかを指定します。

    • NodeGroupCount – 必須。オペレーションの完了時に存在するシャード (ノードグループ) 数を指定します。シャードを削除する場合、NodeGroupCount の値は現在のシャード数より小さくなければなりません。

    • NodeGroupsToRemove--node-group-count が現在のノードグループ (シャード) 数より少ない場合は必須です。レプリケーショングループから削除するシャード (ノードグループ) ID の一覧。

    次の手順では、1 つ以上のシャードを削除する手順を説明します。

    例 - シャードの削除

    次の例では、Redis OSS (クラスターモードが有効) クラスター から 2 つのノードグループを削除するためmy-cluster、オペレーションの完了時に合計 2 つのノードグループがあります。削除されたシャードのキースペースは、残りのシャード間で均等に分散されます。

    https://elasticache.us-east-2.amazonaws.com/ ?Action=ModifyReplicationGroupShardConfiguration &ApplyImmediately=true &NodeGroupCount=2 &ReplicationGroupId=my-cluster &NodeGroupsToRemove.member.1=0002 &NodeGroupsToRemove.member.2=0003 &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20171002T192317Z &X-Amz-Credential=<credential>

    オンラインのシャード再分散

    、、または ElastiCache API を使用して AWS Management Console AWS CLI、Redis OSS (クラスターモードが有効) クラスター内のシャードを再調整できます。

    オンラインのシャード再分散 (コンソール)

    以下のプロセスでは、 を使用してシャードを再調整することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します AWS Management Console。

    Redis OSS (クラスターモードが有効) クラスターのシャード間でキースペースを再調整するには
    1. https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

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

    3. 再調整する Redis OSS (クラスターモードが有効) クラスターの名前の左側にあるボックスではなく、名前を選択します。

      ヒント

      Redis OSS (クラスターモードが有効) クラスターのシャード列の値は 1 以上です。

    4. [再分散] を選択します。

    5. プロンプトが表示されたら、[再分散] を選択します。次のようなメッセージが表示されることがあります。レプリケーショングループのスロットは均一に分散されています。Nothing to do。(サービス: AmazonElastiCache、ステータスコード: 400、エラーコード: InvalidReplicationGroupState、リクエスト ID: 2246cebd-9721-11e7-8d5b-e1b0f086c8cf)。この場合、[キャンセル] を選択します。

    オンラインのシャード再分散 (AWS CLI)

    modify-replication-group-shard-configuration を使って以下のパラメータを使用します。

    パラメータ
    • -apply-immediately – 必須。シャードの再構成オペレーションがすぐに開始するよう指定します。

    • --replication-group-id – 必須。シャードの再構成オペレーションをどのレプリケーショングループ (クラスター) で実行するかを指定します。

    • --node-group-count – 必須。クラスター内のすべてのシャードでキースペースを再分散するため、この値は現在のシャード数と同じである必要があります。

    以下のプロセスでは、 を使用してシャードを再調整することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します AWS CLI。

    例 - クラスターのシャードの再分散

    次の例では、スロットが可能な限り均等に分散my-clusterされるように、Redis OSS (クラスターモードが有効) クラスターのスロットのバランスを調整します。--node-group-count の値 (4) は、クラスターの現在のシャード数です。

    Linux、macOS、Unix の場合:

    aws elasticache modify-replication-group-shard-configuration \ --replication-group-id my-cluster \ --node-group-count 4 \ --apply-immediately

    Windows の場合:

    aws elasticache modify-replication-group-shard-configuration ^ --replication-group-id my-cluster ^ --node-group-count 4 ^ --apply-immediately

    オンラインシャードの再調整 (ElastiCache API)

    ElastiCache API を使用して、 ModifyReplicationGroupShardConfigurationオペレーションを使用して Redis OSS (クラスターモードが有効) クラスターのシャードをオンラインで再設定できます。

    ModifyReplicationGroupShardConfiguration を使って以下のパラメータを使用します。

    パラメータ
    • ApplyImmediately=true – 必須。シャードの再構成オペレーションがすぐに開始するよう指定します。

    • ReplicationGroupId – 必須。シャードの再構成オペレーションをどのレプリケーショングループ (クラスター) で実行するかを指定します。

    • NodeGroupCount – 必須。クラスター内のすべてのシャードでキースペースを再分散するため、この値は現在のシャード数と同じである必要があります。

    以下のプロセスでは、 ElastiCache API を使用してシャードを再調整することで、Redis OSS (クラスターモードが有効) クラスター内のシャードを再設定する方法について説明します。

    例 - クラスターの再分散

    次の例では、スロットが可能な限り均等に分散my-clusterされるように、Redis OSS (クラスターモードが有効) クラスターのスロットのバランスを調整します。NodeGroupCount の値 (4) は、クラスターの現在のシャード数です。

    https://elasticache.us-east-2.amazonaws.com/ ?Action=ModifyReplicationGroupShardConfiguration &ApplyImmediately=true &NodeGroupCount=4 &ReplicationGroupId=my-cluster &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20171002T192317Z &X-Amz-Credential=<credential>