Direkt zum Inhalt

Wie minimiere ich Ausfallzeiten in ElastiCache während eines Failovers?

Lesedauer: 5 Minute
0

Ich möchte bewährte Methoden anwenden zur Minimierung von Ausfallzeiten bei Failovers für Amazon ElastiCache für Redis OSS und Amazon ElastiCache für Valkey.

Kurzbeschreibung

Bei ElastiCache kann es aus den folgenden Gründen zu Failovers kommen, die sich auf die Leistung und Zuverlässigkeit der Anwendung auswirken:

  • Wenn du Ressourcen wie Arbeitsspeicher, CPU und Netzwerkbandbreite erschöpfst, kann es zu einem Failover deiner Knoten kommen.
  • Wenn AWS eine Wartung wegen eines Updates plant, kann es zu einem Failover deiner Knoten kommen.
  • Wenn die physische Hardware für die Infrastruktur, auf der die Knoten gehostet werden, ausfällt oder Defekte aufweist, kommt es bei deinen Knoten möglicherweise zu einem Failover.
  • Wenn du Anwendungen oder Dienste, die mit deinem Cache interagieren, nicht ordnungsgemäß konfigurierst, können die Konfigurationen zu längeren Ausfallzeiten führen.

Lösung

Multi-AZ einschalten

Verwende die ElastiCache Multi-AZ-Funktion, um Primär- und Replikatknoten in verschiedenen Availability Zones (AZs) in einer AWS-Region zu erstellen und zu verwalten. Wenn der primäre Knoten ausfällt, übernimmt der Replikatknoten die Rolle des Primärknotens mit minimaler Ausfallzeit.

Lesereplikate hinzufügen

Wenn du deinen Redis-Bereitstellungen Lesereplikate hinzufügst, minimierst du Ausfallzeiten und Datenverluste bei Failover-Aufgaben erheblich. Wenn deine Lesereplikate Leseanforderungen verwalten, konfiguriere deinen Primärknoten für die Verarbeitung von Schreibvorgängen. Diese Konfiguration bietet die folgenden Vorteile:

  • Verbessert den Lesedurchsatz
  • Reduziert die Latenz
  • Sorgt für Fehlertoleranz
  • Vereinfacht Wartungsaufgaben, die zu Ausfallzeiten für deinen Cluster führen

Knoten auf Availability Zones verteilen

Wenn du Knoten auf mehrere Availability Zones verteilst, sorgen die Replikate in verschiedenen AZs für hohe Verfügbarkeit und kontinuierliche Lesevorgänge. Diese Konfiguration erhöht die Systemstabilität und reduziert Ausfallzeiten im Falle eines Knoten-Failovers. Du kannst deine Knoten auf mehrere AZs verteilen, wenn du deinen Cluster zum ersten Mal konfigurierst oder wenn du einem vorhandenen Cluster neue Knoten hinzufügst. Weitere Informationen findest du unter Regionen und Availability Zones für ElastiCache auswählen.

Neueste Valkey- oder Redis OSS-Version verwenden

Verwende je nach Cluster- und Knotentyp die neueste Version von Valkey oder Redis OSS, um die neuesten Funktionen zu unterstützen. Beispielsweise benötigen Cluster mit deaktiviertem Clustermodus mindestens Valkey Version 7.2 oder Redis OSS Version 5.0.6, um die Funktion für geplante Knotenwechsel nutzen zu können. Weitere Informationen findest du unter Unterstützte Knotentypen.

Cluster-Ereignisse überwachen

Überprüfe deine ElastiCache-Clusterereignisse, um Failovers zu identifizieren und darauf zu reagieren. Verwende zur frühzeitigen Erkennung von Failovers Amazon Simple Notification Service (Amazon SNS), um ElastiCache so zu konfigurieren, dass Benachrichtigungen für wichtige Clusterereignisse verschickt werden.

Die richtigen Endpunkte verwenden

Um Ausfallzeiten während des Failovers zu minimieren, musst du ausgehend von deiner Cluster-Konfiguration die richtigen Endpunkte für deinen ElastiCache für Redis-OSS-Cluster verwenden. Um Lese-Workloads für Cluster mit deaktiviertem Clustermodus auf Replikate zu verteilen, verwende den primären Endpunkt für Schreibvorgänge und den Reader-Endpunkt für Lesevorgänge. Verwende für Cluster mit aktiviertem Clustermodus den Konfigurationsendpunkt für alle Vorgänge, um die Verbindungen zu den richtigen Knoten automatisch zu verwalten. Wenn du den richtigen Endpunkt für deinen Clustermodus auswählst, optimierst du die Leistung und sorgst für einen reibungslosen Failover-Prozess. Weitere Informationen findest du unter Verbindungsendpunkte in ElastiCache finden.

Hinweis: Die direkte Verwendung einzelner Knotenendpunkte ist keine bewährte Methode. Verwende stattdessen die richtigen Endpunkte für deinen Verbindungstyp. Da sich die Knotenrollen bei Failover-Ereignissen ändern können, treten mehr Anwendungsprobleme auf, wenn du einen einzelnen Knotenendpunkt verwendest.

Automatisches Failover regelmäßig testen

Um zuverlässige Redis-Bereitstellungen zu gewährleisten, empfiehlt es sich, das automatische Failover regelmäßig zu testen. Um das automatische Failover zu testen, musst du den Ausfall des Primärknotens simulieren, um sicherzustellen, dass deine Replikate danach den Primärstatus erhalten. Mithilfe dieser Tests kannst du Probleme in deinen Konfigurationen identifizieren und diese Probleme beheben, bevor sie deine Cluster beeinträchtigen. Darüber hinaus bieten Failover-Tests Einblicke in die Anwendungsleistung und darüber, wie du deine Architektur und Wiederherstellungsverfahren optimierst.

Bewährte Methoden für deine Redis-Kunden beachten

Folge diesen bewährten Methoden in Bezug auf deine Redis-Kunden:

  • Um die Leistung und Skalierbarkeit von Anwendungen zu verbessern, verwende Verbindungspooling, um wiederverwendbare, vorab eingerichtete Verbindungen zu verwalten. Weitere Informationen findest du unter Verbindungspools und Multiplexing auf der Redis-Website.
  • Implementiere Ausnahmen und den Umgang mit Timeouts, um effiziente Anwendungen für deinen Redis-Cluster zu gewährleisten. Es besteht auch die Möglichkeit, Timeouts in deinen Protokollen zu identifizieren, um Probleme festzustellen und deine Konfigurationen anzupassen. Weitere Informationen findest du unter Client-Timeouts auf der Redis-Website.
  • Implementiere Wiederholungsmechanismen, die eine exponentielle Backoff-Strategie verwenden, um robuste Anwendungen zu gewährleisten. Konfiguriere die Mechanismen so, dass zwischen vorübergehenden Fehlern, die Wiederholungen rechtfertigen, und dauerhaften Fehlern, die keine Wiederholungsversuche rechtfertigen, unterschieden wird. Weitere Informationen findest du unter Cluster-Client-Erkennung und exponentielles Backoff (Valkey und Redis OSS).
  • Aktiviere Protokolle, um wichtige Metriken und Fehler zu erfassen und eine Leistungsreferenz für deinen Cluster zu definieren. Weitere Informationen findest du unter Protokollieren von Ereignissen auf der Redis-Website.
  • Gestalte deine Clients so, dass sie Änderungen der Cluster-Topologie dynamisch verarbeiten und sich an Knoten- und Rollenänderungen anpassen. Implementiere intelligentes Verbindungspooling, um Verbindungen zu Clusterknoten aufrechtzuerhalten und deine Cluster zu optimieren. Weitere Informationen findest du unter Redis-Cluster- und Clientbibliotheken auf der Redis-Website.

Ähnliche Informationen

Überwachung bewährter Methoden mit Amazon ElastiCache für Redis mithilfe von Amazon CloudWatch

Wie behebe ich Probleme mit hoher Latenz in ElastiCache für Redis?

Unterstützte Verbindungsclients auf der Redis-Website

AWS OFFICIALAktualisiert vor 7 Monaten