Refragmentação online e rebalanceamento de fragmentos do MemoryDB - Amazon MemoryDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Refragmentação online e rebalanceamento de fragmentos do MemoryDB

Ao optar pela refragmentação e rebalanceamento de fragmentos online com o MemoryDB, você pode escalar seu MemoryDB de forma dinâmica sem tempo de inatividade. Essa abordagem significa que seu cluster pode continuar atendendo a solicitações mesmo durante a escalabilidade ou o rebalanceamento.

Você pode fazer o seguinte:

  • Aumentar a escala horizontalmente: aumente a capacidade de leitura e gravação adicionando fragmentos ao seu cluster do MemoryDB.

    Se você adicionar um ou mais fragmentos ao cluster, o número de nós em cada novo fragmento será o mesmo que o número de nós no menor dos fragmentos existentes.

  • Reduzir a escala horizontalmente: reduza a capacidade de leitura e gravação e, por conseguinte, os custos, removendo fragmentos do cluster do MemoryDB.

Atualmente, as seguintes limitações se aplicam à refragmentação online do MemoryDB:

  • Há limitações em relação a slots ou espaços de chave e itens grandes:

    Se qualquer uma das chaves em um fragmento contiver um item grande, essa chave não será migrada para um novo fragmento durante o aumento da escala ou o rebalanceamento. Essa funcionalidade pode resultar em fragmentos desbalanceados.

    Se qualquer uma das chaves em um fragmento contiver um item grande (itens maiores do que 256 MB após a serialização), o fragmento não será excluído na redução da escala. Essa funcionalidade pode resultar na não exclusão de alguns fragmentos.

  • Ao aumentar a escala horizontalmente, o número de nós em novos fragmentos fica igual ao número de nós nos fragmentos existentes.

Para ter mais informações, consulte Práticas recomendadas: redimensionamento online de clusters.

Você pode escalar horizontalmente ou rebalancear seu cluster do MemoryDB usando o AWS Management Console, a AWS CLI e a API do MemoryDB.

Adição de fragmentos com refragmentação online

Você pode adicionar fragmentos ao seu cluster MemoryDB usando a API AWS Management Console AWS CLI, ou MemoryDB.

Você pode usar o AWS Management Console para adicionar um ou mais fragmentos ao seu cluster MemoryDB. O procedimento a seguir descreve o processo.

  1. Faça login AWS Management Console e abra o console do MemoryDB em https://console.aws.amazon.com/memorydb/.

  2. Na lista de clusters, escolha o nome do cluster a partir do qual você deseja adicionar um fragmento.

  3. Na guia Fragmentos e nós, escolha Adicionar/Excluir fragmentos

  4. Em Novo número de fragmentos, insira o número de fragmentos que você deseja.

  5. Escolha Confirmar para manter as alterações ou Cancelar para descartá-las.

O processo a seguir descreve como reconfigurar os fragmentos no seu cluster do MemoryDB adicionando fragmentos com a AWS CLI.

Use os parâmetros a seguir com update-cluster.

Parâmetros
  • --cluster-name – obrigatório. Especifica em qual cluster a operação de reconfiguração de fragmento será executada.

  • --shard-configuration – obrigatório. Permite que você defina o número de fragmentos.

    • ShardCount: defina essa propriedade para especificar o número de fragmentos que você deseja.

O exemplo a seguir modifica o número de fragmentos no cluster my-cluster para 2.

Para Linux, macOS ou Unix:

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

Para Windows:

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

Retorna a seguinte resposta em 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 } }

Para visualizar os detalhes do cluster atualizado quando seu status mudar de Atualizado para Disponível, use o seguinte comando:

Para Linux, macOS ou Unix:

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

Para Windows:

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

Retorna a seguinte resposta em 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 } ] }

Para obter mais informações, consulte update-cluster na Referência de AWS CLI comandos.

Você pode usar a API do MemoryDB para reconfigurar os fragmentos no cluster do MemoryDB online usando a operação UpdateCluster.

Use os parâmetros a seguir com UpdateCluster.

Parâmetros
  • ClusterName – obrigatório. Especifica em qual cluster a operação de reconfiguração de fragmento será executada.

  • ShardConfiguration – obrigatório. Permite que você defina o número de fragmentos.

    • ShardCount: defina essa propriedade para especificar o número de fragmentos que você deseja.

Para obter mais informações, consulte UpdateCluster.

Remoção de fragmentos com refragmentação online

Você pode remover fragmentos do seu cluster MemoryDB usando a API AWS Management Console AWS CLI, ou MemoryDB.

O processo a seguir descreve como reconfigurar os fragmentos em seu cluster do MemoryDB removendo os fragmentos usando o AWS Management Console.

Importante

Antes de remover os fragmentos do seu cluster, o MemoryDB verifica se todos os seus dados cabem nos demais fragmentos. Se os dados couberem, os fragmentos serão excluídos do cluster como solicitado. Se os dados não couberem nos fragmentos restantes, o processo será encerrado e o cluster será deixado com a mesma configuração do fragmento anterior à solicitação.

Você pode usar o AWS Management Console para remover um ou mais fragmentos do seu cluster MemoryDB. Não é possível remover todos os fragmentos de um cluster. Em vez disso, você deve excluir o cluster. Para ter mais informações, consulte Etapa 4: excluir um cluster. O procedimento a seguir descreve o processo para remover um ou mais fragmentos.

  1. Faça login AWS Management Console e abra o console do MemoryDB em https://console.aws.amazon.com/memorydb/.

  2. Na lista de clusters, escolha o nome do cluster do qual você deseja remover um fragmento.

  3. Na guia Fragmentos e nós, escolha Adicionar/Excluir fragmentos

  4. Em Novo número de fragmentos, insira o número de fragmentos que você deseja (com um mínimo de 1).

  5. Escolha Confirmar para manter as alterações ou Cancelar para descartá-las.

O processo a seguir descreve como reconfigurar os fragmentos em seu cluster do MemoryDB removendo os fragmentos usando o AWS CLI.

Importante

Antes de remover os fragmentos do seu cluster, o MemoryDB verifica se todos os seus dados cabem nos demais fragmentos. Se os dados couberem, os fragmentos serão excluídos do cluster como solicitado e seus espaços de chave serão mapeados para os fragmentos restantes. Se os dados não couberem nos fragmentos restantes, o processo será encerrado e o cluster permanecerá com a mesma configuração de fragmentos anterior à solicitação.

Você pode usar o AWS CLI para remover um ou mais fragmentos do seu cluster MemoryDB. Não é possível remover todos os fragmentos de um cluster. Em vez disso, você deve excluir o cluster. Para ter mais informações, consulte Etapa 4: excluir um cluster.

Use os parâmetros a seguir com update-cluster.

Parâmetros
  • --cluster-name – obrigatório. Especifica em qual cluster a operação de reconfiguração de fragmento será executada.

  • --shard-configuration – obrigatório. Permite que você defina o número de fragmentos usando a propriedade ShardCount:

    ShardCount: defina essa propriedade para especificar o número de fragmentos que você deseja.

O exemplo a seguir modifica o número de fragmentos no cluster my-cluster para 2.

Para Linux, macOS ou Unix:

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

Para Windows:

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

Retorna a seguinte resposta em 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 } }

Para visualizar os detalhes do cluster atualizado quando seu status mudar de Atualizado para Disponível, use o seguinte comando:

Para Linux, macOS ou Unix:

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

Para Windows:

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

Retorna a seguinte resposta em 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 } ] }

Para obter mais informações, consulte update-cluster na Referência de AWS CLI comandos.

Você pode usar a API do MemoryDB para reconfigurar os fragmentos no cluster do MemoryDB online usando a operação UpdateCluster.

O processo a seguir descreve como reconfigurar os fragmentos em seu cluster do MemoryDB removendo fragmentos usando a API do MemoryDB.

Importante

Antes de remover fragmentos do seu cluster, o MemoryDB verifica se todos os seus dados cabem nos demais fragmentos. Se os dados couberem, os fragmentos serão excluídos do cluster como solicitado e seus espaços de chave serão mapeados para os fragmentos restantes. Se os dados não couberem nos fragmentos restantes, o processo será encerrado e o cluster permanecerá com a mesma configuração de fragmentos anterior à solicitação.

Você pode usar a API do MemoryDB para remover um ou mais fragmentos de seu cluster do MemoryDB. Não é possível remover todos os fragmentos de um cluster. Em vez disso, você deve excluir o cluster. Para ter mais informações, consulte Etapa 4: excluir um cluster.

Use os parâmetros a seguir com UpdateCluster.

Parâmetros
  • ClusterName – obrigatório. Especifica em qual cluster a operação de reconfiguração de fragmento será executada.

  • ShardConfiguration – obrigatório. Permite que você defina o número de fragmentos usando a propriedade ShardCount:

    ShardCount: defina essa propriedade para especificar o número de fragmentos que você deseja.