Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

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

Lesedauer: 8 Minute
0

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

Behebung

Hinweis: Mit der folgenden Lösung wird eine Verbindung nur für die ungeplante Nutzung getestet. Eine Liste der unterstützten Redis-Clients finden Sie unter Verbindung mit Redis-Clients herstellen auf der Redis-Website.

Amazon ElastiCache unterstützt die speicherinternen Schlüssel-Wert-Engines Redis OSS und Memcached. Wenn Sie einen ElastiCache Cache Cluster starten, wählen Sie Ihre bevorzugte Engine aus.

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.

Erstellen des ElastiCache-Clusters

Informationen zum Erstellen eines ElastiCache Redis OSS-Clusters finden Sie unter Erstellen eines Clusters für Valkey oder Redis OSS.

Informationen zum Erstellen eines Memcached-Clusters finden Sie unter Erstellen eines Clusters für Memcached.

Verbindung zum ElastiCache Redis OSS-Cluster herstellen

ElastiCache unterstützt Redis OSS-Cluster sowohl mit deaktiviertem Cluster-Modus (CMD) als auch mit aktiviertem Cluster-Modus (CME). Verwenden Sie das Dienstprogramm redis-cli oder redis6-cli, um eine Verbindung zu den Clustern zu testen. Die neueste Version von redis-cli und redis6-cli unterstützt SSL/TLS, um Verbindungen zu Clustern herzustellen, bei denen die 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 möchten. Weitere Informationen finden Sie unter Erste Schritte mit Amazon EC2.

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

Um eine Verbindung zum ElastiCache Redis OSS-Cluster herzustellen, führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus.

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

Wenn die redis-cli eine Verbindung zu Redis herstellt, verwendet sie eine unverschlüsselte TCP-Verbindung. Wenn die 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.

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 in ElastiCache suchen.

In den folgenden Schritten beziehen sich verschlüsselte oder unverschlüsselte Cluster auf die Verschlüsselung bei der Übertragung.

Eine Verbindung zu einem CMD-unverschlüsselten Cluster herstellen

Hinweis: Ersetzen Sie in den folgenden Befehlen change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com durch den Endpunkt Ihres Clusters und 6379 durch Ihre Portnummer.

Führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus.

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

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

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

Nachdem Sie eine Verbindung zum Cluster hergestellt haben, können Sie Redis-Befehle ausführen.

Beispielbefehl:

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

Weitere Informationen finden Sie unter Befehle auf der Redis-Website.

Eine Verbindung zu einem CME-unverschlüsselten Cluster herstellen

Hinweis: Ersetzen Sie in den folgenden Befehlen cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com durch den Endpunkt Ihres Clusters und 6379 durch Ihre Portnummer.

Führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus.

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 vorherigen Befehlen aktiviert die Option -c den Clustermodus nach den Umleitungen -ASK und -MOVED. Wenn Sie die Umleitung nicht aktivieren, gibt der Befehl den Fehler MOVED zurück. Weitere Informationen finden Sie unter Client- und Serverrollen im Redis-Cluster-Protokoll und in der Redis-Cluster-Spezifikation auf der Redis-Website.

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

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

Beispiel für Redis-Befehle:

set x Hi-> Redirected to slot [16287] located at 172.31.28.122:6379OK
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 oder Authentifizierung herstellen

Um AUTH zu aktivieren, müssen Sie auch die Verschlüsselung während der Übertragung aktivieren. Weitere Informationen finden Sie unter ElastiCache-Verschlüsselung während der Übertragung (TLS).

Um eine Verbindung zu CME- und Cluster-CMD-verschlüsselten Clustern herzustellen, verwenden Sie die Option**--tls** in der redis-cli. Wenn für einen Cluster ein AUTH-Token gesetzt ist, verwenden Sie die Option -a, 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 müssen den Cluster nicht neu erstellen oder erneut bereitstellen, um die TLS-Konfiguration für den Redis OSS-Cluster zu ändern. Und die Verfügbarkeit der Anwendungen wird nicht beeinträchtigt.

Wenn Sie die Verschlüsselung während der Übertragung aktivieren, aktualisieren Sie die Client-Konfiguration, sodass sie die neuen TLS-spezifischen Endpunkte verwendet.

Eine Verbindung zu CMD-verschlüsselten Clustern herstellen

Hinweis: Ersetzen Sie in den folgenden Befehlen master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com durch den Konfigurationsendpunkt Ihres Clusters und 6379 durch Ihre Portnummer.

Um eine Verbindung zu einem CMD-Cluster mit aktivierter Verschlüsselung und Authentifizierung herzustellen, führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus.

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

Um eine Verbindung zu einem CMD-Cluster herzustellen, bei dem nur die Verschlüsselung aktiviert ist, führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus:

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 CME-verschlüsselten Clustern herstellen

Um eine Verbindung zu einem CME-Cluster mit aktivierter Verschlüsselung und Authentifizierung herzustellen, führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus:

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

Um eine Verbindung zu einem CME-Cluster herzustellen, bei dem nur die Verschlüsselung aktiviert ist, führen Sie einen der folgenden Befehle für Ihr Betriebssystem aus:

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

Redis-cli-Alternative

Um einen kurzen Test ohne die redis-cli-Kompilierung durchzuführen, verwenden Sie telnet oder openssl, um eine Verbindung zu einem CMD-Cluster herzustellen.

Nachdem Sie eine Verbindung hergestellt haben, können Sie Redis-Befehle ausführen.

Der folgende Beispielbefehl stellt eine Verbindung zu einem verschlüsselten oder authentifizierten CMD-Cluster her:

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

Wenn Sie ein Passwort für den Cluster festlegen, stellen Sie zuerst eine Verbindung zum Cluster her. Nachdem Sie die Verbindung hergestellt haben, führen Sie den folgenden Befehl aus, um den Cluster zu authentifizieren, und drücken Sie dann die Eingabetaste:

Auth Password

Hinweis: Ersetzen Sie im folgenden Beispielbefehl Passwort durch das Passwort für Ihren Cluster

Der folgende Beispielbefehl stellt eine Verbindung zu einem CMD-Cluster 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

Führen Sie die folgenden Schritte aus:

  1. Installieren Sie das telnet-Dienstprogramm auf der Instance, von der aus Sie eine Verbindung testen möchten.

    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

    Informationen zum Herstellen einer Verbindung zu einer Instance finden Sie unter Eine Verbindung mit der EC2-Instance herstellen.

  2. Führen Sie den folgenden Befehl aus, um eine Verbindung zum Endpunkt herzustellen:

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

    Hinweis: Ersetzen Sie mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com durch Ihren Endpunkt und 11211 durch den Port Ihres Knotens.

    Beispielausgabe:

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

    Sie sind jetzt mit einem Knoten verbunden und können Memcached-Befehle ausführen.

    Beispiel für Memcached-Befehle:

    set a 0 0 5helloSTORED
    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 openssl, 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 zu aktivieren oder zu deaktivieren. Weitere Informationen finden Sie unter ElastiCache-Verschlüsselung während der Übertragung (TLS).

Führen Sie den folgenden Befehl aus, um eine Verbindung zum Endpunkt herzustellen:

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

Hinweis: Ersetzen Sie testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com durch Ihren Endpunkt und 11211 durch den Port Ihres Knotens.

Beispielausgabe:

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 und können Memcached-Befehle ausführen.

Beispiel für Memcached-Befehle:

set a 0 0 5helloSTORED
get a
VALUE a 0 5
hello
END
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Monaten