Online-Resharding und Shard-Rebalancing für MemoryDB - Amazon MemoryDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Online-Resharding und Shard-Rebalancing für MemoryDB

Durch die Verwendung von Online-Resharding und Shard-Rebalancing mit MemoryDB können Sie Ihre MemoryDB dynamisch und ohne Ausfallzeiten skalieren. Dieser Ansatz bedeutet, dass Ihr Cluster weiterhin Anfragen bearbeiten kann, selbst wenn die Skalierung oder das Rebalancing in Bearbeitung ist.

Sie haben die folgenden Möglichkeiten:

  • Scale Out — Erhöhen Sie die Lese- und Schreibkapazität, indem Sie Ihrem MemoryDB-Cluster Shards hinzufügen.

    Wenn Sie Ihrem Cluster einen oder mehrere Shards hinzufügen, entspricht die Anzahl der Knoten in jedem neuen Shard der Anzahl der Knoten im kleinsten der vorhandenen Shards.

  • Skalieren — Reduzieren Sie die Lese- und Schreibkapazität und damit die Kosten, indem Sie Shards aus Ihrem MemoryDB-Cluster entfernen.

Derzeit gelten die folgenden Einschränkungen für MemoryDB-Online-Resharding:

  • Es gibt Einschränkungen bei Slots oder Keyspaces und großen Elementen:

    Wenn ein Schlüssel in einem Shard ein großes Element enthält, wird dieser Schlüssel beim horizontalen Skalieren oder Neuausrichten nicht in eine neue Shard migriert. Diese Funktionalität kann zu unsymmetrischen Shards führen.

    Wenn einer der Schlüssel in einer Shard ein großes Element enthält (Elemente größer als 256 MB nach der Serialisierung), wird diese Shard beim Skalieren nicht gelöscht. Diese Funktionalität kann dazu führen, dass einige Shards nicht gelöscht werden.

  • Beim Skalieren entspricht die Anzahl der Knoten in allen neuen Shards der Anzahl der Knoten in den vorhandenen Shards.

Weitere Informationen finden Sie unter Bewährte Methoden: Ändern der Cluster-Größe online.

Sie können Ihre MemoryDB-Cluster mithilfe der, der und der MemoryDB-API horizontal skalieren oder neu AWS Management Console verteilen. AWS CLI

Hinzufügen von Shards mit Online-Resharding

Sie können Ihrem MemoryDB-Cluster mithilfe der,, oder MemoryDB-API Shards hinzufügen. AWS Management Console AWS CLI

Sie können den verwenden AWS Management Console , um Ihrem MemoryDB-Cluster einen oder mehrere Shards hinzuzufügen. Das folgende Verfahren beschreibt den Prozess.

  1. Melden Sie sich bei der MemoryDB-Konsole an AWS Management Console und öffnen Sie sie unter https://console.aws.amazon.com/memorydb/.

  2. Wählen Sie aus der Clusterliste den Clusternamen aus, aus dem Sie einen Shard hinzufügen möchten.

  3. Wählen Sie auf der Registerkarte Shards and Nodes die Option Shards hinzufügen/löschen

  4. Geben Sie im Feld Neue Anzahl von Shards die gewünschte Anzahl von Shards ein.

  5. Wählen Sie Bestätigen, um die Änderungen beizubehalten, oder Abbrechen, um sie zu verwerfen.

Der folgende Prozess beschreibt, wie Sie die Shards in Ihrem MemoryDB-Cluster neu konfigurieren, indem Sie Shards mit dem hinzufügen. AWS CLI

Verwenden Sie die folgenden Parameter mit update-cluster.

Parameter
  • --cluster-name – Erforderlich. Gibt an, auf welchem Cluster (Cluster) die Shard-Rekonfigurationsoperation durchgeführt werden soll.

  • --shard-configuration – Erforderlich. Ermöglicht es Ihnen, die Anzahl der Shards festzulegen.

    • ShardCount— Legen Sie diese Eigenschaft fest, um die Anzahl der gewünschten Shards anzugeben.

Im folgenden Beispiel wird die Anzahl der Shards im Cluster my-cluster auf 2 geändert.

Für Linux, macOS oder Unix:

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

Für Windows:

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

Es gibt die folgende JSON-Antwort zurück:

{ "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 } }

Verwenden Sie den folgenden Befehl, um die Details des aktualisierten Clusters anzuzeigen, sobald sich sein Status von aktuell auf verfügbar ändert:

Für Linux, macOS oder Unix:

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

Für Windows:

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

Es wird die folgende JSON-Antwort zurückgegeben:

{ "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 } ] }

Weitere Informationen finden Sie unter update-cluster in der AWS CLI Befehlsreferenz.

Sie können die MemoryDB-API verwenden, um die Shards in Ihrem MemoryDB-Cluster online neu zu konfigurieren, indem Sie den Vorgang verwenden. UpdateCluster

Verwenden Sie die folgenden Parameter mit UpdateCluster.

Parameter
  • ClusterName – Erforderlich. Gibt an, auf welchem Cluster die Shard-Rekonfiguration durchgeführt werden soll.

  • ShardConfiguration – Erforderlich. Ermöglicht es Ihnen, die Anzahl der Shards festzulegen.

    • ShardCount— Legen Sie diese Eigenschaft fest, um die Anzahl der gewünschten Shards anzugeben.

Weitere Informationen finden Sie unter UpdateCluster.

Entfernen von Shards mit Online-Resharding

Sie können Shards mit der, oder MemoryDB-API aus Ihrem MemoryDB-Cluster entfernen. AWS Management Console AWS CLI

Der folgende Prozess beschreibt, wie Sie die Shards in Ihrem MemoryDB-Cluster neu konfigurieren, indem Sie Shards mit dem entfernen. AWS Management Console

Wichtig

Bevor Sie Shards aus Ihrem Cluster entfernen, stellt MemoryDB sicher, dass alle Ihre Daten in die verbleibenden Shards passen. Wenn die Daten passen, werden die Shards wie gewünscht aus dem Cluster gelöscht. Wenn die Daten nicht in die verbleibenden Shards passen, wird der Prozess beendet und der Cluster hat dieselbe Shard-Konfiguration wie vor der Anfrage.

Sie können den verwenden AWS Management Console , um einen oder mehrere Shards aus Ihrem MemoryDB-Cluster zu entfernen. Sie können nicht alle Shards in einem Cluster entfernen. Stattdessen müssen Sie den Cluster löschen. Weitere Informationen finden Sie unter Schritt 4: Löschen eines Clusters. Das folgende Verfahren beschreibt den Vorgang zum Entfernen eines oder mehrerer Shards.

  1. Melden Sie sich bei der MemoryDB-Konsole an AWS Management Console und öffnen Sie sie unter https://console.aws.amazon.com/memorydb/.

  2. Wählen Sie aus der Clusterliste den Clusternamen aus, aus dem Sie einen Shard entfernen möchten.

  3. Wählen Sie auf der Registerkarte Shards and Nodes die Option Shards hinzufügen/löschen

  4. Geben Sie im Feld Neue Anzahl von Shards die gewünschte Anzahl von Shards ein (mindestens 1).

  5. Wählen Sie Bestätigen, um die Änderungen beizubehalten, oder Abbrechen, um sie zu verwerfen.

Der folgende Prozess beschreibt, wie Sie die Shards in Ihrem MemoryDB-Cluster neu konfigurieren, indem Sie Shards mit dem entfernen. AWS CLI

Wichtig

Bevor Sie Shards aus Ihrem Cluster entfernen, stellt MemoryDB sicher, dass alle Ihre Daten in die verbleibenden Shards passen. Wenn die Daten passen, werden die Shards wie gewünscht aus dem Cluster gelöscht und ihre Schlüsselräume den verbleibenden Shards zugeordnet. Wenn die Daten nicht in die verbleibenden Shards passen, wird der Vorgang beendet und der Cluster hat dieselbe Shard-Konfiguration wie vor der Anfrage.

Sie können den verwenden AWS CLI , um einen oder mehrere Shards aus Ihrem MemoryDB-Cluster zu entfernen. Sie können nicht alle Shards in einem Cluster entfernen. Stattdessen müssen Sie den Cluster löschen. Weitere Informationen finden Sie unter Schritt 4: Löschen eines Clusters.

Verwenden Sie die folgenden Parameter mit update-cluster.

Parameter
  • --cluster-name – Erforderlich. Gibt an, auf welchem Cluster (Cluster) die Shard-Rekonfiguration ausgeführt werden soll.

  • --shard-configuration – Erforderlich. Ermöglicht es Ihnen, die Anzahl der Shards mithilfe der folgenden Eigenschaft festzulegen: ShardCount

    ShardCount— Legen Sie diese Eigenschaft fest, um die Anzahl der gewünschten Shards anzugeben.

Im folgenden Beispiel wird die Anzahl der Shards im Cluster my-cluster auf 2 geändert.

Für Linux, macOS oder Unix:

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

Für Windows:

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

Es gibt die folgende JSON-Antwort zurück:

{ "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 } }

Verwenden Sie den folgenden Befehl, um die Details des aktualisierten Clusters anzuzeigen, sobald sich sein Status von aktuell auf verfügbar ändert:

Für Linux, macOS oder Unix:

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

Für Windows:

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

Es wird die folgende JSON-Antwort zurückgegeben:

{ "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 } ] }

Weitere Informationen finden Sie unter update-cluster in der AWS CLI Befehlsreferenz.

Sie können die MemoryDB-API verwenden, um die Shards in Ihrem MemoryDB-Cluster online neu zu konfigurieren, indem Sie den Vorgang verwenden. UpdateCluster

Der folgende Prozess beschreibt, wie Sie die Shards in Ihrem MemoryDB-Cluster neu konfigurieren, indem Sie Shards mithilfe der MemoryDB-API entfernen.

Wichtig

Bevor Sie Shards aus Ihrem Cluster entfernen, stellt MemoryDB sicher, dass alle Ihre Daten in die verbleibenden Shards passen. Wenn die Daten passen, werden die Shards wie gewünscht aus dem Cluster gelöscht und ihre Schlüsselräume den verbleibenden Shards zugeordnet. Wenn die Daten nicht in die verbleibenden Shards passen, wird der Vorgang beendet und der Cluster hat dieselbe Shard-Konfiguration wie vor der Anfrage.

Sie können die MemoryDB-API verwenden, um einen oder mehrere Shards aus Ihrem MemoryDB-Cluster zu entfernen. Sie können nicht alle Shards in einem Cluster entfernen. Stattdessen müssen Sie den Cluster löschen. Weitere Informationen finden Sie unter Schritt 4: Löschen eines Clusters.

Verwenden Sie die folgenden Parameter mit UpdateCluster.

Parameter
  • ClusterName – Erforderlich. Gibt an, auf welchem Cluster (Cluster) die Shard-Rekonfiguration ausgeführt werden soll.

  • ShardConfiguration – Erforderlich. Ermöglicht es Ihnen, die Anzahl der Shards mithilfe der folgenden Eigenschaft festzulegen: ShardCount

    ShardCount— Legen Sie diese Eigenschaft fest, um die Anzahl der gewünschten Shards anzugeben.