MemoryDB のオンライン再シャーディング - Amazon MemoryDB

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

MemoryDB のオンライン再シャーディング

オンラインリシャーディング と MemoryDB を使用して、MemoryDB をダウンタイムなしで動的にスケーリングできます。このアプローチでは、クラスターはスケーリングや再分散が処理中でもリクエストに対応し続けることができます。

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

  • スケールアウト — MemoryDB クラスターにシャードを追加して、読み取りと書き込みの容量を増やします。

    クラスターに 1 つ以上のシャードを追加する場合、新しい各シャードのノード数は既存の最小のシャードのノード数と同じになります。

  • スケールイン読み込みおよび書き込みキャパシティーを減らして、MemoryDB クラスターからシャードを削除することでコストを削減します。

現在、MemoryDB のオンラインリシャーディングには、次の制限が適用されます。

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

    シャード内のキーのいずれかに大きな項目が含まれている場合、そのキーは をスケールアウトするときに新しいシャードに移行されません。この機能により、アンバランスなシャードになる可能性があります。

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

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

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

MemoryDB クラスターは、 AWS Management Console、、 AWS CLIおよび MemoryDB を使用して水平方向にスケールできますAPI。

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

AWS Management Console、、または MemoryDB を使用して AWS CLI、MemoryDB クラスターにシャードを追加できますAPI。

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

  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. クラスターの一覧から、シャードを追加するクラスターの名前を選択します。

  3. [シャードとノード] タブで、[シャードの追加/削除] を選択します

  4. [新しいシャード数] に、必要なシャードの数を入力します。

  5. [確認] を選択して変更を保存するか、[キャンセル] を選択して破棄します。

以下のプロセスでは、 AWS CLIを使用してシャードを追加し、MemoryDB クラスターでシャードの再構成を行う方法について説明します。

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

パラメータ
  • --cluster-name – 必須。シャードの再構成オペレーションを実行するクラスター (クラスター) を指定します。

  • --shard-configuration – 必須。シャードの数を設定できます。

    • ShardCount – このプロパティを設定して、必要なシャードの数を指定します。

次の例では、my-cluster クラスター内のシャードの数を 2 に変更しています。

Linux、macOS、Unix の場合:

aws memorydb update-cluster \ --cluster-name my-cluster \ --shard-configuration \ ShardCount=2

Windows の場合:

aws memorydb update-cluster ^ --cluster-name my-cluster ^ --shard-configuration ^ ShardCount=2

次のJSONレスポンスが返されます。

{ "Cluster": { "Name": "my-cluster", "Status": "updating", "NumberOfShards": 2, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 }, "NodeType": "db.r6g.large", "EngineVersion": "6.2", "EnginePatchVersion": "6.2.6", "ParameterGroupName": "default.memorydb-redis6", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "DataTiering": "false", "AutoMinorVersionUpgrade": true } }

クラスターのステータスが更新中から利用可能に変わったら、更新されたクラスターの詳細を表示するには、次のコマンドを使用します:

Linux、macOS、Unix の場合:

aws memorydb describe-clusters \ --cluster-name my-cluster --show-shard-details

Windows の場合:

aws memorydb describe-clusters ^ --cluster-name my-cluster --show-shard-details

次のJSONレスポンスが返されます。

{ "Clusters": [ { "Name": "my-cluster", "Status": "available", "NumberOfShards": 2, "Shards": [ { "Name": "0001", "Status": "available", "Slots": "0-8191", "Nodes": [ { "Name": "my-cluster-0001-001", "Status": "available", "AvailabilityZone": "us-east-1a", "CreateTime": "2021-08-21T20:22:12.405000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } }, { "Name": "my-cluster-0001-002", "Status": "available", "AvailabilityZone": "us-east-1b", "CreateTime": "2021-08-21T20:22:12.405000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } } ], "NumberOfNodes": 2 }, { "Name": "0002", "Status": "available", "Slots": "8192-16383", "Nodes": [ { "Name": "my-cluster-0002-001", "Status": "available", "AvailabilityZone": "us-east-1b", "CreateTime": "2021-08-22T14:26:18.693000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } }, { "Name": "my-cluster-0002-002", "Status": "available", "AvailabilityZone": "us-east-1a", "CreateTime": "2021-08-22T14:26:18.765000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } } ], "NumberOfNodes": 2 } ], "ClusterEndpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 }, "NodeType": "db.r6g.large", "EngineVersion": "6.2", "EnginePatchVersion": "6.2.6", "ParameterGroupName": "default.memorydb-redis6", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering": "false", "AutoMinorVersionUpgrade": true } ] }

詳細については、 AWS CLI コマンドリファレンスの update-cluster を参照してください。

MemoryDB を使用して、 UpdateClusterオペレーションを使用して MemoryDB クラスター内のシャードをオンラインでAPI再設定できます。

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

パラメータ
  • ClusterName – 必須。シャードの再構成オペレーションを実行するクラスターを指定します。

  • ShardConfiguration – 必須。シャードの数を設定できます。

    • ShardCount – このプロパティを設定して、必要なシャードの数を指定します。

詳細については、「」を参照してくださいUpdateCluster

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

AWS Management Console、、または MemoryDB を使用して AWS CLI、MemoryDB クラスターからシャードを削除できますAPI。

以下のプロセスでは、 AWS Management Consoleを使用してシャードを削除し、MemoryDB クラスターでシャードの再構成を行う方法について説明します。

重要

クラスターからシャードを削除する前に、MemoryDB はすべてのデータが残りのシャードに収まるようにします。データが収まる場合、シャードは要求に応じてクラスターから削除されます。データが残りのシャードに収まらない場合、プロセスは終了し、クラスターはリクエスト前と同じシャード設定のままになります。

を使用して AWS Management Console 、MemoryDB クラスターから 1 つ以上のシャードを削除できます。クラスター内のシャードをすべて削除することはできません。代わりに、クラスターを削除する必要があります。詳細については、「ステップ 5: クラスターを削除する」を参照してください。次の手順では、1 つ以上のシャードを削除する手順を説明します。

  1. にサインイン AWS Management Console し、 で MemoryDB コンソールを開きますhttps://console.aws.amazon.com/memorydb/

  2. クラスターの一覧から、シャードを削除するクラスターの名前を選択します。

  3. [シャードとノード] タブで、[シャードの追加/削除] を選択します

  4. [新しいシャード数] に、必要なシャードの数を入力します (最低 1 つ)。

  5. [確認] を選択して変更を保存するか、[キャンセル] を選択して破棄します。

以下のプロセスでは、 AWS CLIを使用してシャードを削除し、MemoryDB クラスターでシャードの再構成を行う方法について説明します。

重要

クラスターからシャードを削除する前に、MemoryDB はすべてのデータが残りのシャードに収まるようにします。データが収まる場合、指定されたシャードはリクエストに応じてクラスターから削除され、キースペースは残りのシャードにマッピングされます。データが残りのシャードに収まらない場合、プロセスは終了し、クラスターはリクエスト前と同じシャード設定のままになります。

を使用して AWS CLI 、MemoryDB クラスターから 1 つ以上のシャードを削除できます。クラスター内のシャードをすべて削除することはできません。代わりに、クラスターを削除する必要があります。詳細については、「ステップ 5: クラスターを削除する」を参照してください。

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

パラメータ
  • --cluster-name – 必須。シャードの再構成オペレーションを実行するクラスター (クラスター) を指定します。

  • --shard-configuration – 必須。ShardCount プロパティを使用してシャードの数を設定できます。

    ShardCount – このプロパティを設定して、必要なシャードの数を指定します。

次の例では、my-cluster クラスター内のシャードの数を 2 に変更しています。

Linux、macOS、Unix の場合:

aws memorydb update-cluster \ --cluster-name my-cluster \ --shard-configuration \ ShardCount=2

Windows の場合:

aws memorydb update-cluster ^ --cluster-name my-cluster ^ --shard-configuration ^ ShardCount=2

次のJSONレスポンスが返されます。

{ "Cluster": { "Name": "my-cluster", "Status": "updating", "NumberOfShards": 2, "AvailabilityMode": "MultiAZ", "ClusterEndpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 }, "NodeType": "db.r6g.large", "EngineVersion": "6.2", "EnginePatchVersion": "6.2.6", "ParameterGroupName": "default.memorydb-redis6", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "DataTiering": "false", "AutoMinorVersionUpgrade": true } }

クラスターのステータスが更新中から利用可能に変わったら、更新されたクラスターの詳細を表示するには、次のコマンドを使用します:

Linux、macOS、Unix の場合:

aws memorydb describe-clusters \ --cluster-name my-cluster --show-shard-details

Windows の場合:

aws memorydb describe-clusters ^ --cluster-name my-cluster --show-shard-details

次のJSONレスポンスが返されます。

{ "Clusters": [ { "Name": "my-cluster", "Status": "available", "NumberOfShards": 2, "Shards": [ { "Name": "0001", "Status": "available", "Slots": "0-8191", "Nodes": [ { "Name": "my-cluster-0001-001", "Status": "available", "AvailabilityZone": "us-east-1a", "CreateTime": "2021-08-21T20:22:12.405000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } }, { "Name": "my-cluster-0001-002", "Status": "available", "AvailabilityZone": "us-east-1b", "CreateTime": "2021-08-21T20:22:12.405000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } } ], "NumberOfNodes": 2 }, { "Name": "0002", "Status": "available", "Slots": "8192-16383", "Nodes": [ { "Name": "my-cluster-0002-001", "Status": "available", "AvailabilityZone": "us-east-1b", "CreateTime": "2021-08-22T14:26:18.693000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } }, { "Name": "my-cluster-0002-002", "Status": "available", "AvailabilityZone": "us-east-1a", "CreateTime": "2021-08-22T14:26:18.765000-07:00", "Endpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 } } ], "NumberOfNodes": 2 } ], "ClusterEndpoint": { "Address": "clustercfg.my-cluster.xxxxxx.memorydb.us-east-1.amazonaws.com", "Port": 6379 }, "NodeType": "db.r6g.large", "EngineVersion": "6.2", "EnginePatchVersion": "6.2.6", "ParameterGroupName": "default.memorydb-redis6", "ParameterGroupStatus": "in-sync", "SubnetGroupName": "my-sg", "TLSEnabled": true, "ARN": "arn:aws:memorydb:us-east-1:xxxxxxexamplearn:cluster/my-cluster", "SnapshotRetentionLimit": 0, "MaintenanceWindow": "wed:03:00-wed:04:00", "SnapshotWindow": "04:30-05:30", "ACLName": "my-acl", "DataTiering": "false", "AutoMinorVersionUpgrade": true } ] }

詳細については、 AWS CLI コマンドリファレンスの update-cluster を参照してください。

MemoryDB を使用して、 UpdateClusterオペレーションを使用して MemoryDB クラスター内のシャードをオンラインでAPI再設定できます。

以下のプロセスでは、MemoryDB クラスター内のシャードを、MemoryDB を使用してシャードを削除して再設定する方法について説明しますAPI。

重要

クラスターからシャードを削除する前に、MemoryDB はすべてのデータが残りのシャードに収まるようにします。データが収まる場合、指定されたシャードはリクエストに応じてクラスターから削除され、キースペースは残りのシャードにマッピングされます。データが残りのシャードに収まらない場合、プロセスは終了し、クラスターはリクエスト前と同じシャード設定のままになります。

MemoryDB を使用してAPI、MemoryDB クラスターから 1 つ以上のシャードを削除できます。クラスター内のシャードをすべて削除することはできません。代わりに、クラスターを削除する必要があります。詳細については、「ステップ 5: クラスターを削除する」を参照してください。

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

パラメータ
  • ClusterName – 必須。シャードの再構成オペレーションを実行するクラスター (クラスター) を指定します。

  • ShardConfiguration – 必須。ShardCount プロパティを使用してシャードの数を設定できます。

    ShardCount – このプロパティを設定して、必要なシャードの数を指定します。