Richten Sie ein Redis-Cluster für Skalierbarkeit und hohe Verfügbarkeit ein

Amazon ElastiCache for Redis-Clustermodus-Einrichtung, -Konfiguration, -Sicherheit und -Bereitstellung

In diesem Tutorial lernen Sie, wie Sie einen Redis-Cluster mit ElastiCache for Redis erstellen und konfigurieren. Wenn der Cluster-Modus aktiviert ist, erhält Ihr Redis-Cluster eine verbesserte Skalierbarkeit und Hochverfügbarkeit. Sie können klein anfangen und Ihre Redis-Daten einfach skalieren, wenn Ihre Anwendung wächst, und durch die Einrichtung von Replikaten in verschiedenen Availability Zones können Sie auch Ihre Lesekapazität erhöhen. Wenn Sie diesem Tutorial folgen, lernen Sie auch einige Best Practices für Redis Cluster-Implementierungen kennen.

Es gibt ein sehr reichhaltiges Ökosystem von Redis-Clients mit Unterstützung für Cluster-Modus-Funktionen. Das macht die Arbeit mit geteilten Daten extrem einfach und zuverlässig, da die Clients den Standort der Hash-Slots in einem lokalen Cache verfolgen können, wodurch die Leistung des gesamten Systems verbessert wird.

Der ElastiCache-Knoten, der in diesem Lernprogramm erstellt wird, ist für das kostenlose Kontingent geeignet.

Anmelden beim Amazon ElastiCache Dashboard »

Voraussetzungen

Irgendwann in diesem Tutorial müssen Sie sich mit Ihrem Redis-Cluster verbinden, um einige seiner Funktionen aus erster Hand zu erfahren. Das bedeutet, dass Sie Zugang zu einer EC2-Instance mit einem installierten Redis-Client benötigen. Wenn Sie bereits eine EC2-Instance mit einem Redis-Client installiert haben, können Sie zu Schritt 1 übergehen. Andernfalls verbinden Sie sich mit Ihrer Amazon EC2-Instance und folgen Sie den untenstehenden Anweisungen, um einen Redis-Client zu installieren.

Wenn Sie keinen C-Compiler zur Verfügung haben, installieren Sie einen durch Ausführen von:

$ sudo yum install gcc

Herunterladen und Kompilieren eines Redis-Clients:

$ curl -O http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean  # Ubuntu systems only
$ make

Nun ist alles bereit, um mit dem Tutorial zu beginnen.

Über dieses Tutorial
Zeit 10 bis 20 Minuten                                           
Kosten Kostenloses Kontingent verfügbar
Anwendungsfall Skalierung, Hochverfügbarkeit, Echtzeitanwendung
Produkte AWS ElastiCache for Redis, kostenlose Kontingent von AWS
Zielgruppe Entwickler
Wissensstand Einsteiger
Letzte Aktualisierung 05. Juni 2019

Schritt 1: Öffnen Sie das ElastiCache-Dashboard

Öffnen Sie das ElastiCache-Dashboard und:

1.1: Wählen Sie oben rechts die Region aus, in der Sie den Redis-Cluster starten möchten.

1.2 Klicken Sie auf „Jetzt loslegen“.

Schritt 2: Erstellen Sie Ihr Redis-Cluster

2.1 Wählen Sie als Cluster-Engine "Redis" aus.

2.2 Markieren Sie "Cluster-Modus aktiviert".

Schritt 3: Konfigurieren Sie die Redis-Einstellungen

3.1 Geben Sie Ihrem Redis-Cluster einen Namen, z. B. "elc-tutorial".

3.2 Ändern Sie den Knotentyp zu cache.t2.micro. Dieser Knotentyp eignet sich hervorragend für dieses Tutorial. Für einen Produktions-Cluster sollten Sie die Größe des Knotens jedoch entsprechend Ihrer jeweiligen Workload wählen und mit den Instance-Familien m5 oder r5 beginnen.

3.3 Wählen Sie unter Anzahl der Shards 3. Das bedeutet, dass die Daten in drei verschiedene Masterknoten partitioniert werden.

3.4 In Replikate pro Shard wählen Sie 2. Das bedeutet, dass jeder Master-Knoten über zwei Replikate verfügt. Im Falle eines Ausfalls wird ein automatischer Failover ausgelöst und eine der Replikate übernimmt die Rolle des Master-Knotens.

3.5 Wählen Sie eine Subnetzgruppe aus. Weitere Informationen zu Subnetzgruppen finden Sie in der Dokumentation.

Schritt 4: Konfigurieren der erweiterten Redis-Einstellungen

4.1 Aktivieren Sie das Kästchen "Multi-AZ mit automatischem Failover".

Jeder Master-Knoten wird in einer anderen Availability Zone erstellt, und jede seiner Replikate wird ebenfalls einer anderen Availability Zone zugeordnet. Dies ist eine bewährte Methode zur Verbesserung der Zuverlässigkeit.

Belassen Sie die Vorschlagswerte für die anderen Felder.

Schritt 5: Sicherheitseinstellungen konfigurieren

Für den Zweck dieses Tutorials werden wir keine Verschlüsselung verwenden. Beachten Sie jedoch, dass Sie die Verschlüsselung sowohl für gespeicherte als auch für übertragene Daten aktivieren können.

5.1 Wählen Sie eine Sicherheitsgruppe für Ihren Redis-Cluster aus.

Wichtig: Stellen Sie sicher, dass für die ausgewählte Sicherheitsgruppe eingehende TCP-Verbindungen über Port 6379 zugelassen sind. Andernfalls können Sie keine Verbindung zu Ihren Redis-Knoten herstellen.

Schritt 6: Daten in den Cluster importieren

In diesem Tutorial werden wir keine RDB-Seed-Datei laden, sodass dieser Konfigurationsschritt übersprungen werden kann. Behalten Sie diese Option jedoch zur späteren Verwendung im Hinterkopf.

Schritt 7: Sicherungen konfigurieren

Tägliche Sicherungen sind meist unerlässlich. Es empfiehlt sich daher, für die Sicherungen einen Aufbewahrungszeitrum zu konfigurieren, der Ihnen ausreichend Zeit zum Einleiten von Maßnahmen lässt, sollte ein Problem auftreten. In diesem Tutorial werden wir keine Sicherungen konfigurieren.

7.1 Deaktivieren Sie die Option "Automatische Sicherungen aktivieren".

Schritt 8: Wartungseinstellungen

8.1 Legen Sie ein Wartungsfenster entsprechend Ihren Anforderungen fest.

Hier können Sie einen Tag und eine Uhrzeit angeben, zu der für Ihre Anwendung nur mit geringer Workload zu rechnen ist. Zum jetzigen Zeitpunkt können Sie einfach „Keine Präferenz“ auswählen.

Schritt 9: Überprüfen und erstellen

Nach einer kurzen Überprüfung aller Felder des Formulars können Sie auf "Erstellen" klicken.

9.1 Klicken Sie auf "Erstellen".

Ein Redis-Cluster wird initialisiert und sobald er „ verfügbar“ ist, können Sie mit Schritt 10 fortfahren.

Wenn Sie es vorziehen, die Amazon-CLI zu verwenden, können Sie mit dem folgenden Befehl den Redis-Cluster in einem Durchgang erstellen:

Wenn Sie es vorziehen, die Amazon-CLI zu verwenden, können Sie mit dem folgenden Befehl den Redis-Cluster in einem Durchgang erstellen:

$ aws elasticache create-replication-group \
--replication-group-id elc-tutorial \
--replication-group-description "Tutorial example" \
--num-node-groups 3 \
--cache-node-type cache.t2.micro \
--cache-parameter-group default.redis5.0.cluster.on \
--engine redis \
--engine-version 5.0.3 \
--cache-subnet-group-name sn-value \
--security-group-ids sg-value \
--node-group-configuration \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1a',ReplicaAvailabilityZones='us-east-1b','us-east-1c',Slots=0-5460" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1b',ReplicaAvailabilityZones='us-east-1c','us-east-1a',Slots=5461-10921" \
"ReplicaCount=2,PrimaryAvailabilityZone='us-east-1c',ReplicaAvailabilityZones='us-east-1a','us-east-1b',Slots=10922-16383"

Für das Argument zu --security-group-ids müssen Sie den sg-Wert durch die ID der Sicherheitsgruppe ersetzen, die Sie verwenden möchten.

Was das Argument zu --cache-subnet-group-name betrifft, ersetzen Sie den sn-Wert durch den Namen einer Subnetzgruppe. Wenn Sie eine Subnetzgruppe erstellen müssen, verwenden Sie den folgenden Befehl:

$ aws elasticache create-cache-subnet-group \
--cache-subnet-group-name elc-tutorial-subnet \
--cache-subnet-group-description "Tutorial Subnet Group" \
--subnet-ids sn-ids

Der Wert von sn-ids muss eine Liste von Subnetz-IDs sein.

Wenn Sie es vorziehen, die Amazon API zu verwenden, wird mit der unten stehenden Anfrage ein Redis-Cluster erstellt:

https://elasticache.us-east-1.amazonaws.com/
?Action=CreateReplicationGroup 
&CacheParameterGroup=default.redis5.0.cluster.on
&Engine=redis
&EngineVersion=5.0.3
&ReplicationGroupDescription=Tutorial%20example
&ReplicationGroupId=elc-tutorial
&NumNodeGroups=3
&PrimaryClusterId=elc-primary
&ReplicasPerNodeGroup=2
&Version=<version>
&SignatureVersion=4
&SignatureMethod=HmacSHA256
&Timestamp=<timestamp>
&X-Amz-Credential=<credential>

In der vorherigen Anfrage müssen Sie Werte für Version, Zeitstempel und X-Amz-Credential angeben.

Schritt 10: Mit Redis verbinden

Finden Sie den Konfigurations-Endpunkt Ihres Redis-Clusters.

10.1: Klicken Sie auf den Pfeil, um Details zum Redis-Cluster anzuzeigen.

10.2 Kopieren des Konfigurations-Endpunkts

Der in den Beispielen genannte Endpunkt bezieht sich immer auf den Hostnamen Ihres Konfigurationsendpunkts.

10.4 Verwenden Sie das Dienstprogramm redis-cli, um sich mit Ihrem Redis-Knoten zu verbinden.

$ ./src/redis-cli -c -h endpoint

10.5 Testen Sie die Verbindung mit einem PING.

endpoint:6379> PING
	PONG

Schritt 11: Auslösen eines Failovers

Jetzt haben Sie einen funktionierenden und gesunden Redis-Cluster. Eines der Merkmale des Cluster-Modus ist die Tatsache, dass sich der Cluster selbst heilen kann, wenn ein Knoten stirbt. Um diese Behauptung zu testen, können Sie ein manuelles Failover auslösen, und es geschieht Folgendes: Eine Lese-Replik wird ausgewählt, um die Rolle des Masters zu übernehmen, und sobald das Failover ausgeführt ist, können Sie sich mit dem neuen Master verbinden. In der Zwischenzeit wird automatisch eine neue Replik hinzugefügt, so dass der Cluster immer noch ein Master und zwei Replikate hat.

Überprüfen Sie anhand des Endpunkts aus Schritt 10 die Rolle des Knotens.

11.1 Überprüfen Sie die Rolle des Endpunkts.

	endpoint:6379> ROLE
	1) "master"
 	...

Sie sollten sich mit dem Master verbinden. Wenn Sie keine Verbindung zu einem Master hergestellt haben, versuchen Sie es mit einem anderen Endpunkt. Sie haben drei Versuche, es richtig zu machen.

Sobald Sie den Masterknoten gefunden haben:

11.2 Wählen Sie einen der Knoten, klicken Sie auf "Aktion" und wählen Sie "Failover primär".

Lesen Sie die Nachricht, um zu verstehen, was vor sich geht, und klicken Sie dann auf "Weiter". Eine der Replikate wird zum neuen Master, und die Anzahl der Replikate pro Master wird wiederhergestellt. Sie können den Befehl CLUSTER NODES ausführen, um zu überprüfen, was geschieht.

Schritt 12: Löschen Ihres Clusters

Zum Abschluss dieses Experiments erfahren Sie, wie Sie Ihren Redis-Cluster löschen können, wenn er nicht mehr benötigt wird.

Zum Löschen Ihres Redis-Clusters wechseln Sie zum ElastiCache-Dashboard und folgen Sie diesen Anweisungen:

12.1 Wählen Sie im linken Navigationsbereich die Option "Redis".

Hier finden Sie eine Liste aller Ihrer Redis-Cluster.

12.2 Wählen Sie den Redis-Cluster aus, den Sie für dieses Tutorial erstellen möchten.

12.3: Klicken Sie auf "Löschen".

12.4 Sie werden gefragt, ob Sie eine abschließende Sicherung erstellen möchten. Dies wird normalerweise empfohlen, ist jedoch für dieses Tutorial nicht notwendig. Wählen Sie "Nein" aus und klicken Sie auf "Löschen".

Der Status Ihres Clusters ändert sich in "wird gelöscht".

Herzlichen Glückwunsch!

Sie haben einen Redis-Cluster mit aktiviertem Cluster-Modus erstellt. Die Knoten wurden über Availability Zones verteilt und mit automatischen Failover konfiguriert. Sie haben auch einige bewährte Methoden für Redis-Cluster-Bereitstellungen kennen gelernt.

War dieses Tutorial hilfreich?

Vielen Dank
Bitte teilen Sie uns mit, was Ihnen gefallen hat.
Schließen
Es tut uns leid Sie zu enttäuschen
Ist etwas veraltet, verwirrend oder ungenau? Bitte helfen Sie uns, dieses Tutorial zu verbessern, indem Sie Feedback geben.
Schließen

Weitere Informationen

Wenn Sie mehr über Redis-Cluster wissen möchten, lesen Sie den Blogbeitrag Redis Cluster 101. Weitere Inhalte für den Einstieg, einen Leitfaden für Entwickler und technische Blogs für Anwendungsfälle finden Sie auf unserer Ressourcen-Seite.

Wählen Sie die richtige Knotengröße

Die Bestimmung der Größe Ihrer Redis-Knoten mag schwierig erscheinen, aber wir haben einige Richtlinien erstellt, die Ihnen bei der Auswahl der richtigen Knotengröße auf der Grundlage Ihrer Bedürfnisse helfen sollen.

Caching-Strategien

Schließlich können Sie mehr über Strategien und bewährte Methoden zum Caching zur Verbesserung von Leistung und Zuverlässigkeit lesen.