Hierarquização de dados em ElastiCache - Amazon ElastiCache

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

Hierarquização de dados em ElastiCache

ElastiCache com OSS clusters Valkey ou Redis que compõem um grupo de replicação e usam um tipo de nó da família r6gd, têm seus dados em camadas entre a memória e o armazenamento local (unidades de estado sólido). SSD O armazenamento de dados em camadas fornece uma nova opção de preço-desempenho para OSS cargas de trabalho Valkey ou Redis, utilizando unidades de estado sólido (SSDs) de baixo custo em cada nó do cluster, além de armazenar dados na memória. É ideal para cargas de trabalho que acessam regularmente até 20% de seu conjunto de dados geral e para aplicativos que podem tolerar latência adicional ao acessar dados em. SSD

Em ElastiCache 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 (LRU) usado menos recentemente para mover automaticamente itens acessados com pouca frequência da memória para o. SSD Quando os dados ativados SSD são acessados posteriormente, eles ElastiCache são movidos de volta para a memória de forma 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 o armazenamento de dados em camadas, as próprias chaves sempre permanecem na memória, enquanto a chave LRU controla o posicionamento dos valores na memória versus no 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, assumindo valores de string de 500 bytes, você pode esperar 300 microssegundos adicionais de latência, em média, para solicitações de dados armazenados em SSD comparação com solicitações de dados na 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 OSS comandos e estruturas de dados do Valkey ou 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:

  • O armazenamento de dados em camadas é ideal para cargas de trabalho que acessam regularmente até 20% de seu conjunto geral de dados e para aplicativos que podem tolerar latência adicional ao acessar dados em. SSD

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

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.

  • Você deve usar um mecanismo que seja Valkey 7.2 ou posterior ou Redis OSS 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 obter mais informações, consulte Dimensionamento ElastiCache.

  • O escalonamento automático é suportado em clusters usando camadas de dados para Valkey versão 7.2 e posterior e Redis OSS versão 7.0.7 e posterior. Para ter mais informações, consulte Clusters Auto Scaling Valkey e Redis OSS

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

  • O salvamento sem bifurcação é compatível com o Valkey versão 7.2 e posterior e o Redis OSS versão 7.0.7 e posterior. Para obter 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. SSD

Definição de preço

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

Monitorar

ElastiCache oferece métricas projetadas especificamente para monitorar os clusters de desempenho que usam camadas de dados. Para monitorar a proporção de itens em DRAM comparação comSSD, você pode usar a CurrItems métrica em Metrics for Valkey e Redis OSS. Você pode calcular a porcentagem como: (CurrItems com Dimensão: Nível = Memória * 100)/(CurrItems sem filtro de dimensão).

Se a política de despejo configurada permitir, eles ElastiCache começarão a despejar itens quando a porcentagem de itens na memória diminuir abaixo de 5%. Nos nós configurados com a política de não despejo, as operações de gravação receberão um erro de falta de memória.

Ainda é recomendável que você considere a escalabilidade horizontal para clusters habilitados para o Modo Cluster ou a escalabilidade para clusters desativados do Modo Cluster quando a porcentagem de itens na memória diminuir abaixo de 5%. Para obter mais informações sobre escalabilidade, consulteDimensionamento de clusters em Valkey ou Redis OSS (modo de cluster ativado). Para obter mais informações sobre métricas para OSS clusters Valkey ou Redis que usam camadas de dados, consulte. Métricas para Valkey e Redis OSS

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 Criação de um cluster para Valkey ou Redis OSS.

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 OSS 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 OSS 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 OSS 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 o (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. Modo de cluster ativado (escala horizontal) — Escolha isso para um cluster Valkey ou Redis OSS (modo de cluster ativado).

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

    4. Número de fragmentos — Escolha o número de fragmentos que você deseja 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. Escolha um VPC — Escolha o VPC no qual criar esse cluster.

    10. Grupo de parâmetros — Escolha um grupo de parâmetros que reserve memória suficiente para a OSS sobrecarga do Valkey ou 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 Criação de um cluster para Valkey ou Redis OSS.

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 OSS 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 OSS 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 OSS 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 } }