Memorystore for Redis Cluster インスタンスに接続する

このページでは、Memorystore for Redis Cluster インスタンスに接続する方法について説明します。

クライアントのサポート

Memorystore for Redis Cluster は独自のクライアント ライブラリを備えていませんが、Redis プロトコルをサポートする既存のサードパーティ クライアント ライブラリをサポートします。クライアントのリストの例は、Redis クライアント ページで確認できます。

Redis-py クライアントのベスト プラクティス

redis-py Python クライアントを使用して Memorystore for Redis Cluster インスタンスに接続するには、Redis Cluster を宣言するときに skip_full_coverage_check=True を追加する必要があります。

from rediscluster import RedisCluster
endpoints = [{"host": "IPADDRESS", "port": "6379"}]

rdb = RedisCluster(
    startup_nodes=endpoints,
    skip_full_coverage_check=True, # Required for Memorystore
    decode_responses = True)

print(rdb.set('PYTHON', 'CLUSTER'))
print(rdb.get('PYTHON'))
print(rdb.unlink('PYTHON'))

ファイアウォールのポートを許可リストに登録する

ファイアウォールで正しいポートを許可リストに登録しないと、インスタンスで接続エラーが発生する可能性があります。ポートの許可リストへの登録の詳細については、問題のトラブルシューティングをご覧ください。

リージョン間アクセス

Memorystore インスタンスが配置されているリージョンとは異なるリージョンにあるクライアントから、Memorystore for Redis Cluster インスタンスにアクセスできます。

クラスタの検出エンドポイントを表示する

Memorystore クラスタの検出エンドポイントを表示するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールの [Memorystore for Redis Cluster] ページに移動します。

    Memorystore for Redis Cluster

  2. クラスタ ID をクリックします。

  3. [このインスタンスに接続] セクションで、[検出エンドポイント] の横にある IP アドレスとポート番号をメモします。この 2 つの値を組み合わせて使用すると、クラスタの検出エンドポイントになります。

gcloud

クラスタの検出エンドポイントを表示するには、インスタンスの詳細情報を表示するセクションの説明に従って、describe gcloud CLI を実行します。

出力例を以下に示します。

authorizationMode: AUTH_MODE_DISABLED
createTime: '2023-08-04T17:49:07.988918793Z'
discoveryEndpoints:
- address: 10.142.0.13
  port: 6379
  pscConfig:
  - network: projects/my-project-364018/global/networks/default
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
pscConnections:
- address: 10.142.0.13
  forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/forwardingRules/sca-auto-fr-5bc46f69-ec80-4c5a-8971-ce267a4d8ddd
  network: projects/my-project-364018/global/networks/default
  projectId: my-project-364018
  pscConnectionId: '25734306048376845'
- address: 10.142.0.10
  forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/.
  forwardingRules/sca-auto-fr-817b64c5-85ac-48d0-82e3-c6fa99b4e67d
  network: projects/my-project-364018/global/networks/default
  projectId: my-project-364018
  pscConnectionId: '25734306048376842'
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
tier: PERFORMANCE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: cddda5de-d91f-449b-8755-3a665430271a

discovery_endpoints: セクションに記載されているエンドポイントのアドレスとポート番号をメモします。これら 2 つの値を組み合わせて使用すると、クラスタの検出エンドポイントになります。

redis-cli を使用して Compute Engine VM から接続する

Memorystore インスタンスの承認済みネットワークを使用する任意の Compute Engine VM から Memorystore for Redis Cluster インスタンスに接続できます。

インスタンスに接続するには:

  1. Memorystore for Redis Cluster インスタンスの承認済みネットワークを使用する Linux Compute Engine VM がまだない場合は、Linux VM の作成に関するクイックスタートの手順に沿って作成し、接続します。

  2. Linux に Redis をインストールするの手順に沿って、redis-cli バージョン 6.0 以降を Compute Engine VM にインストールします。

  3. クラスタの検出エンドポイントを表示して、メモします。

  4. 次のコマンドを実行して、インスタンスの検出エンドポイントに接続します。

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    ここで

    • DISCOVERY_ENDPOINT_ADDRESSPORT_NUMBER は、前のステップでメモした値です。
  5. CLUSTER SHARDS コマンドを実行して、クラスタ トポロジを表示します。ノードの IP アドレスとポート番号のいずれかをメモします。

  6. 次のコマンドを実行して、目的のノードに接続します。

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
    

    以下を置き換えます。

    • NODE_IP_ADDRESS は、前のステップで確認したノードの IP アドレスです。
    • NODE_PORT は、前のステップで確認したノードのポート番号です。
  7. ノードに接続したら、次のようにいくつかの Redis コマンドを入力します。

    次のように入力します。

    PING
    

    結果:

    PONG
    

    入力

    SET HELLO WORLD
    

    結果:

    OK
    

    次のように入力します。

    GET HELLO
    

    結果:

    "WORLD"
    
  8. Redis ノードへの接続をテストしたら、Redis インスタンスへの接続に使用した Compute Engine VM を削除することを検討してください。そうすることで、Cloud 請求先アカウントへの課金を回避できます。

転送中の暗号化が有効になっているインスタンスに接続する

このセクションでは、転送中の暗号化が有効になっている Memorystore for Redis Cluster インスタンスに接続する方法の例を示します。

  1. 前のステップの Redis インスタンスと同じ承認済みネットワークを使用する Compute Engine VM がまだない場合は、これを作成してから、Linux VM を使用したクイックスタートに従って接続します。

    1. Linux に Redis をインストールするの手順に沿って、redis-cli バージョン 6.0 以降を Compute Engine VM にインストールします。
  2. クライアントに認証局をインストールするの手順に沿って、インスタンスの認証局を Linux VM にインストールします。

  3. クラスタの検出エンドポイントを表示して、メモします。

  4. 次のコマンドを実行して、インスタンスの検出エンドポイントに接続します。

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls  --cacert /tmp/server_ca.pem
    

    ここで

    • DISCOVERY_ENDPOINT_ADDRESSPORT_NUMBER は、前のステップでメモした値です。
  5. CLUSTER SHARDS コマンドを実行して、クラスタ トポロジを表示します。ノードの IP アドレスとポート番号のいずれかをメモします。

  6. 次のコマンドを実行して、目的のノードに接続します。

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls  --cacert /tmp/server_ca.pem
    

    以下を置き換えます。

    • NODE_IP_ADDRESS は、前のステップで確認したノードの IP アドレスです。
    • NODE_PORT は、前のステップで確認したノードのポート番号です。
  7. ノードに接続したら、次のようにいくつかの Redis コマンドを入力します。

    次のように入力します。

    PING
    

    結果:

    PONG