Organización de datos por niveles en ElastiCache - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Organización de datos por niveles en ElastiCache

ElastiCache en el caso de OSS los clústeres Valkey o Redis que forman un grupo de replicación y utilizan un tipo de nodo de la familia r6gd, los datos se agrupan en niveles entre la memoria y el almacenamiento local SSD (unidades de estado sólido). La organización de datos en niveles ofrece una nueva opción de relación precio-rendimiento para las OSS cargas de trabajo de Valkey o Redis, ya que utiliza unidades de estado sólido () SSDs de menor costo en cada nodo del clúster, además de almacenar los datos en la memoria. Es ideal para cargas de trabajo que acceden hasta un 20 por ciento de su conjunto de datos total de forma regular y para aplicaciones que pueden tolerar una latencia adicional al acceder a los datos. SSD

En ElastiCache los clústeres con datos agrupados en niveles, ElastiCache monitorea la hora del último acceso de cada elemento que almacena. Cuando la memoria disponible (DRAM) se agota por completo, ElastiCache utiliza un algoritmo (LRU) utilizado menos recientemente para mover automáticamente de la memoria a los elementos a los que se accede con poca frecuencia. SSD Cuando se accede posteriormente a SSD los datos, los devuelve a la memoria de ElastiCache forma automática y asíncrona antes de procesar la solicitud. Si tiene una carga de trabajo que solo accede a un subconjunto de sus datos regularmente, la organización de datos en niveles es una forma óptima de escalar su capacidad de forma rentable.

Tenga en cuenta que, al utilizar la organización de datos por niveles, las propias claves siempre permanecen en la memoria, mientras que controlan la ubicación de los LRU valores en la memoria y no en el disco. En general, recomendamos que los tamaños de las claves sean más pequeños que los tamaños de los valores al usar la organización de datos en niveles.

La organización de datos en niveles está diseñada para tener un impacto mínimo en el rendimiento de las cargas de trabajo Por ejemplo, suponiendo valores de cadena de 500 bytes, cabe esperar una latencia media adicional de 300 microsegundos para las solicitudes de datos almacenados en SSD comparación con las solicitudes de datos de la memoria.

Con el mayor tamaño de nodo de organización de datos en niveles (cache.r6gd.16xlarge), puede almacenar hasta 1 petabyte en un solo clúster de 500 nodos (500 TB cuando se utiliza 1 réplica de lectura). La organización de los datos por niveles es compatible con todos los OSS comandos y estructuras de datos de Valkey o Redis compatibles. ElastiCache No es necesario cambiar el lado del cliente para usar esta característica.

Prácticas recomendadas

Recomendamos que siga las siguientes prácticas recomendadas:

  • La organización de los datos en niveles es ideal para las cargas de trabajo que acceden hasta un 20 por ciento de su conjunto de datos con regularidad y para las aplicaciones que pueden tolerar una latencia adicional al acceder a los datos. SSD

  • Al utilizar la SSD capacidad disponible en los nodos con niveles de datos, recomendamos que el tamaño del valor sea mayor que el tamaño de la clave. Cuando los elementos se mueven entre DRAM ySSD, las claves permanecerán siempre en la memoria y solo los valores se moverán al SSD nivel.

Limitaciones

La organización de datos en niveles tiene las siguientes restricciones:

  • Solo puede utilizar la organización de datos en niveles en clústeres que forman parte de un grupo de replicación.

  • El tipo de nodo que utilice debe pertenecer a la familia r6gd, que está disponible en las siguientes regiones: 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 y sa-east-1.

  • Debe utilizar un motor que sea Valkey 7.2 o posterior, o un Redis OSS 6.2 o posterior.

  • No se puede restaurar una copia de seguridad de un clúster r6gd en otro clúster a menos que utilice también r6gd.

  • No se puede exportar una copia de seguridad a Amazon S3 para clústeres de organización de datos en niveles.

  • La migración en línea no se admite para clústeres que se ejecutan en el tipo de nodo r6gd.

  • No se admite el escalado desde un clúster de organización de datos en niveles (por ejemplo, un clúster que utiliza un tipo de nodo r6gd) a un clúster que no utiliza la organización de datos en niveles (por ejemplo, un clúster que utiliza un tipo de nodo r6g). Para obtener más información, consulte Escalado ElastiCache.

  • El escalado automático se admite en los clústeres que utilizan la organización de datos en niveles para Valkey, versión 7.2 y versiones posteriores, y RedisOSS, versión 7.0.7 y posteriores. Para obtener más información, consulte Auto Scaling de los clústeres Valkey y Redis OSS

  • La organización de datos en niveles solo admite las políticas maxmemory volatile-lru, allkeys-lru, volatile-lfu, allkeys-lfu y noeviction.

  • El almacenamiento sin formato es compatible con Valkey, versión 7.2 y posteriores, y en Redis, versión 7.0.7 y posteriores. OSS Para obtener más información, consulte Cómo se implementan la sincronización y la copia de seguridad.

  • Los elementos de más de 128 MiB no se mueven a. SSD

Precios

Los nodos R6gd tienen 4,8 veces más capacidad total (memoria +SSD) y pueden ayudarle a ahorrar más del 60 por ciento cuando se utilizan al máximo en comparación con los nodos R6g (solo memoria). Para obtener más información, consulte los precios. ElastiCache

Monitorización

ElastiCache ofrece métricas diseñadas específicamente para monitorear los clústeres de rendimiento que utilizan la organización de datos por niveles. Para monitorizar la proporción de elementos en DRAM comparación conSSD, puedes usar la CurrItems métrica de Metrics for Valkey y Redis. OSS Puedes calcular el porcentaje de la siguiente manera: (CurrItems con dimensión: nivel = memoria * 100)/(CurrItems sin filtro de dimensiones).

Si la política de desalojo configurada lo permite, ElastiCache empezará a desalojar los elementos cuando el porcentaje de elementos en la memoria disminuya por debajo del 5 por ciento. En los nodos configurados con la política de desalojo, las operaciones de escritura recibirán un error de memoria insuficiente.

Aun así, se recomienda considerar la posibilidad de escalar los clústeres habilitados en modo de clúster o ampliarlos para los clústeres deshabilitados en modo de clúster cuando el porcentaje de elementos en la memoria disminuya por debajo del 5 por ciento. Para obtener más información sobre el escalado, consulteEscalar clústeres en Valkey o Redis OSS (modo de clúster activado). Para obtener más información sobre las métricas de los OSS clústeres de Valkey o Redis que utilizan la organización de datos por niveles, consulte. Métricas para Valkey y Redis OSS

Uso de la organización de datos en niveles

Al crear un clúster como parte de un grupo de replicación, se utiliza la organización de datos en niveles seleccionando un tipo de nodo de la familia r6gd, como cache.r6gd.xlarge. La selección de ese tipo de nodo habilita automáticamente la organización de datos en niveles.

Para obtener más información sobre la creación de clústeres, consulte Crear un clúster para Valkey o Redis OSS.

Al crear un grupo de replicación mediante el AWS CLI, se utiliza la estratificación de datos seleccionando un tipo de nodo de la familia r6gd, como cache.r6gd.xlarge, y configurando el parámetro. --data-tiering-enabled

No puede excluirse de la organización de datos en niveles al seleccionar un tipo de nodo de la familia r6gd. Si configura el parámetro --no-data-tiering-enabled, la operación no se llevará a cabo correctamente.

Para Linux, macOS o 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

Después de ejecutar esta operación, verá una respuesta parecida a la siguiente:

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

Restauración de datos desde copias de seguridad en clústeres con la organización de datos en niveles

Puede restaurar una copia de seguridad en un clúster nuevo con la organización de datos en niveles habilitada mediante la (consola), () o ().AWS CLI ElastiCache API Cuando crea un clúster mediante tipos de nodos de la familia r6gd, se habilita la organización de datos en niveles.

Para restaurar una copia de seguridad a un nuevo clúster con la organización de datos en niveles habilitada (consola)
  1. Inicie sesión en AWS Management Console y abra la ElastiCache consola en https://console.aws.amazon.com/elasticache/.

  2. En el panel de navegación, seleccione Backups (Copias de seguridad).

  3. En la lista de copias de seguridad, active la casilla situada a la izquierda del nombre de la copia de seguridad que desea restaurar.

  4. Elija Restore (Restaurar).

  5. Complete el cuadro de diálogo Restore Cluster. Asegúrese de completar todos los campos Required (Obligatorios) y los demás campos cuyos valores predeterminados desee modificar.

    1. ID del clúster: obligatorio. Se trata del nombre del nuevo clúster.

    2. Modo de clúster activado (escalado horizontal): seleccione esta opción para un clúster de Valkey o Redis OSS (modo de clúster activado).

    3. Tipo de nodo: especificar cache.r6gd.xlarge o cualquier otro tipo de nodo de la familia r6gd.

    4. Número de fragmentos: elija el número de fragmentos que desee en el nuevo clúster (API/CLI: grupos de nodos).

    5. Replicas per Shard: elija el número de nodos de réplica de lectura que desea en cada fragmento.

    6. Ranuras y espacios de claves: elija cómo desea que se distribuyan las claves entre las particiones. Si decide especificar las distribuciones de claves, complete la tabla especificando los rangos de claves para cada fragmento.

    7. Availability zone(s): especifique cómo desea que se seleccionen las zonas de disponibilidad del clúster.

    8. Port: modifique este valor solo si desea que el nuevo clúster use un puerto distinto.

    9. Elija una VPC: elija la ubicación VPC en la que desea crear este clúster.

    10. Grupo de parámetros: elija un grupo de parámetros que reserve suficiente memoria para la OSS sobrecarga de Valkey o Redis para el tipo de nodo que haya seleccionado.

  6. Cuando esté conforme con los ajustes, elija Crear.

Para obtener más información sobre la creación de clústeres, consulte Crear un clúster para Valkey o Redis OSS.

Al crear un grupo de replicación mediante el AWS CLI, la organización por niveles de datos se utiliza de forma predeterminada. Para ello, se selecciona un tipo de nodo de la familia r6gd, como cache.r6gd.xlarge, y se establece el parámetro. --data-tiering-enabled

No puede excluirse de la organización de datos en niveles al seleccionar un tipo de nodo de la familia r6gd. Si configura el parámetro --no-data-tiering-enabled, la operación no se llevará a cabo correctamente.

Para Linux, macOS o 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 o 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

Después de ejecutar esta operación, verá una respuesta parecida a la siguiente:

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