ElastiCache Redis OSS クラスターまたは Memcached クラスターへの接続をテストする方法を教えてください。
Linux ベースのクライアントから、Amazon ElastiCache Redis OSS クラスターまたは Amazon ElastiCache Memcached クラスターへの接続をテストしたいと考えています。
解決策
注: 次の解決策では、予期しない使用状況についてのみ、接続をテストします。サポートされている Redis クライアントのリストについては、Redis のウェブサイトで「Redis クライアントに接続する」を参照してください。
Amazon ElastiCache は、メモリ内キー値エンジンに Redis OSS および Memcached をサポートしています。ElastiCache キャッシュクラスターの起動には、任意のエンジンを使用できます。
Java、.NET、または PHP で Memcached を使用する場合は、自動検出機能を備えた ElastiCache クライアントを使用するのがベストプラクティスです。自動検出機能を備えた ElastiCache クライアントは、新しい ElastiCache ノードがキャッシュクラスターに追加されると、それらを自動的に識別します。
ElastiCache クラスターを作成する
ElastiCache Redis OSS クラスターを作成するには、「Valkey または Redis OSS 用のクラスターを作成する」を参照してください。
Memcached クラスターを作成するには、「Memcached 用のクラスターを作成する」を参照してください。
ElastiCache Redis クラスターに接続する
ElastiCache は、クラスターモードが無効な Redis クラスターも、クラスターモードが有効な Redis クラスターもサポートしています。クラスターへの接続をテストするには、redis-cli または redis6-cli ユーティリティを使用します。redis-cli および redis6-cli の最新バージョンは SSL/TLS をサポートしており、暗号化または認証が有効なクラスターに接続できます。
接続元の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで redis-cli ユーティリティをダウンロードしてコンパイルします。詳細については、「Amazon EC2 の開始方法」を参照してください。
注: 次の例では、Amazon Linux、Amazon Linux 2、Amazon Linux 2023 を実行する Amazon EC2 インスタンスを使用しています。redis-cli と redis6-cli を他の Linux ディストリビューションにインストールしてコンパイルするには、お使いの OS のマニュアルを参照してください。
ElastiCache Redis OSS クラスターに接続するには、お使いの OS に合わせて以下のいずれかのコマンドを実行します。
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
Redis-cli が Redis に接続するときには、暗号化されていない TCP 接続を使用します。redis-cli がコンパイルされると、BUILD_TLS=yes オプションによって SSL/TLS が有効になります。接続先のクラスターが転送中に暗号化されない場合は、Build_TLS=yes オプションは必要ありません。
注: redis6 パッケージをインストールすると、デフォルトの SSL/TLS サポートで redis6-cli が自動的にインストールされます。
Redis エンドポイントを見つける方法については、「ElastiCache での接続エンドポイントを見つける」を参照してください。
次の手順では、暗号化されたクラスターまたは暗号化されていないクラスターは、転送中の暗号化を指します。
CMD 非暗号化クラスターに接続する
注: 次のコマンドの例で、change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com と 6379 をそれぞれ、お使いのクラスターのエンドポイントとポート番号に置き換えます。
お使いの OS で、以下のコマンドのいずれかを実行します。
Amazon Linux 2023:
redis6-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
Amazon Linux、Amazon Linux 2:
src/redis-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
上記のコマンドは、次の例のような Redis コマンドプロンプトを返します。
change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
クラスターに接続したら、Redis コマンドを実行します。
コマンド例:
set a "hello" OK get a "hello" quit
詳細については、Redis のウェブサイトで「コマンド」を参照してください。
CME 非暗号化クラスターへの接続
注: 次のコマンドでは、cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com お使いのクラスター設定のエンドポイントに、6379 をお使いのポート番号に置き換えてください。
お使いの OS で、以下のコマンドのいずれかを実行します。
Amazon Linux 2023:
redis6-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
Amazon Linux、Amazon Linux 2:
src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
注: 上記のコマンドでは、-c オプションにより、-ASK および -MOVED リダイレクト の後にクラスターモードが有効になります。リダイレクトを有効にしない場合、コマンドは MOVED エラーを返します。詳細については、Redis のウェブサイトで「Redis クラスタープロトコルにおけるクライアントとサーバーのロール」および「Redis クラスターの仕様」を参照してください。
上記のコマンドは、次の例のような Redis コマンドプロンプトを返します。
cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:>
Redis コマンドの例:
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"
暗号化または認証が有効なクラスターに接続する
AUTH を有効にするには、転送時の暗号化も有効にする必要があります。詳細については、「ElastiCache の転送時の暗号化 (TLS)」を参照してください。
CME クラスターおよびクラスターの CMD 暗号化クラスターの両方に接続するには、redis-cli で --tls ** オプションを使用します。クラスターに AUTH トークンが設定されている場合は、-a** オプションを使用して AUTH パスワードを指定します。
注: Redis バージョン 7 以降、既存の ElastiCache クラスターに対して転送時の暗号化が有効になります。Redis OSS クラスターの TLS 設定を変更するために、クラスターを再構築したり、再プロビジョニングしたりする必要はありません。また、アプリケーションの可用性は影響を受けません。
転送中の暗号化を有効にする際に、新しい TLS 固有のエンドポイントを使用するようにクライアント設定を更新します。
CMD 暗号化クラスターに接続する
注: 次のコマンドでは、master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com をお使いのクラスター設定のエンドポイントに、6379 をお使いのポート番号に置き換えてください。
暗号化と認証が有効になっている CMD クラスターに接続するには、お使いの OS で次のコマンドのいずれかを実行します。
Amazon Linux 2023:
redis6-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
Amazon Linux、Amazon Linux 2:
src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
暗号化のみが有効になっている CMD クラスターに接続するには、お使いの OS で次のいずれかのコマンドを実行します。
Amazon Linux 2023:
redis6-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
Amazon Linux、Amazon Linux 2:
src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
CME で暗号化されたクラスターに接続する
暗号化と認証が有効になっている CME クラスターに接続するには、お使いの OS で次のコマンドのいずれかを実行します。
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
Amazon Linux、Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
暗号化のみが有効になっている CME クラスターに接続するには、お使いの OS で次のいずれかのコマンドを実行します。
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Amazon Linux、Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Redis-cli の代替
redis-cli コンパイルなしで短いテストを実行するには、telnet または openssl を使用して CMD クラスターに接続します。
接続後、Redis コマンドを実行します。
次のコマンド例は、暗号化または認証が行われた CMD クラスターに接続します。
openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379
クラスターのパスワードを設定した場合は、まずクラスターに接続します。接続したら、次のコマンドを実行してクラスターを認証した後に、Enter を押します。
Auth Password
注: 上記のコマンドの例では、Password をクラスターのパスワードに置き換えてください
次のコマンドの例では、暗号化または認証が有効になっていない、CMD クラスターに接続します:
telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379
ElastiCache Memcached クラスターに接続する
Memcached クラスターに接続するには、telnet ユーティリティを使用します。
転送時の暗号化を行わずに Memcached クラスターに接続する
次の手順を実行します。
-
テストする接続元のインスタンスに、telnet ユーティリティをインストールします。
CentOS ベースのシステムの場合は、次のコマンドを実行します:
sudo yum install telnet
Debian ベースのシステム (Ubuntu) の場合は、次のコマンドを実行します:
sudo apt-get install telnet
インスタンスに接続するには、「EC2 インスタンスに接続する」を参照してください。
-
エンドポイントに接続するには、次のコマンドを実行します。
telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
注: mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com をお使いのエンドポイントに、11211 をお使いのノードのポートに置き換えます。
出力例:
Trying 128.0.0.1...Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.Escape character is '^]'. >
ノードに接続されたため、Memcached コマンドを実行できるようになります。
Memcached コマンドの例:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
転送時の暗号化を使用して MemCached クラスターに接続する
転送時の暗号化は、Memcached バージョン 1.6.12 以降を実行するクラスターでサポートされています。Telnet では、暗号化を使用しません。暗号化が有効な MemCached クラスターに接続するには、openssl を使用します。
注: クラスターで転送時の暗号化を有効にできるのは、クラスターの作成時のみです。クラスターの変更では、転送中の暗号化を有効または無効にすることはできません。詳細については、「ElastiCache の転送時の暗号化 (TLS)」を参照してください。
エンドポイントに接続するには、次のコマンドを実行します。
openssl s_client -quiet -crlf -connect testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com:11211
注: testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com をお使いのエンドポイントに、11211 をお使いのノードのポートに置き換えます:
出力例:
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
ノードに接続されたため、Memcached コマンドを実行できるようになります。
Memcached コマンドの例:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
関連するコンテンツ
- 質問済み 3年前lg...