Redis용 Memorystore 클러스터 인스턴스에 연결

이 페이지에서는 Redis용 Memorystore 클러스터 인스턴스에 연결하는 방법을 설명합니다.

고객 지원

Memorystore for Redis 클러스터는 자체 클라이언트 라이브러리를 제공하지 않고 Redis 프로토콜을 지원하는 기존 타사 클라이언트 라이브러리를 지원합니다. 클라이언트 목록의 예는 Redis 클라이언트 페이지에서 확인할 수 있습니다.

Redis-py 클라이언트 권장사항

redis-py Python 클라이언트를 사용하여 Redis용 Memorystore 클러스터 인스턴스에 연결하려면 Redis 클러스터를 선언할 때 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 인스턴스가 있는 리전과 다른 리전에 있는 클라이언트에서 Redis용 Memorystore 클러스터 인스턴스에 액세스할 수 있습니다.

클러스터의 검색 엔드포인트 보기

Memorystore 클러스터의 검색 엔드포인트를 보려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Memorystore for Redis Cluster 페이지로 이동합니다.

    Memorystore for Redis Cluster

  2. 클러스터 ID를 클릭합니다.

  3. 이 인스턴스에 연결 섹션에서 탐색 엔드포인트 옆에 있는 IP 주소와 포트 번호를 기록해 둡니다. 이 두 값을 함께 사용하면 클러스터의 검색 엔드포인트가 됩니다.

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: 섹션에 나열된 엔드포인트 주소와 포트 번호를 기록해 둡니다. 이 두 값을 함께 사용하면 클러스터의 검색 엔드포인트가 됩니다.

redis-cli를 사용하여 Compute Engine VM에서 연결

Memorystore 인스턴스의 승인된 네트워크를 사용하는 모든 Compute Engine VM에서 Memorystore for Redis 클러스터 인스턴스에 연결할 수 있습니다.

인스턴스에 연결하려면 다음 단계를 따르세요.

  1. Memorystore for Redis 클러스터 인스턴스에 승인된 네트워크를 사용하는 Linux Compute Engine VM이 아직 없으면 VM을 만들고 빠른 시작: Linux VM 만들기를 따라 연결합니다.

  2. Linux에 Redis 설치의 안내에 따라 Compute Engine VM에 redis-cli 버전 6.0 이상을 설치합니다.

  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 Billing 계정에 비용이 청구되지 않습니다.

전송 중인 데이터 암호화가 사용 설정된 인스턴스에 연결

이 섹션에서는 전송 중인 데이터 암호화가 사용 설정된 Memorystore for Redis 클러스터 인스턴스에 연결하는 방법의 예시를 제공합니다.

  1. 이전 단계의 Redis 인스턴스와 동일한 승인된 네트워크를 사용하는 Compute Engine VM이 아직 없으면 Linux VM을 사용한 빠른 시작에 따라 VM을 만들고 연결합니다.

    1. Linux에 Redis 설치의 안내에 따라 Compute Engine VM에 redis-cli 버전 6.0 이상을 설치합니다.
  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