Säule Operational Excellence von Amazon ElastiCache Well-Architected Lens - 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.

Säule Operational Excellence von Amazon ElastiCache Well-Architected Lens

Die Säule „Operational Excellence“ konzentriert sich auf den Betrieb und die Überwachung von Systemen, um einen Mehrwert für das Unternehmen zu schaffen, sowie auf die kontinuierliche Verbesserung von Prozessen und Verfahren. Zu den wichtigsten Themen gehören die Automatisierung von Änderungen, die Reaktion auf Ereignisse und die Definition von Standards für die Verwaltung des täglichen Betriebs.

OE 1: Wie verstehen Sie Warnmeldungen und Ereignisse, die von Ihrem ElastiCache Cluster ausgelöst werden, und wie reagieren Sie darauf?

Einführung auf Fragenebene: Wenn Sie ElastiCache Cluster betreiben, können Sie optional Benachrichtigungen und Warnmeldungen erhalten, wenn bestimmte Ereignisse eintreten. ElastiCacheprotokolliert standardmäßig Ereignisse, die sich auf Ihre Ressourcen beziehen, z. B. Failover, Knotenaustausch, Skalierungsvorgänge, geplante Wartungsarbeiten und mehr. Jedes Ereignis enthält das Datum und die Uhrzeit, den Quellnamen und den Quelltyp sowie eine Beschreibung.

Vorteil auf Fragenebene: Wenn Sie in der Lage sind, die zugrundeliegenden Ursachen für die Ereignisse, die von Ihrem Cluster generierte Warnmeldungen auslösen, zu verstehen und zu verwalten, können Sie effektiver arbeiten und angemessen auf Ereignisse reagieren.

  • [Erforderlich] Überprüfen Sie die Ereignisse, die von ElastiCache auf der ElastiCache Konsole (nach Auswahl Ihrer Region) oder mithilfe des Befehls describe-events von Amazon Command Line Interface (AWS CLI) und dem generiert wurden. ElastiCache API Konfigurieren Sie ElastiCache das Senden von Benachrichtigungen für wichtige Cluster-Ereignisse mithilfe von Amazon Simple Notification Service (AmazonSNS). Wenn Sie Amazon SNS mit Ihren Clustern verwenden, können Sie bei ElastiCache Ereignissen programmgesteuert Maßnahmen ergreifen.

    • Es gibt zwei große Ereigniskategorien: aktuelle und geplante Ereignisse. Die Liste der aktuellen Ereignisse umfasst: Erstellung und Löschung von Ressourcen, Skalierungsvorgänge, Failover, Neustart des Knotens, erstellter Snapshot, Änderung der Cluster-Parameter, Erneuerung des CA-Zertifikats, Fehlerereignisse (Cluster-Bereitstellungsfehler - VPC oder -, Skalierungsfehler ENI - - und Snapshot-Fehler). ENI Die Liste der geplanten Ereignisse umfasst: Knoten, dessen Austausch während des Wartungsfensters geplant ist, und Knotenaustausch, der verschoben wurde.

    • Auch wenn Sie auf einige dieser Ereignisse möglicherweise nicht sofort reagieren müssen, ist es wichtig, sich zunächst alle Fehlerereignisse anzusehen:

      • ElastiCache:AddCacheNodeFailed

      • ElastiCache:CacheClusterProvisioningFailed

      • ElastiCache:CacheClusterScalingFailed

      • ElastiCache:CacheNodesRebooted

      • ElastiCache: SnapshotFailed (Nur Valkey oder Redis) OSS

    • [Ressourcen]:

  • [Am besten] Nutzen Sie AWS Produkt- und Servicefunktionen wie SNS Lambda Functions, um Reaktionen auf Ereignisse zu automatisieren. Halten Sie sich an bewährte Methoden, indem Sie kleine, häufige, umkehrbare Änderungen als Code vornehmen, um Ihre Operationen im Laufe der Zeit weiterzuentwickeln. Sie sollten CloudWatch Amazon-Metriken verwenden, um Ihre Cluster zu überwachen.

    [Ressourcen]: Überwachen Sie ElastiCache (RedisOSS) (Cluster-Modus deaktiviert), lesen Sie Replica-Endpunkte mit AWS Lambda, Amazon Route 53 und Amazon SNS für einen Anwendungsfall, der Lambda und verwendet. SNS

OE 2: Wann und wie skalieren Sie Ihre vorhandenen Cluster? ElastiCache

Einführung auf Fragenebene: Die richtige Größe Ihres ElastiCache Clusters ist ein Balanceakt, der bei jeder Änderung der zugrunde liegenden Workload-Typen bewertet werden muss. Ihr Ziel ist es, mit der richtigen Größe für Ihren Workload zu arbeiten.

Vorteil auf Fragenebene: Eine Überlastung Ihrer Ressourcen kann zu einer erhöhten Latenz und einer insgesamt verringerten Leistung führen. Eine Unterauslastung kann andererseits zu einer Überbereitstellung von Ressourcen bei nicht optimaler Kostenoptimierung führen. Durch die richtige Dimensionierung Ihrer Umgebungen können Sie ein Gleichgewicht zwischen Leistungseffizienz und Kostenoptimierung erreichen. Um eine Über- oder Unterauslastung Ihrer Ressourcen zu beheben, ElastiCache können Sie in zwei Dimensionen skalieren. Sie können vertikal skalieren, indem Sie die Knotenkapazität erhöhen oder verringern. Sie können auch horizontal skalieren, indem Sie Knoten hinzufügen und entfernen.

OE 3: Wie verwalten Sie Ihre ElastiCache Cluster-Ressourcen und pflegen Ihren Cluster up-to-date?

Einführung auf Fragenebene: Wenn Sie in großem Maßstab arbeiten, ist es wichtig, dass Sie in der Lage sind, all Ihre Ressourcen zu lokalisieren und zu identifizieren. ElastiCache Bei der Einführung neuer Anwendungsfunktionen müssen Sie für eine Symmetrie der Cluster-Versionen in all Ihren ElastiCache Umgebungstypen sorgen: Entwicklung, Testen und Produktion. Mithilfe von Ressourcenattributen können Sie Umgebungen für unterschiedliche betriebliche Ziele trennen, z. B. bei der Einführung neuer Funktionen und der Aktivierung neuer Sicherheitsmechanismen.

Vorteil auf Fragenebene: Die Trennung Ihrer Entwicklungs-, Test- und Produktionsumgebungen ist die beste betriebliche Methode. Es ist auch eine bewährte Methode, dass auf Ihren Clustern und Knoten in allen Umgebungen die neuesten Softwarepatches installiert werden, wobei wohlverstandene und dokumentierte Prozesse verwendet werden. Durch die Nutzung systemeigener ElastiCache Funktionen kann sich Ihr Entwicklungsteam auf die Erreichung der Geschäftsziele konzentrieren und nicht auf die ElastiCache Wartung.

  • [Am besten] Verwenden Sie die neueste verfügbare Engine-Version und installieren Sie die Self-Service-Updates, sobald sie verfügbar sind. ElastiCache aktualisiert die zugrunde liegende Infrastruktur automatisch während des angegebenen Wartungsfensters des Clusters. Die in Ihren Clustern laufenden Knoten werden jedoch über Self-Service-Updates aktualisiert. Es gibt zwei Arten von Updates: Sicherheitspatches oder kleinere Software-Updates. Stellen Sie sicher, dass Sie den Unterschied zwischen den Patch-Typen verstehen und wissen, wann diese angewendet werden.

    [Ressourcen]:

  • [Am besten] Organisieren Sie Ihre ElastiCache Ressourcen mithilfe von Tags. Verwenden Sie Tags für Replikationsgruppen und nicht für einzelne Knoten. Sie können Tags so konfigurieren, dass sie angezeigt werden, wenn Sie Ressourcen abfragen, und Sie können Tags verwenden, um Suchen durchzuführen und Filter anzuwenden. Sie sollten Ressourcengruppen verwenden, um auf einfache Weise Sammlungen von Ressourcen zu erstellen und zu verwalten, die gemeinsame Tag-Sätze verwenden.

    [Ressourcen]:

OE 4: Wie verwalten Sie die Verbindungen der Kunden zu Ihren ElastiCache Clustern?

Einführung auf Fragenebene: Wenn Sie in großem Maßstab arbeiten, müssen Sie verstehen, wie Ihre Kunden mit dem ElastiCache Cluster kommunizieren, um die betrieblichen Aspekte Ihrer Anwendung (z. B. Reaktionszeiten) zu verwalten.

Vorteil auf Fragenebene: Durch die Auswahl des am besten geeigneten Verbindungsmechanismus wird sichergestellt, dass Ihre Anwendung nicht aufgrund von Verbindungsfehlern, wie Timeouts, unterbrochen wird.

  • [Erforderlich] Trennen Sie Lese- und Schreibvorgänge und stellen Sie eine Verbindung mit dem Replikatknoten her, um Lesevorgänge auszuführen. Beachten Sie jedoch, dass Sie, wenn Sie die Schreibvorgänge von den Lesevorgängen trennen, aufgrund der asynchronen Natur der Valkey- und Redis-Replikation die Fähigkeit verlieren, einen Schlüssel unmittelbar nach dem Schreiben zu lesen. OSS Der WAIT Befehl kann genutzt werden, um die Datensicherheit in der Praxis zu verbessern und Replikate dazu zu zwingen, Schreibvorgänge zu bestätigen, bevor sie den Clients antworten, was wiederum zu Leistungseinbußen führt. Die Verwendung von Replikatknoten für Lesevorgänge kann in Ihrer ElastiCache (Redis-OSS) Clientbibliothek konfiguriert werden, indem der ElastiCache Reader-Endpunkt für den Clustermodus deaktiviert ist. Wenn der Clustermodus aktiviert ist, verwenden Sie den Befehl ElastiCache (RedisOSS). READONLY Für viele der ElastiCache (Redis-OSS) Clientbibliotheken READONLY ist ElastiCache (RedisOSS) standardmäßig oder über eine Konfigurationseinstellung implementiert.

    [Ressourcen]:

  • [Erforderlich] Verwenden Sie Verbindungspooling. Das Herstellen einer TCP Verbindung ist sowohl auf der Client- als auch auf der Serverseite mit CPU Zeitaufwand verbunden, und das Pooling ermöglicht es Ihnen, die Verbindung wiederzuverwenden. TCP

    Um den Verbindungsaufwand zu reduzieren, sollten Sie Verbindungspooling verwenden. Mit einem Pool von Verbindungen kann Ihre Anwendung Verbindungen „nach Belieben“ wiederverwenden und freigeben, ohne dass Kosten für den Verbindungsaufbau anfallen. Sie können das Verbindungspooling über Ihre ElastiCache (Redis-OSS) Clientbibliothek (sofern unterstützt) implementieren, wobei ein Framework für Ihre Anwendungsumgebung verfügbar ist, oder es von Grund auf neu erstellen.

  • [Am besten] Stellen Sie sicher, dass das Socket-Timeout des Clients auf mindestens eine Sekunde eingestellt ist (im Vergleich zur typischen Standardeinstellung „Keine“ bei verschiedenen Clients).

    • Wenn Sie den Timeout-Wert zu niedrig einstellen, kann dies zu möglichen Timeouts führen, wenn die Serverlast hoch ist. Eine zu hohe Einstellung kann dazu führen, dass Ihre Anwendung lange braucht, um Verbindungsprobleme zu erkennen.

    • Kontrollieren Sie das Volumen neuer Verbindungen, indem Sie Verbindungspooling in Ihrer Client-Anwendung implementieren. Dies reduziert die Latenz und die CPU Auslastung, die zum Öffnen und Schließen von Verbindungen und zum Ausführen eines TLS Handshakes erforderlich sind, falls dies auf dem TLS Cluster aktiviert ist.

    [Ressourcen]: Konfiguration ElastiCache (RedisOSS) für höhere Verfügbarkeit

  • [Gut] Der Einsatz von Pipelining (sofern Ihre Anwendungsfälle dies zulassen) kann die Leistung erheblich steigern.

    • Mit Pipelining reduzieren Sie die RTT Round-Trip-Zeit () zwischen Ihren Anwendungsclients und dem Cluster. Neue Anfragen können verarbeitet werden, auch wenn der Client die vorherigen Antworten noch nicht gelesen hat.

    • Mit Pipelining können Sie mehrere Befehle an den Server senden, ohne auf Antworten/Bestätigungen warten zu müssen. Der Nachteil von Pipelining ist, dass, wenn Sie irgendwann alle Antworten in Massen abrufen, möglicherweise ein Fehler aufgetreten ist, den Sie erst am Ende erkennen können.

    • Implementieren Sie Methoden, um Anfragen erneut zu versuchen, wenn ein Fehler zurückgegeben wird, der die fehlerhafte Anfrage auslässt.

    [Ressourcen]: Pipelining

OE 5: Wie werden ElastiCache Komponenten für einen Workload bereitgestellt?

Einführung auf Fragenebene: ElastiCache Umgebungen können manuell über die AWS Konsole oder programmgesteuert überAPIs,, Toolkits usw. bereitgestellt werden. CLI Bewährte Methoden für Operational Excellence sehen vor, Bereitstellungen möglichst mithilfe von Code zu automatisieren. Darüber hinaus können ElastiCache Cluster entweder nach Arbeitslast isoliert oder zur Kostenoptimierung kombiniert werden.

Vorteil auf Frageebene: Durch die Auswahl des für Ihre ElastiCache Umgebungen am besten geeigneten Bereitstellungsmechanismus kann Operation Excellence im Laufe der Zeit verbessert werden. Es wird empfohlen, Operationen möglichst als Code auszuführen, um menschliche Fehler zu minimieren und die Wiederholbarkeit, Flexibilität und Reaktionszeit auf Ereignisse zu erhöhen.

Wenn Sie die Anforderungen an die Workload-Isolierung verstehen, können Sie entscheiden, ob Sie pro Workload dedizierte ElastiCache Umgebungen einrichten oder mehrere Workloads zu einzelnen Clustern oder Kombinationen davon kombinieren möchten. Die Nachteile zu verstehen, kann dazu beitragen, ein Gleichgewicht zwischen Operational Excellende und Kostenoptimierung zu finden

  • [Erforderlich] Machen Sie sich mit den verfügbaren Bereitstellungsoptionen vertraut und automatisieren Sie diese Verfahren ElastiCache, wann immer dies möglich ist. Zu den möglichen Automatisierungsmöglichkeiten gehören CloudFormationSDK, AWS CLI/undAPIs.

    [Ressourcen]:

  • [Erforderlich] Ermitteln Sie für alle Workloads den erforderlichen Grad der Clusterisolierung.

    • [Am besten]: Hohe Isolierung – eine 1:1-Zuordnung zwischen Workload und Cluster. Ermöglicht die feinste Kontrolle über den Zugriff, die Größe, Skalierung und Verwaltung von ElastiCache Ressourcen auf Workload-Basis.

    • [Besser]: Mittlere Isolierung – M:1 ist zweckmäßig isoliert, aber möglicherweise von mehreren Workloads gemeinsam genutzt (z. B. ein Cluster, der für das Zwischenspeichern von Workloads vorgesehen ist, und ein anderer, der für Messaging dediziert ist).

    • [Gut]: Niedrige Isolierung – M:1 für alle Zwecke, vollständig gemeinsam genutzt. Empfohlen für Workloads, bei denen gemeinsamer Zugriff akzeptabel ist.

OE 6: Wie planen und minimieren Sie Ausfälle?

Einführung auf Fragenebene: Operational Excellence umfasst die Antizipation von Ausfällen durch regelmäßige „Pre-Mortem“ -Übungen zur Identifizierung potenzieller Fehlerquellen, sodass sie behoben oder eingedämmt werden können. ElastiCache bietet ein FailoverAPI, das zu Testzwecken simulierte Knotenausfälle ermöglicht.

Vorteil auf Fragenebene: Wenn Sie Ausfallszenarien vorab testen, können Sie herausfinden, wie sie sich auf Ihren Workload auswirken. Dies ermöglicht ein sicheres Testen der Reaktionsverfahren und ihrer Wirksamkeit und macht Ihr Team mit deren Ausführung vertraut.

[Erforderlich] Führen Sie regelmäßig Failover-Tests in Entwickler-/Testkonten durch. TestFailover

OE 7: Wie behebt man Valkey- oder OSS Redis-Engine-Ereignisse?

Einführung auf Fragenebene: Operational Excellence erfordert die Fähigkeit, sowohl Informationen auf Service- als auch auf Engine-Ebene zu untersuchen, um den Zustand und den Status Ihrer Cluster zu analysieren. ElastiCache kann Valkey- oder OSS Redis-Engine-Protokolle sowohl an Amazon als auch an Amazon Kinesis CloudWatch Data Firehose senden.

Vorteil auf Fragenebene: Durch die Aktivierung von Valkey- oder OSS Redis-Engine-Protokollen auf ElastiCache Clustern erhalten Sie Einblicke in Ereignisse, die sich auf den Zustand und die Leistung von Clustern auswirken. Valkey- oder OSS Redis-Engine-Logs liefern Daten direkt von der Engine, die nicht über den Ereignismechanismus verfügbar sind. ElastiCache Durch sorgfältige Beobachtung sowohl der ElastiCache Ereignisse (siehe oben in OE-1) als auch der Engine-Logs ist es möglich, bei der Fehlerbehebung eine Reihenfolge der Ereignisse sowohl aus ElastiCache Service- als auch aus Engine-Perspektive zu bestimmen.

  • [Erforderlich] Stellen Sie sicher, dass die Protokollierungsfunktion der OSS Redis-Engine aktiviert ist. Diese Funktion ist ab ElastiCache (RedisOSS) 6.2 und neuer verfügbar. Dieser Vorgang kann während der Clustererstellung oder durch Änderung des Clusters nach der Erstellung erfolgen.

    • Stellen Sie fest, ob Amazon CloudWatch Logs oder Amazon Kinesis Data Firehose das geeignete Ziel für OSS Redis-Engine-Protokolle ist.

    • Wählen Sie ein geeignetes Zielprotokoll in CloudWatch oder Kinesis Data Firehose aus, um die Protokolle beizubehalten. Wenn Sie mehrere Cluster haben, sollten Sie für jeden Cluster ein anderes Zielprotokoll verwenden, da Daten bei der Fehlerbehebung so besser isoliert werden können.

    [Ressourcen]:

  • [Am besten] Wenn Sie Amazon CloudWatch Logs verwenden, sollten Sie Amazon CloudWatch Logs Insights nutzen, um das Valkey- oder OSS Redis-Engine-Protokoll nach wichtigen Informationen abzufragen.

    Erstellen Sie als Beispiel eine Abfrage für die CloudWatch Protokollgruppe, die die Valkey- oder OSS Redis-Engine-Protokolle enthält, die Ereignisse mit dem Zeichen '' WARNING zurückgeben, wie zum Beispiel: LogLevel

    fields @timestamp, LogLevel, Message | sort @timestamp desc | filter LogLevel = "WARNING"

    [Ressourcen]: Analysieren von Protokolldaten mit CloudWatch Logs Insights