Wie ElastiCache funktioniert - 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.

Wie ElastiCache funktioniert

Hier finden Sie einen Überblick über die wichtigsten Komponenten eines ElastiCache Deployments.

Cache- und Caching-Engines

Ein Cache ist ein In-Memory-Datenspeicher, den Sie zum Speichern zwischengespeicherter Daten verwenden können. In der Regel speichert Ihre Anwendung häufig aufgerufene Daten in einem Cache, um die Antwortzeiten zu optimieren. ElastiCache bietet zwei Bereitstellungsoptionen: Serverlose und selbst entworfene Cluster. Siehe Auswählen aus den Bereitstellungsoptionen.

Anmerkung

Amazon ElastiCache arbeitet mit den OSS-Engines Valkey, Memcached und Redis. Wenn Sie sich nicht sicher sind, welche Engine Sie verwenden möchten, beachten Sie Vergleich der selbst entworfenen Caches von Valkey, Memcached und Redis OSS in diesem Handbuch.

Wie ElastiCache funktioniert

ElastiCache Serverless

ElastiCache Mit Serverless können Sie einen Cache erstellen, ohne sich Gedanken über Kapazitätsplanung, Hardwaremanagement oder Clusterdesign machen zu müssen. Sie geben einfach einen Namen für Ihren Cache an und Sie erhalten einen einzigen Endpunkt, den Sie in Ihrem Valkey-, Memcached- und Redis OSS-Client konfigurieren können, um mit dem Zugriff auf Ihren Cache zu beginnen.

Anmerkung
  • ElastiCache Serverless führt Valkey, Memcached oder Redis OSS im Clustermodus aus und ist nur mit Clients kompatibel, die TLS unterstützen.

Wichtigste Vorteile

  • Keine Kapazitätsplanung: ElastiCache Serverless macht die Kapazitätsplanung überflüssig. ElastiCache Serverless überwacht kontinuierlich die Speicher-, Rechen- und Netzwerkbandbreitennutzung Ihres Caches und skaliert sowohl vertikal als auch horizontal. Dadurch kann ein Cache-Knoten an Größe zunehmen und gleichzeitig ein Aufskalierungsvorgang initiiert werden, um sicherzustellen, dass der Cache jederzeit skaliert werden kann, um Ihre Anwendungsanforderungen zu erfüllen.

  • Pay-per-use: Bei ElastiCache Serverless zahlen Sie für die im Cache gespeicherten Daten und die Rechenleistung, die von Ihrem Workload genutzt wird. Siehe Preisdimensionen.

  • Hochverfügbarkeit: ElastiCache Serverless repliziert Ihre Daten automatisch über mehrere Availability Zones (AZ) hinweg, um eine hohe Verfügbarkeit zu gewährleisten. Es überwacht automatisch die zugrunde liegenden Cache-Knoten und ersetzt sie bei Ausfällen. Es bietet ein SLA mit einer Verfügbarkeit von 99,99 % für jeden Cache.

  • Automatische Software-Upgrades: ElastiCache Serverless aktualisiert Ihren Cache automatisch auf die neueste Minor- und Patch-Softwareversion, ohne dass die Verfügbarkeit Ihrer Anwendung beeinträchtigt wird. Sobald eine neue Hauptversion verfügbar ist, ElastiCache erhalten Sie eine Benachrichtigung.

  • Sicherheit: Serverless verschlüsselt Daten während der Übertragung und im Ruhezustand. Sie können einen vom Service verwalteten Schlüssel oder einen eigenen kundenverwalteten Schlüssel verwenden, um Daten im Ruhezustand zu verschlüsseln.

Das folgende Diagramm zeigt, wie ElastiCache Serverless funktioniert.

Ein Diagramm des ElastiCache serverlosen Cache-Betriebs, von den Availability Zones zur Kunden-VPC und dann zur Service-VPC.

Wenn Sie einen neuen serverlosen Cache erstellen, ElastiCache wird ein Virtual Private Cloud (VPC) -Endpunkt in den Subnetzen Ihrer Wahl in Ihrer VPC erstellt. Ihre Anwendung kann über diese VPC-Endpunkte eine Verbindung mit dem Cache herstellen.

Mit ElastiCache Serverless erhalten Sie einen einzigen DNS-Endpunkt, mit dem Ihre Anwendung eine Verbindung herstellt. Wenn Sie eine neue Verbindung zum Endpunkt anfordern, verarbeitet ElastiCache Serverless alle Cache-Verbindungen über eine Proxyschicht. Die Proxy-Schicht trägt zu einer weniger komplexen Client-Konfiguration bei, da der Client die Cluster-Topologie nicht erneut ermitteln muss, wenn Änderungen am zugrunde liegenden Cluster vorgenommen werden. Die Proxy-Schicht besteht aus einer Reihe von Proxy-Knoten, die Verbindungen mithilfe eines Network Load Balancer verarbeiten.

Wenn Ihre Anwendung eine neue Cache-Verbindung erstellt, wird die Anfrage vom Network Load Balancer an einen Proxy-Knoten gesendet. Führt Ihre Anwendung Cache-Befehle aus, dann führt der Proxy-Knoten, der mit Ihrer Anwendung verbunden ist, die Anfragen auf einem Cache-Knoten in Ihrem Cache aus. Die Proxy-Schicht abstrahiert die Cache-Cluster-Topologie und die Knoten von Ihrem Client. Dies ermöglicht ElastiCache einen intelligenten Lastenausgleich, die Skalierung und das Hinzufügen neuer Cache-Knoten, den Austausch von Cache-Knoten bei deren Ausfall und die Aktualisierung der Software auf den Cache-Knoten, ohne dass die Verfügbarkeit Ihrer Anwendung beeinträchtigt oder Verbindungen zurückgesetzt werden müssen.

Selbst entworfene Cluster ElastiCache

Sie können Ihre eigenen ElastiCache Cluster entwerfen, indem Sie eine Cache-Knotenfamilie, Größe und Anzahl der Knoten für Ihren Cluster auswählen. Durch das Entwerfen eines eigenen Clusters haben Sie eine genauere Kontrolle und können die Anzahl der Shards in Ihrem Cache und die Anzahl der Knoten (Primärknoten und Replikatknoten) in jedem Shard auswählen. Sie können wählen, ob Sie Valkey oder Redis OSS im Clustermodus betreiben möchten, indem Sie einen Cluster mit mehreren Shards erstellen, oder im Nicht-Cluster-Modus mit einem einzigen Shard.

Wichtigste Vorteile

  • Entwerfen Sie Ihren eigenen Cluster: Mit können Sie Ihren eigenen Cluster entwerfen und wählen ElastiCache, wo Sie Ihre Cache-Knoten platzieren möchten. Wenn Sie beispielsweise über eine Anwendung verfügen, bei der es um einen Kompromiss zwischen hoher Verfügbarkeit und niedriger Latenz geht, können Sie sich dafür entscheiden, Ihre Cache-Knoten in einer einzigen AZ bereitzustellen. Alternativ können Sie Ihren Cluster mit Knoten entwerfen, die sich über mehrere Knoten verteilen AZs , um eine hohe Verfügbarkeit zu erreichen.

  • Genauere Kontrolle: Wenn Sie einen eigenen Cluster entwerfen, haben Sie mehr Kontrolle über die Optimierung der Einstellungen in Ihrem Cache. Beispielsweise können Sie Valkey- und Redis OSS-Parameter oder verwenden, Memcached-spezifische Parameter um die Cache-Engine zu konfigurieren.

  • Vertikales und horizontales Skalieren: Sie können Ihren Cluster wahlweise manuell skalieren, indem Sie die Größe des Cache-Knotens bei Bedarf erhöhen oder verringern. Sie können auch horizontal skalieren, indem Sie neue Shards oder weitere Replikate zu Ihren Shards hinzufügen. Sie können die Auto-Scaling-Funktion auch verwenden, um die Skalierung auf der Grundlage eines Zeitplans oder eine Skalierung auf der Grundlage von Messwerten wie der CPU- und Speicherauslastung im Cache zu konfigurieren.

Das folgende Diagramm zeigt, wie ElastiCache selbst entworfene Cluster funktionieren.

Ein Diagramm des Betriebs ElastiCache selbst entworfener Cluster, von den Availability Zones über die Kunden-VPC bis hin zu den ElastiCache verwalteten Cache-Knoten.

Preisdimensionen

Sie können die Bereitstellung ElastiCache in zwei Bereitstellungsoptionen durchführen. Bei der Bereitstellung von ElastiCache Serverless zahlen Sie für die Nutzung der in GB-Stunden gespeicherten Daten und für die ElastiCache Datenverarbeitung in Processing Units (ECPU). Wenn Sie sich dafür entscheiden, Ihre eigenen ElastiCache Cluster zu entwerfen, zahlen Sie pro Stunde für die Nutzung des Cache-Knotens. Weitere Informationen zu Preisen finden Sie hier.

Datenspeicher

Sie zahlen für in ElastiCache Serverless gespeicherte Daten, die in Gigabyte-Stunden (GB-Stunden) abgerechnet werden. ElastiCache Serverless überwacht kontinuierlich die in Ihrem Cache gespeicherten Daten, wobei mehrere Samplings pro Minute durchgeführt werden, und berechnet einen Stundendurchschnitt, um die Datenspeichernutzung des Caches in GB-Stunden zu ermitteln. Jeder ElastiCache serverlose Cache wird für mindestens 1 GB an gespeicherten Daten gemessen.

ElastiCache Verarbeitungseinheiten () ECPUs

Sie zahlen für die Anfragen, die Ihre Anwendung auf ElastiCache Serverless ausführt, in ElastiCache Processing Units (ECPUs), einer Einheit, die sowohl vCPU-Zeit als auch übertragene Daten beinhaltet.

  • Einfache Lese- und Schreibvorgänge erfordern 1 ECPU für jedes Kilobyte (KB) übertragener Daten. Beispielsweise verbraucht ein GET-Befehl, der bis zu 1 KB Daten überträgt, 1 ECPU. Eine SET-Anfrage, die 3,2 KB an Daten überträgt, verbraucht 3,2 KB. ECPUs

  • Bei Valkey und Redis OSS werden Befehle, die mehr vCPU-Zeit verbrauchen und mehr Daten übertragen, auf der ECPUs Grundlage der höheren der beiden Dimensionen verbraucht. Wenn Ihre Anwendung beispielsweise den Befehl HMGET verwendet, das Dreifache der vCPU-Zeit als ein einfacher SET/GET-Befehl benötigt und 3,2 KB Daten überträgt, verbraucht sie 3,2 ECPUs. Wenn nur 2 KB an Daten übertragen werden, werden alternativ 3 KB verbraucht. ECPUs

  • Mit Valkey und Redis OSS verbrauchen Befehle, die zusätzliche vCPU-Zeit benötigen, proportional mehr. ECPUs Wenn Ihre Anwendung beispielsweise den Befehl Valkey oder Redis OSS HMGET verwendet und das Dreifache der vCPU-Zeit als ein einfacher SET/GET-Befehl verbraucht, dann verbraucht sie 3. ECPUs

  • Mit Memcached verbrauchen Befehle, die auf mehrere Elemente angewendet werden, proportional mehr. ECPUs Wenn Ihre Anwendung beispielsweise ein Multiget für 3 Elemente ausführt, verbraucht sie 3 Objekte. ECPUs

  • Bei Memcached werden Befehle, die auf mehr Elemente angewendet und mehr Daten übertragen, auf der ECPUs Grundlage der höheren der beiden Dimensionen verbraucht. Wenn Ihre Anwendung beispielsweise den Befehl GET verwendet, 3 Elemente abruft und 3,2 KB Daten überträgt, verbraucht sie 3,2 ECPU. Wenn nur 2 KB an Daten übertragen werden, werden alternativ 3 KB verbraucht. ECPUs

ElastiCache Serverless gibt eine neue Metrik mit dem Namen ausElastiCacheProcessingUnits, die Ihnen hilft, zu verstehen, wie viel Ihr ECPUs Workload verbraucht.

Knotenstunden

Sie können Ihren eigenen Cache-Cluster entwerfen, indem Sie die EC2 Knotenfamilie, Größe, Anzahl der Knoten und die Platzierung in den Availability Zones auswählen. Wenn Sie Ihren Cluster selbst entwerfen, zahlen Sie pro Stunde für jeden Cache-Knoten.

ElastiCache Backups

Ein Backup ist eine point-in-time Kopie eines serverlosen Caches oder eines von Valkey oder Redis OSS selbst entworfenen Clusters. ElastiCache ermöglicht es Ihnen, jederzeit eine Sicherungskopie Ihrer Daten zu erstellen oder automatische Backups einzurichten. Backups können zur Wiederherstellung eines bestehenden Caches oder zum Seeding eines neuen Caches verwendet werden. Backups umfassen alle Daten in einem Cache sowie zusätzlich einige Metadaten. Weitere Informationen finden Sie unter Snapshot und Wiederherstellung.