이 페이지에서는 Memorystore for Redis Cluster 인스턴스의 클러스터 및 노드 사양을 설명합니다. 인스턴스를 만드는 방법은 인스턴스 만들기를 참조하세요.
노드 유형 선택
클러스터의 샤드는 모두 선택한 동일한 노드 유형을 사용합니다. 클러스터에 가장 적합한 노드 유형은 가격, 성능, 키스페이스 용량 요구사항에 따라 다릅니다.
redis-shared-core-nano 노드 유형은 소규모 워크로드에 적합합니다. 이 노드 유형은
가변 성능
을 제공하며 SLA가 없으므로 프로덕션 워크로드에는 적합하지 않습니다.
redis-standard-small 노드 유형을 사용하면 작은 클러스터를 프로비저닝할 수 있으며 다른 노드 유형보다 잠재적으로 더 낮은 비용으로 클러스터를 작은 단위로 확장할 수 있습니다. redis-standard-small 은 총 vCPU 수가 더 많은 노드에 키스페이스를 분산하는 이점도 제공합니다. 작은 노드의 총 키스페이스 용량이 데이터 요구사항을 충족하는 한 redis-highmem-medium에 비해 가격 대비 성능이 개선됩니다.
메모리에 비해 더 높은 처리 능력이 필요한 워크로드가 있는 경우 redis-highcpu-medium 노드 유형을 선택하세요. redis-highmem-medium에서 제공하는 것보다 더 많은 용량이 필요한 경우 redis-standard-large, redis-highmem-xlarge 또는 redis-highmem-2xlarge 노드 유형을 선택하는 것이 좋습니다. 점점 더 큰 노드에 vCPU를 추가 (수직 확장)하면 Redis 성능이 비례하여 확장되지 않을 수 있습니다. 대신 가격 대비 성능을 개선하려면 클러스터에 노드를 더 추가하여 확장하는 것이 좋습니다.
노드 유형 사양
노드 용량 및 특성은 선택한 노드 유형에 따라 다릅니다.
키스페이스 용량 및 예약된 오버헤드
| 노드 유형 | 기본 쓰기 가능 키스페이스 용량 | 총 노드 용량 |
|---|---|---|
| redis-shared-core-nano | 1.12 GB | 1.4 GB |
| redis-standard-small | 5.2 GB | 6.5 GB |
| redis-highmem-medium | 10.4 GB | 13 GB |
| redis-highcpu-medium | 10.4 GB | 13 GB |
| redis-standard-large | 20.8 GB | 26 GB |
| redis-highmem-xlarge | 46.4 GB | 58 GB |
| redis-highmem-2xlarge | 88 GB | 110 GB |
Memorystore는 메모리 부족 (OOM) 오류를 방지하기 위해 인스턴스 용량의 일부를 자동으로 따로 설정합니다. 따라서 키를 원활하게 읽고 쓸 수 있습니다. 메모리 한도 및 스토리지 세부정보는 다음과 같습니다.
스토리지 맞춤설정: 기본 설정을 사용하는 것이 좋지만
maxmemory구성을 사용하여 예약된 스토리지 용량을 조정할 수 있습니다.maxmemory에 대한 자세한 내용은 지원되는 인스턴스 구성을 참조하세요.얼마나 많은 스토리지를 사용할 수 있나요? 이전 표의 기본 쓰기 가능 키스페이스 용량 열을 참조하세요. 여기에는 기본적으로 키에 사용할 수 있는 스토리지 용량이 표시됩니다.
스토리지 최대화 가능한 최대 스토리지를 원하는 경우 총 노드 용량 열에
maxmemory구성을 100%로 설정했을 때의 스토리지 한도가 표시됩니다. 하지만 기본 설정보다 높은maxmemory값을 선택하지 않는 것이 좋습니다.redis-shared-core-nano노드 유형에는 1.12GB의 엄격한 제한이 있으며maxmemory구성을 사용하여 변경할 수 없습니다.
노드 특성
| 노드 유형 | vCPU 수 | SLA 제공 여부 | 기본 클라이언트 연결 수 | 최대 클라이언트 연결 수 | 클라이언트의 최대 메모리 (maxmemory-clients 구성) |
|---|---|---|---|---|---|
| redis-shared-core-nano | 0.5 | 아니요 | 5,000 | 5,000 | 12% |
| redis-standard-small | 2 | 예 | 16,000 | 32,000 | 7% |
| redis-highmem-medium | 2 | 예 | 32,000 | 64,000 | 7% |
| redis-highcpu-medium | 8 | 예 | 32,000 | 64,000 | 7% |
| redis-standard-large | 8 | 예 | 32,000 | 64,000 | 7% |
| redis-highmem-xlarge | 8 | 예 | 64,000 | 64,000 | 4% |
| redis-highmem-2xlarge | 16 | 예 | 64,000 | 64,000 | 4% |
클러스터에 선택하는 가상 CPU (vCPU)가 많을수록 성능이 향상됩니다. 클러스터에서 리소스 집약적인 워크로드를 실행하는 경우 vCPU가 더 많은 노드 유형 (예: redis-highmem-xlarge)을 선택합니다. 클러스터에서 요구사항이 낮은 작업을 실행하는 경우 vCPU가 더 낮은 노드 유형(예: redis-highmem-medium)을 선택합니다.
인스턴스 확장
Memorystore for Redis Cluster 인스턴스를 만드는 과정에서 인스턴스의 노드 유형을 선택하고 인스턴스의 샤드 수를 지정합니다. 인스턴스를 만든 후 인스턴스의 용량 요구사항이 변경되면 다음과 같은 방법으로 인스턴스를 확장해야 할 수 있습니다.
- 인스턴스의 샤드 수를 변경합니다. 이를 수평 확장 이라고 합니다.
다음 작업 중 하나를 수행하여 인스턴스를 수평으로 확장합니다.
- 인스턴스에 샤드를 추가합니다. 이를 인스턴스 수평 확장 이라고 합니다.
- 인스턴스에서 샤드를 삭제합니다. 이를 인스턴스 수평 축소 라고 합니다.
- 인스턴스의 노드 유형을 변경합니다. 이를 수직 확장 이라고 합니다. 인스턴스를 수직으로 확장하려면 인스턴스의 노드 유형을 다음 노드 유형 중 하나로 변경합니다.
- 더 큰 노드 유형으로 변경합니다. 이를 인스턴스 수직 확장 이라고 합니다.
- 더 작은 노드 유형으로 변경합니다. 이를 인스턴스 수직 축소 라고 합니다.
클러스터 사양
이 섹션에서는 클러스터 유형, 노드 유형, 복제본 수를 고려하여 최소 및 최대 클러스터 용량을 보여줍니다.
최소 쓰기 가능 용량
쓰기 가능 용량은 키를 쓰는 데 사용할 수 있는 스토리지 용량입니다. 이는 인스턴스 노드 하나의 크기와 같습니다. 따라서 노드 유형에 따라 최소 쓰기 가능 용량은 1.4GB에서 110GB 사이입니다. 최소 쓰기 가능 용량은 선택한 복제본 수에 영향을 받지 않습니다.
최대 쓰기 가능 용량
| 노드 유형 및 크기 | 클러스터 유형이 기본 노드 250개 및 노드당 복제본 0개인 경우 최대 용량 | 클러스터 유형이 기본 노드 125개 및 노드당 복제본 1개인 경우 최대 용량 | 클러스터 유형이 기본 노드 83개 및 노드당 복제본 2개인 경우 최대 용량 | 클러스터 유형이 기본 노드 62개 및 노드당 복제본 3개인 경우 최대 용량 | 클러스터 유형이 기본 노드 50개 및 노드당 복제본 4개인 경우 최대 용량 | 클러스터 유형이 기본 노드 41개 및 노드당 복제본 5개인 경우 최대 용량 |
|---|---|---|---|---|---|---|
| redis-shared-core-nano - 1.4 GB | 350 GB | 175GB | 116.2 GB | 86.8 GB | 70 GB | 57.4 GB |
| redis-standard-small - 6.5 GB | 1,625 GB | 812.5GB | 539.5 GB | 403 GB | 325 GB | 266.5 GB |
| redis-highmem-medium - 13 GB | 3,250 GB | 1,625GB | 1,079 GB | 806 GB | 650 GB | 533 GB |
| redis-highcpu-medium - 13 GB | 3,250 GB | 1,625GB | 1,079 GB | 806 GB | 650 GB | 533 GB |
| redis-standard-large - 26 GB | 6,500 GB | 3,250 GB | 2,158 GB | 1,612 GB | 1,300 GB | 1,066 GB |
| redis-highmem-xlarge - 58 GB | 14,500 GB | 7,250GB | 4,814 GB | 3,596 GB | 2,900 GB | 2,378 GB |
| redis-highmem-2xlarge - 110 GB | 27,500 GB | 13,750 GB | 9,130 GB | 6,820 GB | 5,500 GB | 4,510 GB |
성능
us-central1 리전에서 OSS memtier 벤치마킹 도구를 사용하면 마이크로초 지연 시간과 1KiB 데이터 크기로 vCPU 노드 2개 (redis-standard-small 및
redis-highmem-medium)당 초당 120,000~130,000
개의 작업이 생성되었습니다.
프로덕션 트래픽과 유사한 실제 워크로드 또는 합성 워크로드로 자체 벤치마킹을 실행하는 것이 좋습니다. 또한 워크로드 급증이나 예기치 않은 트래픽에 대비해 버퍼 (또는 '여유 공간')를 고려해 클러스터 크기를 조정하는 것이 좋습니다. 자세한 내용은 Memorystore for Redis Cluster 권장사항을 참조하세요.
클러스터 엔드포인트
이 섹션에서는 각 인스턴스에 있는 2개의 엔드포인트에 대해 설명합니다.
탐색 엔드포인트
각 인스턴스에는 클라이언트가 연결하는 탐색 엔드포인트가 있습니다. 이는 IP 주소와 포트 번호의 조합입니다. 클러스터의 탐색 엔드포인트를 찾는 방법은 클러스터의 탐색 엔드포인트 보기를 참조하세요.
클라이언트가 이를 노드 검색에도 사용합니다. 클라이언트는 탐색 엔드포인트를 사용하여 인스턴스의 클러스터 토폴로지를 검색하여 OSS Redis 클러스터 클라이언트를 부트스트랩하고 안정적인 상태로 업데이트된 상태로 유지합니다. 결과 클러스터 토폴로지는 Redis 클러스터 클라이언트가 인메모리에 캐시할 Redis 노드 엔드포인트 (IP 및 포트 조합)를 제공합니다. 그러면 다른 애플리케이션 변경 없이 클라이언트에서 자동으로 업데이트와 리디렉션이 처리됩니다. 클라이언트 검색 동작 및 권장사항에 대한 자세한 내용은 클라이언트 검색을 참조하세요.
탐색 엔드포인트는 클러스터 토폴로지를 제공하기 위해 여러 영역에 걸쳐 있는 여러 Redis 노드에서 지원되므로 가용성이 높습니다. 백엔드 노드 오류 또는 노드 업데이트가 발생하더라도 엔드포인트를 통한 토폴로지 제공은 안정적입니다.
탐색 엔드포인트의 동작은 다음과 같습니다.
클러스터의 탐색 엔드포인트는 유지보수 중에도 또는 수평 축소, 수평 확장, 복제본 수 변경과 같은 다른 작업을 하는 경우에도 클러스터 인스턴스의 수명 주기 동안 변경되지 않습니다.
Redis 노드 엔드포인트는 변경될 수 있으며, 시간이 지나면서 노드가 추가 및 삭제됨에 따라 재활용할 수 있습니다. 이상적으로는 토폴로지 새로고침 및 리디렉션을 통해 이러한 변경사항을 자동으로 처리할 수 있는 Redis 클러스터 클라이언트를 사용하는 것이 좋습니다. 클라이언트 라이브러리 코드 샘플에서 Redis 클러스터 클라이언트 예시를 확인할 수 있습니다. 애플리케이션에 종속 항목이 없거나 특정 클러스터에서 노드 엔드포인트가 변경되지 않을 것이라는 가정을 하지 않아야 합니다.
데이터 엔드포인트
탐색 엔드포인트 외에도 각 클러스터에는 데이터 엔드포인트가 있습니다. 이 엔드포인트는 Memorystore for Redis Cluster에서 클라이언트를 클러스터의 노드에 연결하는 데 사용하도록 예약되어 있습니다. 따라서 이 엔드포인트에 직접 연결하지 마세요.