ステップ 4: クラスターのノードに接続する - Amazon ElastiCache (Redis OSS)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ステップ 4: クラスターのノードに接続する

続行する前に、「ステップ 3: クラスターへのアクセスの許可」を完了します。

このセクションでは、Amazon EC2 インスタンスが作成済みであり、このインスタンスに接続できることを前提としています。これを行う手順については、「Amazon EC2 入門ガイド」を参照してください。

Amazon EC2 インスタンスは、許可されている場合にのみクラスターノードに接続できます。

ノードのエンドポイントを見つける

クラスターが利用可能な状態であり、クラスターへのアクセスを許可されている場合は、Amazon EC2 インスタンスにログインしてクラスターに接続できます。そのためには、最初にエンドポイントを確認する必要があります。

Redis OSS (クラスターモードが無効) クラスターのエンドポイントの検索 (コンソール)

Redis OSS (クラスターモードが無効) クラスターに 1 つのノードしかない場合、ノードのエンドポイントは読み取りと書き込みの両方に使用されます。クラスターに複数のノードがある場合は、プライマリエンドポイントリーダーエンドポイントノードエンドポイントの 3 種類のエンドポイントがあります。

プライマリエンドポイントは、常にクラスターのプライマリノードに解決される DNS 名です。プライマリエンドポイントは、リードレプリカのプライマリロールへの昇格など、クラスターに対する変更の影響を受けません。書き込みアクティビティの場合、アプリケーションをプライマリエンドポイントに接続することをお勧めします。

リーダーエンドポイントは、 ElastiCache (Redis OSS) クラスター内のすべてのリードレプリカ間でエンドポイントへの受信接続を均等に分割します。アプリケーションがいつ接続を作成するか、アプリケーションが接続をどのように (再) 利用するかなどの追加要因によって、トラフィックの分散が決定されます。レプリカが追加または削除されても、読み込みエンドポイントはリアルタイムでクラスターの変更に対応します。 ElastiCache (Redis OSS) クラスターの複数のリードレプリカを異なるアベイラ AWS ビリティーゾーン (AZ) に配置して、リーダーエンドポイントの高可用性を確保できます。

注記

リーダーエンドポイントはロードバランサーではありません。これは、ラウンドロビン方式でレプリカノードの 1 つの IP アドレスに解決される DNS レコードです。

読み取りアクティビティの場合、アプリケーションはクラスター内のいずれのノードにも接続できます。プライマリエンドポイントとは異なり、ノードエンドポイントは特定のエンドポイントに解決されます。レプリカの追加または削除など、クラスターに変更を加えた場合は、アプリケーションでノードエンドポイントを更新する必要があります。

Redis OSS (クラスターモードが無効) クラスターのエンドポイントを検索するには
  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/elasticache/ で ElastiCache コンソールを開きます。

  2. ナビゲーションペインから、Redis OSS キャッシュ を選択します。

    クラスター画面には、既存の Redis OSS サーバーレスキャッシュ、Redis OSS (クラスターモードが無効)、および Redis OSS (クラスターモードが有効) クラスターを含むリストが表示されます。Redis OSS (クラスターモードが無効) クラスターの作成 (コンソール) のセクションで作成したものを選択します。

  3. クラスターのプライマリエンドポイントやリーダーエンドポイントを検索するには、クラスターの名前 (ラジオボタンではない) を選択します。

    イメージ: Redis OSS (クラスターモードが無効) クラスターのプライマリエンドポイント

    Redis OSS (クラスターモードが無効) クラスターのプライマリエンドポイントとリーダーエンドポイント

    クラスターに 1 つのみのノードがある場合、プライマリエンドポイントはないため、次のステップに進むことができます。

  4. Redis OSS (クラスターモードが無効) クラスターにレプリカノードがある場合は、クラスターの名前を選択し、Nodes タブを選択することで、クラスターのレプリカノードエンドポイントを見つけることができます。

    ノードの画面では、クラスター内のプライマリとレプリカの各ノードがそのエンドポイントと共に表示されます。

    イメージ: Redis OSS (クラスターモードが無効) クラスターのノードエンドポイント

    Redis OSS (クラスターモードが無効) クラスターのノードエンドポイント

  5. エンドポイントをクリップボードにコピーするには:

    1. 一度に 1 つのみ、コピーするエンドポイントを見つけます。

    2. エンドポイントアドレスのすぐ前にあるコピーアイコンを選択します。

    エンドポイントがクリップボードにコピーされます。エンドポイントを使用してノードに接続する方法については、「ノードに接続する」を参照してください。

Redis OSS (クラスターモードが無効) のプライマリエンドポイントは次のようになります。転送時の暗号化が有効かどうかによって違いがあります。

転送時の暗号化が無効

clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379

転送時の暗号化が有効

master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port master.ncit.ameaqx.use1.cache.amazonaws.com:6379

エンドポイントを見つける方法の詳細については、実行中のエンジンとクラスターの該当するトピックを参照してください。

これで、必要なエンドポイントがわかったので、EC2 インスタンスにログインし、クラスターまたはレプリケーショングループに接続できます。次の例では、redis-cli ユーティリティを使用して、クラスターに接続します。redis-cli の最新バージョンでは、暗号化/認証が有効なクラスターを接続するための SSL/TLS もサポートしています。

次の例では、Amazon Linux および Amazon Linux 2 を実行している Amazon EC2 インスタンスを使用しています。他の Linux ディストリビューションでの redis-cli のインストールとコンパイルの詳細については、ご使用のオペレーティングシステムのドキュメントを参照してください。

注記

このプロセスでは、予期しない使用のみを対象として、redis-cli ユーティリティを使用した接続のテストをカバーしています。サポートされている Redis OSS クライアントのリストについては、Redis OSS ドキュメント を参照してください。で AWS SDKs ElastiCache「」を参照してくださいElastiCache および AWS SDK の使用開始

クラスターモードが無効な非暗号化クラスターへの接続

  1. 次のコマンドを実行してクラスターに接続し、[primary-endpoint][ポート番号] をクラスターのエンドポイントとポート番号に置き換えます。(Redis OSS のデフォルトポートは 6379 です)。

    src/redis-cli -h primary-endpoint -p port number

    Redis OSS コマンドプロンプトの結果は次のようになります。

    primary-endpoint:port number
  2. Redis OSS コマンドを実行できるようになりました。

    set x Hello OK get x "Hello"

クラスターモードが有効の非暗号化クラスターへの接続

  1. 次のコマンドを実行してクラスターに接続し、[configuration-endpoint][ポート番号] をクラスターのエンドポイントとポート番号に置き換えます。(Redis OSS のデフォルトポートは 6379 です)。

    src/redis-cli -h configuration-endpoint -c -p port number
    注記

    上記のコマンドで、-c オプションを指定すると、-ASK および -MOVED リダイレクトが続くクラスターモードが有効になります。

    Redis OSS コマンドプロンプトの結果は次のようになります。

    configuration-endpoint:port number
  2. Redis OSS コマンドを実行できるようになりました。リダイレクトは、-c オプションを使用して有効にしたために発生します。リダイレクトが有効でない場合、このコマンドは MOVED エラーを返します。MOVED エラーの詳細については、「Redis OSS クラスター仕様」を参照してください。

    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"

暗号化/認証が有効なクラスターへの接続

デフォルトでは、redis-cli は Redis OSS に接続するときに暗号化されていない TCP 接続を使用します。オプション BUILD_TLS=yes により、前の redis-cli をダウンロードしてセットアップするセクションで示されたように、redis-cli コンパイル時に SSL/TLS を有効にします。AUTH の有効化はオプションです。ただし、AUTH を有効にするために、転送時の暗号化を有効にする必要があります。暗号化と認証の詳細については、 ElastiCache 「」を参照してくださいElastiCache 転送時の暗号化 (TLS)

注記

--tls redis-cli を用いたオプションを使用して、クラスターモードが有効および無効の両方の暗号化されたクラスターに接続できます。クラスターに AUTH トークンが設定されている場合は、オプション -a を使用して AUTH パスワードを指定します。

以下の例では、[cluster-endpoint] と [ポート番号] をクラスターのエンドポイントとポート番号に置き換えてください。(Redis OSS のデフォルトポートは 6379 です)。

クラスターモードが無効の暗号化されたクラスターに接続する

次の例では、暗号化および認証が有効のクラスターに接続します。

src/redis-cli -h cluster-endpoint --tls -a your-password -p port number

次の例では、暗号化のみが有効なクラスターに接続します。

src/redis-cli -h cluster-endpoint --tls -p port number

クラスターモードが有効の暗号化されたクラスターへの接続

次の例では、暗号化および認証が有効のクラスターに接続します。

src/redis-cli -c -h cluster-endpoint --tls -a your-password -p port number

次の例では、暗号化のみが有効なクラスターに接続します。

src/redis-cli -c -h cluster-endpoint --tls -p port number

クラスターに接続したら、暗号化されていないクラスターに対して前述の例に示すように Redis OSS コマンドを実行できます。

Redis-cli の代替

クラスターがクラスターモードが有効ではなく、短いテストのためにクラスターに接続する必要があるが、redis-cli コンパイルを行わない場合、telnet または openssl を使用できます。以下のコマンド例では、[cluster-endpoint] と [ポート番号] をクラスターのエンドポイントとポート番号に置き換えてください。(Redis OSS のデフォルトポートは 6379 です)。

次の例では、暗号化および/または認証が有効のクラスターモードが無効のクラスターに接続します。

openssl s_client -connect cluster-endpoint:port number

クラスターにパスワードが設定されている場合は、まずクラスターに接続します。接続後、次のコマンドを使用してクラスターを認証してから、Enter キーを押します。次の例では、[your-password] をクラスターのパスワードに置き換えます。

Auth your-password

次の例では、暗号化または認証が有効ではないクラスターモードが無効のクラスターに接続します。

telnet cluster-endpoint port number

Redis OSS CLI を使用して EC2 Windows インスタンスから Redis OSS クラスターに接続するには、redis-cli パッケージをダウンロードし、redis-cli.exe を使用して EC2 Windows インスタンスから Redis OSS クラスターに接続する必要があります。

次の例では、redis-cli ユーティリティを使用して、暗号化が有効ではなく、Redis OSS を実行しているクラスターに接続します。Redis OSS と使用可能な Redis OSS コマンドの詳細については、Redis OSS ウェブサイトの「Redis OSS コマンド」を参照してください。

redis-cli を使用して暗号化が有効になっていない Redis OSS クラスターに接続するには
  1. 選択した接続ユーティリティを使用して、Amazon EC2 インスタンスに接続します。Amazon EC2 インスタンスに接続する方法については、「Amazon EC2 入門ガイド」を参照してください。

  2. インターネットブラウザhttps://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zipでリンクをコピーして貼り付け、 で利用可能なリリースから Redis OSS クライアントの zip ファイルをダウンロードします。 GitHub https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504

    zip ファイルを目的のフォルダ/パスに展開します。

    コマンドプロンプトを開き、Redis OSS ディレクトリに変更して、コマンド を実行しますc:\Redis>redis-cli -h Redis_Cluster_Endpoint -p 6379

    例:

    c:\Redis>redis-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
  3. Redis OSS コマンドを実行します。

    これでクラスターに接続され、次のような Redis OSS コマンドを実行できます。

    set a "hello" // Set key "a" with a string value and no expiration OK get a // Get value for key "a" "hello" get b // Get value for key "b" results in miss (nil) set b "Good-bye" EX 5 // Set key "b" with a string value and a 5 second expiration "Good-bye" get b // Get value for key "b" "Good-bye" // wait >= 5 seconds get b (nil) // key has expired, nothing returned quit // Exit from redis-cli