Classificação de dados em níveis - Amazon ElastiCache para Redis

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á.

Classificação de dados em níveis

Os clusters que compõem um grupo de replicação e usam um tipo de nó da família r6gd têm seus dados classificados em níveis entre memória e armazenamento local em Solid State Drives (SSDs – Unidades de estado sólido). A classificação de dados em níveis fornece uma nova opção de performance de preço para workloads do Redis com SSDs de menor custo em cada nó de cluster, além do datastore na memória. Essa modalidade é ideal para workloads que acessam regularmente até 20% do conjunto de dados geral e para aplicações que podem tolerar latência adicional ao acessar dados em SSD.

Em clusters com hierarquização de dados, ElastiCache monitora o último horário de acesso de cada item que ele armazena. Quando a memória disponível (DRAM) é totalmente consumida, ElastiCache usa um algoritmo usado menos recentemente (LRU) para mover automaticamente itens acessados com pouca frequência da memória para o SSD. Quando os dados no SSD são acessados posteriormente, eles são movidos de volta para a memória de forma ElastiCache automática e assíncrona antes de processar a solicitação. Se você tiver uma workload que acessa regularmente apenas um subconjunto de dados, a classificação de dados em níveis é uma maneira ideal de dimensionar sua capacidade de modo econômico.

Observe que, ao usar a classificação por níveis, as próprias chaves sempre permanecem na memória, enquanto a LRU controla a colocação de valores na memória versus disco. Em geral, recomendamos que seus tamanhos de chave sejam menores do que seus tamanhos de valor ao usar a classificação por níveis de dados.

A classificação de dados em níveis foi projetada para causar impacto mínimo na performance das workload da aplicação. Por exemplo, presumindo valores de string de 500 bytes, você pode esperar uma média de mais 300 microssegundos de latência para solicitações de dados armazenados em SSD em comparação com solicitações de dados em memória.

Com o maior tamanho de nó de classificação de dados em níveis (cache.r6gd.16xlarge), você pode armazenar até 1 petabyte em um só cluster de 500 nós (500 TB ao usar 1 réplica de leitura). O armazenamento em camadas de dados é compatível com todos os comandos e estruturas de dados do Redis suportados no. ElastiCache Para usar esse recurso, não é necessário promover alterações no lado do cliente.

Práticas recomendadas

Recomendamos seguir estas práticas recomendadas:

  • A classificação de dados em níveis é ideal para workloads que acessam regularmente até 20% do conjunto de dados geral e para aplicações que podem tolerar latência adicional ao acessar dados em SSD.

  • Ao usar a capacidade SSD disponível em nós em níveis de dados, recomendamos que o tamanho do valor seja maior do que o tamanho da chave. Quando os itens são movidos entre DRAM e SSD, as chaves sempre permanecerão na memória e somente os valores serão movidos para a camada SSD.

Limitações

A classificação de dados em níveis tem as seguintes limitações:

  • Você só pode usar a classificação de dados em níveis em clusters que fazem parte de um grupo de replicação.

  • O tipo de nó usado deve ser da família r6gd, que está disponível nas seguintes regiões: us-east-2, us-east-1, us-west-2, us-west-1, eu-west-1, eu-central-1, eu-north-1, eu-west-3, ap-northeast-1, ap-southeast-1, ap-southeast-2, ap-south-1, ca-central-1 e sa-east-1.

  • O mecanismo deve ser o Redis 6.2 ou posterior.

  • Você não pode restaurar um backup de um cluster r6gd para outro cluster, a menos que ele também use r6gd.

  • Você não pode exportar um backup para o Amazon S3 para clusters de classificação de dados em níveis.

  • Não há compatibilidade para migração online com clusters em execução no tipo de nó r6gd.

  • Não há compatibilidade com escalabilidade de um cluster de classificação de dados em níveis (p. ex., um cluster que use um tipo de nó r6gd) para um cluster sem classificação de dados em níveis (p. ex., um cluster que use um tipo de nó r6g). Para ter mais informações, consulte Dimensionamento ElastiCache para Redis .

  • O ajuste de escala automático é compatível em clusters que usam divisão de dados em camadas para Redis versão 7.0.7 e posteriores. Para obter mais informações, consulte Auto Scaling ElastiCache para clusters Redis.

  • A divisão de dados em camadas só são compatíveis com as políticas volatile-lru, allkeys-lru, volatile-lfu, allkeys-lfu e noeviction.

  • A gravação sem bifurcação é compatível com o Redis versão 7.0.7 e posteriores. Para ter mais informações, consulte Como a sincronização e o backup são implementados.

  • Itens maiores que 128 MiB não são movidos para o SSD.

Definição de preço

Os nós R6gd têm 4,8x mais capacidade total (memória + SSD) e podem ajudar você a obter mais de 60% de economia para execução com utilização máxima em comparação aos nós R6g (somente memória). Para obter mais informações, consulte ElastiCache os preços.

Monitoramento

ElastiCache for Redis oferece métricas projetadas especificamente para monitorar os clusters de desempenho que usam camadas de dados. Para monitorar a proporção de itens na DRAM em comparação com o SSD, é possível usar a métrica de CurrItems em Métricas para Redis. Você pode calcular a porcentagem como: (CurrItems com Dimensão: Nível = Memória * 100)/(CurrItems sem filtro de dimensão). Quando a porcentagem de itens na memória diminuir para menos de 5 por cento, recomendamos que você considere aumentar a escala horizontalmente para clusters no Cluster Mode Disabled (Modo de cluster desabilitado) ou aumentar a escala verticalmente para clusters desabilitados para Modo cluster . Para mais informações, consulte Métricas para clusters Redis que usam classificação de dados em níveis em Métricas para Redis.

Como usar a classificação de dados em níveis

Ao criar um cluster como parte de um grupo de replicação, você usa a classificação de dados em níveis selecionando um tipo de nó da família r6gd, p. ex., cache.r6gd.xlarge. A seleção desse tipo de nó ativa automaticamente a classificação de dados em níveis.

Para mais informações sobre como criar um cluster, consulte Criar um cluster.

Ao criar um grupo de replicação usando o AWS CLI, você usa a classificação por níveis de dados selecionando um tipo de nó da família r6gd, como cache.r6gd.xlarge e definindo o parâmetro. --data-tiering-enabled

Você não pode optar por não usar a classificação de dados em níveis ao selecionar um tipo de nó da família r6gd. Se você configurar o parâmetro --no-data-tiering-enabled, a operação falhará.

Para Linux, macOS ou Unix:

aws elasticache create-replication-group \ --replication-group-id redis-dt-cluster \ --replication-group-description "Redis cluster with data tiering" \ --num-node-groups 1 \ --replicas-per-node-group 1 \ --cache-node-type cache.r6gd.xlarge \ --engine redis \ --cache-subnet-group-name default \ --automatic-failover-enabled \ --data-tiering-enabled

Para Windows:

aws elasticache create-replication-group ^ --replication-group-id redis-dt-cluster ^ --replication-group-description "Redis cluster with data tiering" ^ --num-node-groups 1 ^ --replicas-per-node-group 1 ^ --cache-node-type cache.r6gd.xlarge ^ --engine redis ^ --cache-subnet-group-name default ^ --automatic-failover-enabled ^ --data-tiering-enabled

Após executar essa operação, você verá uma resposta semelhante ao seguinte:

{ "ReplicationGroup": { "ReplicationGroupId": "redis-dt-cluster", "Description": "Redis cluster with data tiering", "Status": "creating", "PendingModifiedValues": {}, "MemberClusters": [ "redis-dt-cluster" ], "AutomaticFailover": "enabled", "DataTiering": "enabled", "SnapshotRetentionLimit": 0, "SnapshotWindow": "06:00-07:00", "ClusterEnabled": false, "CacheNodeType": "cache.r6gd.xlarge", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false } }

Como restaurar dados do backup para clusters com a classificação de dados em níveis ativada

Você pode restaurar um backup em um novo cluster com o armazenamento de dados em camadas ativado usando (Console), (AWS CLI) ou (ElastiCache API). Ao criar um cluster usando tipos de nós na família r6gd, a classificação de dados em níveis é ativada.

Para restaurar um backup para um novo cluster com a classificação de dados em níveis ativada (console)
  1. Faça login no AWS Management Console e abra o ElastiCache console em https://console.aws.amazon.com/elasticache/.

  2. No painel de navegação, escolha Backups.

  3. Na lista de backups, escolha a caixa à esquerda do nome do backup do qual você deseja restaurar.

  4. Escolha Restore.

  5. Preencha a caixa de diálogo Restore Cluster. Certifique-se de preencher todos os campos Obrigatórios e qualquer outro que você deseja alterar em relação aos padrões.

    1. Cluster ID (ID do cluster): obrigatório. O nome do novo cluster.

    2. Cluster mode enabled (scale out) (Modo cluster habilitado, aumento de escala na horizontal): escolha esta opção para um cluster do Redis (modo cluster habilitado).

    3. Node Type (Tipo de nó) – Especifique cache.r6gd.xlarge ou qualquer outro tipo de nó da família r6gd.

    4. Number of Shards – Escolha o número de estilhaços desejados no novo cluster (API/CLI: grupos de nós).

    5. Replicas per Shard – Escolha o número de nós de réplica de leitura desejados em cada estilhaço.

    6. Slots and keyspaces (Slots e espaços de chaves): escolha como deseja que as chaves sejam distribuídas entre os fragmentos. Se você optar por especificar as distribuições de chaves, complete a tabela especificando os intervalos de chaves para cada estilhaço.

    7. Availability zone(s) – especifique como você deseja que as zonas de disponibilidade do cluster sejam selecionadas.

    8. Port – Somente altere esse valor se quiser que o novo cluster use uma porta diferente.

    9. Choose a VPC – Escolha a VPC na qual criar esse cluster.

    10. Parameter Group – Escolha um parameter group que reserve memória suficiente para a sobrecarga do Redis para o tipo de nó selecionado.

  6. Quando estiver satisfeito com as configurações, escolha Create (Criar).

Para mais informações sobre como criar um cluster, consulte Criar um cluster.

Ao criar um grupo de replicação usando o AWS CLI, o armazenamento em camadas de dados é usado por padrão selecionando um tipo de nó da família r6gd, como cache.r6gd.xlarge e definindo o parâmetro. --data-tiering-enabled

Você não pode optar por não usar a classificação de dados em níveis ao selecionar um tipo de nó da família r6gd. Se você configurar o parâmetro --no-data-tiering-enabled, a operação falhará.

Para Linux, macOS ou Unix:

aws elasticache create-replication-group \ --replication-group-id redis-dt-cluster \ --replication-group-description "Redis cluster with data tiering" \ --num-node-groups 1 \ --replicas-per-node-group 1 \ --cache-node-type cache.r6gd.xlarge \ --engine redis \ --cache-subnet-group-name default \ --automatic-failover-enabled \ --data-tiering-enabled \ --snapshot-name my-snapshot

Para Linux, macOS ou Unix:

aws elasticache create-replication-group ^ --replication-group-id redis-dt-cluster ^ --replication-group-description "Redis cluster with data tiering" ^ --num-node-groups 1 ^ --replicas-per-node-group 1 ^ --cache-node-type cache.r6gd.xlarge ^ --engine redis ^ --cache-subnet-group-name default ^ --automatic-failover-enabled ^ --data-tiering-enabled ^ --snapshot-name my-snapshot

Após executar essa operação, você verá uma resposta semelhante ao seguinte:

{ "ReplicationGroup": { "ReplicationGroupId": "redis-dt-cluster", "Description": "Redis cluster with data tiering", "Status": "creating", "PendingModifiedValues": {}, "MemberClusters": [ "redis-dt-cluster" ], "AutomaticFailover": "enabled", "DataTiering": "enabled", "SnapshotRetentionLimit": 0, "SnapshotWindow": "06:00-07:00", "ClusterEnabled": false, "CacheNodeType": "cache.r6gd.xlarge", "TransitEncryptionEnabled": false, "AtRestEncryptionEnabled": false } }