ElastiCache Redis OSS クラスターまたは Memcached クラスターへの接続をテストする方法を教えてください。

所要時間4分
0

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.com6379 をそれぞれ、お使いのクラスターのエンドポイントとポート番号に置き換えます。

お使いの 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 クラスターに接続する

次の手順を実行します。

  1. テストする接続元のインスタンスに、telnet ユーティリティをインストールします。

    CentOS ベースのシステムの場合は、次のコマンドを実行します:

    sudo yum install telnet

    Debian ベースのシステム (Ubuntu) の場合は、次のコマンドを実行します:

    sudo apt-get install telnet

    インスタンスに接続するには、「EC2 インスタンスに接続する」を参照してください。

  2. エンドポイントに接続するには、次のコマンドを実行します。

    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
AWS公式
AWS公式更新しました 3ヶ月前
コメントはありません

関連するコンテンツ