View a markdown version of this page

Daten-Tiering ElastiCache - Amazon ElastiCache

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.

Daten-Tiering ElastiCache

ElastiCache Bei Valkey- oder Redis OSS-Clustern, die aus einer Replikationsgruppe bestehen und einen Knotentyp aus der r6gd-Familie verwenden, werden die Daten zwischen Arbeitsspeicher und lokalem SSD-Speicher (Solid State Drives) aufgeteilt. Data Tiering bietet eine neue Preis-/Leistungsoption für Valkey- oder Redis OSS-Workloads, da in jedem Clusterknoten zusätzlich zur Speicherung der Daten im Arbeitsspeicher kostengünstigere Solid-State-Laufwerke (SSDs) verwendet werden. Diese Option ist ideal für Workloads, die regelmäßig auf bis zu 20 Prozent ihres gesamten Datensatzes zugreifen, und für Anwendungen, die beim Zugriff auf Daten auf SSD zusätzliche Latenz tolerieren können.

ElastiCache Überwacht bei ElastiCache Clustern mit Daten-Tiering den Zeitpunkt des letzten Zugriffs auf jedes gespeicherte Objekt. Wenn der verfügbare Speicher (DRAM) vollständig verbraucht ist, ElastiCache verwendet es einen LRU-Algorithmus (Least-Recently Used), um Elemente, auf die selten zugegriffen wird, automatisch vom Speicher auf die SSD zu verschieben. Wenn anschließend auf Daten auf der SSD zugegriffen wird, werden diese ElastiCache automatisch und asynchron zurück in den Speicher verschoben, bevor die Anforderung verarbeitet wird. Wenn Sie eine Workload haben, die regelmäßig nur auf eine Teilmenge ihrer Daten zugreift, ist Daten-Tiering eine optimale Möglichkeit, Ihre Kapazität kostengünstig zu skalieren.

Beachten Sie, dass bei der Verwendung von Daten-Tiering die Schlüssel selbst immer im Speicher verbleiben, während die LRU die Platzierung von Werten in dem Speicher im Vergleich zur Festplatte regelt. Im Allgemeinen empfehlen wir, dass Ihre Schlüsselgrößen kleiner als Ihre Wertgrößen sind, wenn Sie Daten-Tiering verwenden.

Das Daten-Tiering ist so konzipiert, dass es minimale Auswirkungen auf die Leistung von Anwendungs-Workloads hat. Bei Annahme von 500-Byte-String-Werten können Sie beispielsweise durchschnittlich zusätzliche 300 Mikrosekunden Latenzzeit für Anforderungen an auf SSD gespeicherte Daten im Vergleich zu Anforderungen an Daten im Speicher erwarten.

Mit der größten Daten-Tiering-Knotengröße (cache.r6gd.16xlarge) können Sie bis zu 1 Petabyte Daten in einem einzigen Cluster mit 500 Knoten speichern (500 TB bei Verwendung von 1 Lesereplikat). Das Daten-Tiering ist mit allen Valkey- oder Redis-OSS-Befehlen und Datenstrukturen kompatibel, die in unterstützt werden. ElastiCache Um diese Funktion nutzen zu können, sind keine clientseitigen Änderungen erforderlich.

Bewährte Methoden

Wir empfehlen Ihnen, die folgenden bewährten Methoden:

  • Daten-Tiering ist ideal für Workloads, die regelmäßig auf bis zu 20 Prozent ihres gesamten Datensatzes zugreifen, und für Anwendungen, die beim Zugriff auf Daten auf SSD zusätzliche Latenz tolerieren können.

  • Bei Verwendung von SSD-Kapazität, die auf Daten-Tiering-Knoten verfügbar ist, empfehlen wir, dass die Wertgröße größer als die Schlüsselgröße ist. Wenn Elemente zwischen DRAM und SSD verschoben werden, bleiben die Schlüssel immer im Speicher und nur die Werte werden in die SSD-Ebene verschoben.

Einschränkungen

Für Daten-Tiering gelten die folgenden Beschränkungen:

  • Sie können Daten-Tiering nur für Cluster verwenden, die Teil einer Replikationsgruppe sind.

  • Der von Ihnen verwendete Knotentyp muss aus der r6gd-Familie stammen.

  • Sie müssen eine Engine verwenden, die Valkey 7.2 oder höher oder Redis OSS 6.2 oder höher ist.

  • Sie können ein Backup eines R6gd-Clusters nur dann in einem anderen Cluster wiederherstellen, wenn dieses ebenfalls R6gd verwendet.

  • Backups für Cluster mit Daten-Tiering können nicht nach Amazon S3 exportiert werden.

  • Die Online-Migration wird für Cluster mit R6gd-Knotentyp nicht unterstützt.

  • Die Skalierung zwischen Clustern mit aktiviertem und deaktiviertem Daten-Tiering wird nicht unterstützt. Um Daten von einem ElastiCache Cluster mit deaktivierter Datenklassifizierung zu einem Cluster mit aktivierter Datenklassifizierung zu migrieren, können Sie eine Sicherung auf einem neuen Cluster mit aktivierter Datenklassifizierung wiederherstellen. Weitere Informationen finden Sie unter Skalierung ElastiCache.

  • Auto Scaling wird auf Clustern unterstützt, die Daten-Tiering für Valkey Version 7.2 und höher sowie Redis OSS Version 7.0.7 und höher verwenden. Weitere Informationen finden Sie unter Auto Scaling von Valkey- und Redis OSS-Clustern.

  • Daten-Tiering unterstützt nur die maxmemory-Richtlinien volatile-lru, allkeys-lru, volatile-lfu, allkeys-lfu und noeviction.

  • Forkless Save wird für Valkey Version 7.2 und höher sowie Redis OSS Version 7.0.7 und höher unterstützt.

  • Elemente, die größer als 128 MiB sind, werden nicht auf SSD verschoben.

  • Ab Valley 8.1 und höher wird ein Element, dessen Schlüssel- und Wertegröße weniger als 40 Byte beträgt, nicht auf die SSD verschoben.

  • Daten-Tiering wird bei Clustern mit aktivierter Haltbarkeit nicht unterstützt.

Preisgestaltung

R6gd-Knoten haben eine 4,8-mal höhere Gesamtkapazität (Speicher + SSD). Bei maximaler Auslastung können Sie durch ihren Einsatz Einsparungen von über 60 Prozent im Vergleich zu R6g-Knoten (nur Speicher) erzielen. Weitere Informationen finden Sie unter ElastiCache Preise.

Überwachen

ElastiCache bietet Metriken, die speziell für die Überwachung der Leistungscluster entwickelt wurden, die Daten-Tiering verwenden. Um das Verhältnis der Elemente im DRAM im Vergleich zu SSD-Elementen zu überwachen, können Sie die CurrItems Metrik unter Metrics for Valkey und Redis OSS verwenden. Sie können den Prozentsatz wie folgt berechnen: (CurrItems mit Dimension: Tier = Memory * 100)/(ohne CurrItems Dimensionsfilter).

Wenn die konfigurierte Räumungsrichtlinie dies zulässt, ElastiCache beginnt das Löschen von Objekten, wenn weniger als 5 Prozent des verfügbaren Speichers (DRAM) übrig sind. Auf Knoten, für die keine Räumungsrichtlinie konfiguriert ist, wird bei Schreibvorgängen die Fehlermeldung „Nicht genügend Arbeitsspeicher“ gemeldet.

Es wird dennoch empfohlen, eine Skalierung für Cluster mit aktiviertem Clustermodus oder eine Hochskalierung für Cluster mit deaktiviertem Clustermodus in Betracht zu ziehen, wenn weniger als 5 Prozent des verfügbaren Speichers (DRAM) übrig sind. Weitere Informationen zur Skalierung finden Sie unterSkalieren von Valkey- oder Redis OSS-Clustern (Clustermodus aktiviert). Weitere Informationen zu Metriken für Valkey- oder Redis OSS-Cluster, die Daten-Tiering verwenden, finden Sie unter. Metriken für Valkey und Redis OSS

Verwenden von Daten-Tiering

Wenn Sie einen Cluster als Teil einer Replikationsgruppe erstellen, verwenden Sie Daten-Tiering, indem Sie einen Knotentyp aus der R6gd-Familie auswählen, z. B. cache.r6gd.xlarge. Bei Auswahl dieses Knotentyps wird das Daten-Tiering automatisch aktiviert.

Weitere Informationen zum Erstellen von Clustern finden Sie unter Einen Cluster für Valkey oder Redis OSS erstellen.

Wenn Sie eine Replikationsgruppe mit der erstellen AWS CLI, verwenden Sie die Datenklassifizierung, indem Sie einen Knotentyp aus der r6gd-Familie auswählen, z. B. cache.r6gd.xlarge, und den Parameter festlegen. --data-tiering-enabled

Sie können sich das Daten-Tiering nicht abwählen, wenn Sie einen Knotentyp aus der R6gd-Familie auswählen. Wenn Sie den Parameter --no-data-tiering-enabled festlegen, schlägt die Operation fehl.

Für Linux, macOS oder 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

Für 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

Nach dem Ausführen dieses Vorgangs sehen Sie eine Antwort ähnlich dem folgenden:

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

Wiederherstellen von Daten aus einem Backup in Cluster mit aktiviertem Daten-Tiering

Mithilfe der (Console), () oder (API) können Sie ein Backup auf einem neuen Cluster mit aktiviertem Daten-Tiering wiederherstellen.AWS CLI ElastiCache Wenn Sie einen Cluster mit Knotentypen in der R6gd-Familie erstellen, ist Daten-Tiering aktiviert.

So stellen Sie ein Backup in einem neuen Cluster mit aktiviertem Daten-Tiering wieder her (Konsole)
  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die ElastiCache Konsole unter https://console.aws.amazon.com/elasticache/.

  2. Wählen Sie im Navigationsbereich Backups aus.

  3. Aktivieren Sie in der Liste der Sicherungen das Kontrollkästchen links neben dem Namen der Sicherung, aus der Sie wiederherstellen möchten.

  4. Wählen Sie Restore (Wiederherstellen) aus.

  5. Füllen Sie das Dialogfeld Restore Cluster aus. Füllen Sie unbedingt alle Pflichtfelder aus sowie alle anderen, deren Standardeinstellungen Sie ändern möchten.

    1. Cluster-ID – Erforderlich. Der Name des neuen Clusters.

    2. Clustermodus aktiviert (Scale-Out) — Wählen Sie diese Option für einen Valkey- oder Redis OSS-Cluster (Clustermodus aktiviert).

    3. Node Type (Knotentyp) – Geben Sie cache.r6gd.xlarge oder einen anderen Knotentyp aus der R6gd-Familie an.

    4. Anzahl der Shards — Wählen Sie die Anzahl der Shards aus, die Sie im neuen Cluster haben möchten (API/CLI: Knotengruppen).

    5. Replicas pro Shard – Wählen Sie die Anzahl der Lesereplikat-Knoten aus, die sich in jedem Shard befinden sollen.

    6. Slots und Keyspaces – Wählen Sie aus, wie die Schlüssel auf die Shards verteilt werden sollen. Wenn Sie die Schlüsselverteilungen angeben möchten, füllen Sie die Tabelle mit den Schlüsselbereichen für jeden Shard aus.

    7. Availability zone(s) – Geben Sie an, wie die Availability Zones des Clusters ausgewählt werden sollen.

    8. Port – Ändern Sie diese Einstellung nur, wenn der neue Cluster einen anderen Port verwenden soll.

    9. VPC auswählen – Wählen Sie die VPC aus, in der dieser Cluster erstellt werden soll.

    10. Parametergruppe — Wählen Sie eine Parametergruppe, die ausreichend Speicher für den Valkey- oder Redis-OSS-Overhead für den ausgewählten Knotentyp reserviert.

  6. Wenn Sie die gewünschten Einstellungen vorgenommen haben, wählen Sie Erstellen.

Weitere Informationen zum Erstellen von Clustern finden Sie unter Einen Cluster für Valkey oder Redis OSS erstellen.

Beim Erstellen einer Replikationsgruppe mit der wird standardmäßig Daten-Tiering verwendet AWS CLI, indem ein Knotentyp aus der r6gd-Familie ausgewählt wird, z. B. cache.r6gd.xlarge, und der Parameter festgelegt wird. --data-tiering-enabled

Sie können sich das Daten-Tiering nicht abwählen, wenn Sie einen Knotentyp aus der R6gd-Familie auswählen. Wenn Sie den Parameter --no-data-tiering-enabled festlegen, schlägt die Operation fehl.

Für Linux, macOS oder 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

Für Linux, macOS oder 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

Nach dem Ausführen dieses Vorgangs sehen Sie eine Antwort ähnlich dem folgenden:

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