Wie teste ich meine Verbindung zu einem Amazon ElastiCache Redis oder Memcached Cluster?

Lesedauer: 9 Minute
0

Ich möchte meine Verbindung zu einem Amazon ElastiCache für Redis oder Amazon ElastiCache für Memcached Cluster von einem Linux-basierten Client aus testen.

Kurzbeschreibung

Amazon ElastiCache unterstützt zwei In-Memory-Schlüsselwert-Engines, Redis und Memcached. Wenn Sie einen ElastiCache Cache Cluster starten, wählen Sie Ihre bevorzugte Engine aus.

**Hinweis:**Diese Lösung behandelt das Testen einer Verbindung nur für den ungeplanten Gebrauch. Eine Liste der unterstützten Redis-Clients finden Sie in der Redis-Dokumentation.

Für Memcached mit Java, .NET oder PHP empfiehlt es sich, ElastiCache Clients mit Auto Discovery zu verwenden. ElastiCache Clients mit Auto Discovery identifizieren automatisch neue ElastiCache-Knoten, wenn sie dem Cache Cluster hinzugefügt werden.

Behebung

Erstellen Sie den ElastiCache Cluster

**Hinweis:**Wenn Sie eine Verbindung zu einem vorhandenen Cluster herstellen, fahren Sie mit dem nächsten Schritt fort.

Informationen zum Erstellen eines ElastiCache Redis Clusters finden Sie unter Cluster erstellen (Amazon ElastiCache für Redis User Guide).

Informationen zum Erstellen eines Memcached-Clusters finden Sie unter Cluster erstellen (Amazon ElastiCache für Memcached User Guide).

Verbindung zum ElastiCache Redis Cluster herstellen

ElastiCache unterstützt Redis Cluster sowohl im deaktivierten Cluster-Modus als auch im aktivierten Cluster-Modus. Verwenden Sie das Dienstprogramm redis-cli oder redis6-cli, um eine Verbindung zu diesen Clustern zu testen. Die neueste Version von redis-cli und redis6-cli unterstützt SSL/TLS, um Verbindungen zu Clustern herzustellen, bei denen Verschlüsselung oder Authentifizierung aktiviert sind. Laden Sie das Dienstprogramm redis-cli herunter und kompilieren Sie es auf der Amazon Elastic Compute Cloud (Amazon EC2) Instance, von der aus Sie eine Verbindung herstellen. Anweisungen zum Herstellen einer Verbindung zu einer Amazon EC2 Instance finden Sie im Tutorial: Erste Schritte mit Amazon EC2 Linux Instances.

**Hinweis:**Das folgende Beispiel verwendet EC2 Instances, auf denen Amazon Linux, Amazon Linux 2 und Amazon Linux 2023 ausgeführt werden. Dokumentation zur Installation und Kompilierung von redis-cli und redis6-cli mit anderen Linux-Distributionen finden Sie in der Dokumentation für Ihr spezifisches Betriebssystem.

Amazon Linux 2023

sudo yum install redis6 -y

Amazon Linux 2

$sudo amazon-linux-extras install epel -y$sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y
$sudo wget http://download.redis.io/redis-stable.tar.gz
$sudo tar xvzf redis-stable.tar.gz
$cd redis-stable
$sudo make BUILD_TLS=yes

Amazon Linux

$sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget$sudo wget http://download.redis.io/redis-stable.tar.gz
$sudo tar xvzf redis-stable.tar.gz
$cd redis-stable
$sudo CC=clang make BUILD_TLS=yes

Standardmäßig verwendet redis-cli eine unverschlüsselte TCP-Verbindung, wenn es eine Verbindung zu Redis herstellt. Wenn redis-cli kompiliert, aktiviert die Option BUILD_TLS=yes SSL/TLS. Wenn der Cluster, zu dem Sie eine Verbindung herstellen, während der Übertragung nicht verschlüsselt ist, benötigen Sie die Option Build_TLS=yes nicht. In den folgenden Schritten beziehen sich verschlüsselte oder unverschlüsselte Cluster auf Verschlüsselung bei der Übertragung.

**Hinweis:**Wenn Sie das redis6-Paket installieren, installieren Sie automatisch redis6-cli mit standardmäßiger SSL/TLS-Unterstützung.

Informationen zum Suchen von Redis-Endpunkten finden Sie unter Verbindungsendpunkte suchen.

Eine Verbindung zu einem unverschlüsselten Cluster mit deaktiviertem Cluster-Modus herstellen

  1. Führen Sie den folgenden Befehl aus, um eine Verbindung zum Cluster herzustellen. Ersetzen Sie im folgenden Beispielbefehl change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com und 6379 durch den Endpunkt Ihres Clusters und Ihre Portnummer:

    Amazon Linux 2023

    redis6-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379

    Amazon Linux und Amazon Linux 2

    src/redis-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379

    Dieser Befehl gibt eine Redis-Befehlszeile zurück, die dem folgenden Beispiel ähnelt:

    change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
  2. Nachdem Sie eine Verbindung zum Cluster hergestellt haben, können Sie Redis-Befehle wie die folgenden Beispiele ausführen:

    set a "hello"OK
    get a
    "hello"
    quit

    Weitere Informationen finden Sie unter Befehle auf der Website redis.io.

Eine Verbindung zu einem unverschlüsselten Cluster mit aktiviertem Cluster-Modus herstellen

Führen Sie den folgenden Befehl aus, um eine Verbindung zum Cluster herzustellen. Ersetzen Sie im folgenden Beispielbefehl cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com und 6379 durch den Endpunkt Ihres Clusters und Ihre Portnummer:

Amazon Linux 2023

redis6-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379

Amazon Linux und Amazon Linux 2

src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379

**Hinweis:**In diesen Befehlen aktiviert die Option -c den Clustermodus nach den Umleitungen -ASK und -MOVED. Weitere Informationen finden Sie unter Client- und Serverrollen im Redis-Cluster-Protokoll auf der Website redis.io.

Das Ergebnis in einer Redis-Befehlszeile sieht dem folgenden Beispiel ähnlich:

cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:>

Sie können jetzt Redis-Befehle ausführen. Die Umleitung erfolgt aufgrund der Option -c. Wenn Sie die Umleitung nicht aktivieren, führt der Befehl zum Fehler MOVED. Weitere Informationen zum MOVED Fehler finden Sie in der Redis-Cluster-Spezifikation auf der Redis Website.

Hier sind einige Beispiele für Redis-Befehle:

set x Hi-> Redirected to slot [16287] located at 172.31.28.122:6379
OK
set y Hello
OK
get y
"Hello"
set z Bye
-> Redirected to slot [8157] located at 172.31.9.201:6379
OK
get z
"Bye"
get x
-> Redirected to slot [16287] located at 172.31.28.122:6379
"Hi"

Eine Verbindung zu einem Cluster mit aktivierter Verschlüsselung und Authentifizierung herstellen

Sie haben die Möglichkeit, AUTH zu aktivieren. Um AUTH zu aktivieren, müssen Sie jedoch die Verschlüsselung während der Übertragung aktivieren. Einzelheiten zur ElastiCache-Verschlüsselung und -Authentifizierung finden Sie unter ElastiCache-In-Transit-Verschlüsselung (TLS).

Um zu verschlüsselten Clustern sowohl mit aktiviertem als auch mit deaktiviertem Cluster-Modus eine Verbindung herzustellen, verwenden Sie die Option --tls mit der redis-cli. Wenn für einen Cluster ein AUTH-Token gesetzt ist, können Sie die Option -a verwenden, um ein AUTH-Passwort anzugeben.

**Hinweis:**Ab Redis Version 7 ist die Verschlüsselung während der Übertragung für bestehende ElastiCache Cluster aktiviert. Sie können die TLS-Konfiguration Ihrer Redis Cluster ändern, ohne sie neu zu erstellen oder erneut bereitzustellen oder die Anwendungsverfügbarkeit zu beeinträchtigen. Wenn Sie die Verschlüsselung während der Übertragung aktivieren, aktualisieren Sie Ihre Client-Konfiguration, sodass sie die neuen TLS-spezifischen Endpunkte verwendet. Weitere Informationen finden Sie unter Bewährte Methoden zum Herstellen von Verbindungen vor, während und nach der Aktivierung der Verschlüsselung bei der Übertragung.

Ersetzen Sie in den folgenden Beispielen den Endpunkt und den Port Ihres Clusters.

Eine Verbindung zu einem verschlüsselten Cluster mit deaktiviertem Cluster-Modus herstellen

Der folgende Beispielbefehl stellt eine Verbindung zu einem Cluster her, bei dem Verschlüsselung und Authentifizierung aktiviert sind:

Amazon Linux 2023

redis6-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379

Amazon Linux und Amazon Linux 2

src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379

Der folgende Beispielbefehl stellt eine Verbindung zu einem Cluster her, für den nur die Verschlüsselung aktiviert ist:

Amazon Linux 2023

redis6-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379

Amazon Linux und Amazon Linux 2

src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379

Eine Verbindung zu einem verschlüsselten Cluster mit aktiviertem Cluster-Modus herstellen

Der folgende Beispielbefehl stellt eine Verbindung zu einem Cluster her, bei dem Verschlüsselung und Authentifizierung aktiviert sind:

Amazon Linux 2023

redis6-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379

Amazon Linux und Amazon Linux 2

src/redis-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379

Der folgende Beispielbefehl stellt eine Verbindung zu einem Cluster her, für den nur die Verschlüsselung aktiviert ist:

Amazon Linux 2023

redis6-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379

Amazon Linux und Amazon Linux 2

src/redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379

Nachdem Sie eine Verbindung mit dem Cluster hergestellt haben, können Sie Redis-Befehle ausführen, wie in den vorherigen Beispielen für unverschlüsselte Cluster gezeigt.

Redis-cli-Alternative

Für einen kurzen Test, ohne die Redis-cli-Kompilierung durchzuführen, können Sie eine Verbindung zu einem Cluster herstellen, für den der Cluster-Modus nicht aktiviert ist. Verwenden Sie dazu Telnet oder OpenSSL. Ersetzen Sie in den folgenden Beispielbefehlen den Endpunkt und den Port Ihres Clusters.

**Hinweis:**Informationen zur Installation des Telnet-Hilfsprogramms finden Sie im folgenden Abschnitt Herstellen einer Verbindung zu einem Memcached-Cluster ohne Verschlüsselung während der Übertragung.

Nachdem Sie die Verbindung hergestellt haben, können Sie Redis-Befehle ausführen, wie in den vorherigen Beispielen gezeigt.

Der folgende Beispielbefehl stellt eine Verbindung zu einem Cluster mit deaktiviertem Verschlüsselungs- oder Authentifizierungs-Cluster-Modus her:

openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379

Wenn für den Cluster ein Passwort festgelegt ist, stellen Sie zuerst eine Verbindung zum Cluster her. Nachdem Sie die Verbindung hergestellt haben, verwenden Sie den folgenden Befehl, um den Cluster zu authentifizieren, und drücken Sie dann die Eingabetaste. Ersetzen Sie im folgenden Beispielbefehl Password durch das Passwort für Ihren Cluster:

Auth Password

Der folgende Beispielbefehl stellt eine Verbindung zu einem Cluster mit deaktiviertem Cluster-Modus her, für den weder Verschlüsselung noch Authentifizierung aktiviert sind:

telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379

Eine Verbindung zu einem ElastiCache Memcached Cluster herstellen

Verwenden Sie das Telnet-Dienstprogramm, um eine Verbindung zu einem Memcached Cluster herzustellen.

Eine Verbindung zu einem Memcached Cluster ohne Verschlüsselung während der Übertragung herstellen

  1. Installieren Sie das Telnet-Dienstprogramm auf der EC2 Instance, von der aus Sie eine Verbindung testen.

    Führen Sie für CentOS-basierte Systeme den folgenden Befehl aus:

    $sudo yum install telnet

    Führen Sie für Debian-basierte Systeme (Ubuntu) den folgenden Befehl aus:

    $sudo apt-get install telnet

    Anweisungen zum Herstellen einer Verbindung zu einer Amazon EC2 Instance finden Sie im Tutorial: Erste Schritte mit Amazon EC2 Linux Instances.

  2. Führen Sie den folgenden Beispielbefehl aus, um eine Verbindung zum Endpunkt herzustellen. Ersetzen Sie mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com durch Ihren Endpunkt und 11211 durch den Port Ihres Knotens:

    telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211

    Die Ausgabe sieht dem folgenden Beispiel ähnlich:

    Trying 128.0.0.1...Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.
    Escape character is '^]'.
    >

Sie sind jetzt mit einem Knoten verbunden. Sie können Memcached-Befehle ausführen, wie in der folgenden Beispielausgabe gezeigt:

set a 0 0 5hello
STORED
get a
VALUE a 0 5
hello
END

Eine Verbindung zu einem MemCached Cluster mit Verschlüsselung während der Übertragung herstellen

Die Verschlüsselung während der Übertragung wird auf Clustern unterstützt, auf denen Memcached-Versionen 1.6.12 und höher ausgeführt werden. Telnet verwendet keine Verschlüsselung. Verwenden Sie den OpenSSL Client, um eine Verbindung zu einem MemCached Cluster mit aktivierter Verschlüsselung herzustellen.

**Hinweis:**Sie können die Verschlüsselung während der Übertragung auf einem Cluster nur aktivieren, wenn Sie den Cluster erstellen. Sie können den Cluster nicht ändern, um die Verschlüsselung während der Übertragung ein- und auszuschalten. Weitere Informationen finden Sie unter ElastiCache-In-Transit-Verschlüsselung (TLS).

Führen Sie den folgenden Beispielbefehl aus, um eine Verbindung zum Endpunkt herzustellen. Ersetzen Sie testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com durch Ihren Endpunkt und 11211 durch den Port Ihres Knotens:

openssl s_client -quiet -crlf -connect testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com:11211

Hier ist ein Beispiel für eine Ausgabe:

depth=2 C = US, O = Amazon, CN = Amazon Root CA 1  verify return:1  
depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M02  
verify return:1  
depth=0 CN = *.testwithtls.qtyxq7.apse2.cache.amazonaws.com  
verify return:1

Sie sind jetzt mit einem Knoten verbunden. Sie können Memcached-Befehle ausführen, wie in der folgenden Beispielausgabe gezeigt:

set a 0 0 5hello
STORED
get a
VALUE a 0 5
hello
END
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 7 Monaten