인스턴스 및 노드 사양

이 페이지에서는 Memorystore for Valkey 인스턴스의 인스턴스 및 노드 사양을 설명합니다. 인스턴스를 만드는 방법은 인스턴스 만들기를 참고하세요.

노드 유형 선택

인스턴스의 노드는 모두 선택한 동일한 노드 유형을 사용합니다. 인스턴스에 가장 적합한 노드 유형은 가격, 성능, 키스페이스 용량 요구사항에 따라 다릅니다.

shared-core-nano 노드 유형은 소규모 워크로드용입니다. 이 노드 유형은 가변 성능을 제공하며 SLA가 없으므로 프로덕션 워크로드에는 적합하지 않습니다.

standard-small 노드 유형을 사용하면 작은 인스턴스를 프로비저닝할 수 있으며 다른 노드 유형보다 잠재적으로 더 낮은 비용으로 인스턴스를 작은 단위로 확장할 수 있습니다. standard-small는 총 vCPU 수가 더 많은 노드에 키 스페이스를 분산하는 이점도 제공합니다. 작은 노드의 총 키스페이스 용량이 데이터 요구사항을 충족하는 한 highmem-medium에 비해 가격 대비 성능이 개선됩니다.

highmem-medium에서 제공하는 것보다 더 많은 인스턴스 용량이 필요한 경우에만 highmem-xlarge 노드 유형을 선택하는 것이 좋습니다. highmem-xlarge 노드 유형은 크기가 highmem-medium 유형보다 4배 더 크지만 vCPU가 더 큰 노드에 추가(수직 확장)될 때 Valkey 7.2 성능이 비례하여 확장되지 않으므로 성능이 4배 더 향상되지 않습니다. 대신 가격 성능을 개선하려면 인스턴스에 노드를 더 추가하여 확장해야 합니다.

노드 유형 사양

노드 용량과 특성은 사용 가능한 네 가지 노드 유형 중 어떤 유형을 선택하는지에 따라 달라집니다.

키스페이스 용량 및 예약된 오버헤드

노드 유형 기본 쓰기 가능 키 스페이스 용량 총 노드 용량
shared-core-nano 1.12GB 1.4GB
standard-small 5.2GB 6.5GB
highmem-medium 10.4GB 13GB
highmem-xlarge 46.4GB 58GB

Memorystore는 메모리 부족(OOM) 오류를 방지하기 위해 인스턴스 용량의 일부를 자동으로 따로 설정합니다. 따라서 키를 원활하게 읽고 쓸 수 있습니다. 메모리 한도 및 스토리지 세부정보는 다음과 같습니다.

  • 스토리지 맞춤설정: 기본 설정을 사용하는 것이 좋지만 maxmemory 구성을 사용하여 예약된 스토리지의 양을 조정할 수 있습니다. maxmemory에 관한 자세한 내용은 지원되는 인스턴스 구성을 참고하세요.

  • 얼마나 많은 스토리지를 사용할 수 있나요? 이전 표의 기본 쓰기 가능 키스페이스 용량 열을 참고하세요. 키에 사용할 수 있는 저장용량이 기본적으로 표시됩니다.

  • 스토리지 최대화 가능한 최대 스토리지를 원하는 경우 maxmemory 구성을 100%로 설정하면 총 노드 용량 열에 스토리지 한도가 표시됩니다. 하지만 기본 설정보다 높은 maxmemory 값을 선택하지 않는 것이 좋습니다.

  • shared-core-nano 노드 유형에는 1.12GB의 엄격한 제한이 있으며 maxmemory 구성을 사용하여 변경할 수 없습니다.

노드 특성

노드 유형 vCPU 수 SLA 제공 여부 최대 클라이언트 클라이언트의 최대 메모리(maxmemory-clients 구성)
shared-core-nano 0.5 아니요 5,000 12%
standard-small 2 16,000(기본값). 최댓값은 32,000입니다. 7%
highmem-medium 2 32,000(기본값). 최댓값은 64,000입니다. 7%
highmem-xlarge 8 64,000 4%

인스턴스에 선택한 가상 CPU (vCPU)가 많을수록 성능이 향상됩니다. 인스턴스에서 리소스 집약적인 워크로드를 실행하는 경우 vCPU가 더 높은 노드 유형 (예: highmem-xlarge)을 선택합니다. 인스턴스에서 요구사항이 낮은 작업을 실행하는 경우 vCPU가 더 낮은 노드 유형 (예: highmem-medium)을 선택합니다.

인스턴스 확장

Memorystore for Valkey 인스턴스를 만드는 과정에서 인스턴스의 노드 유형을 선택하고 인스턴스의 샤드 수를 지정합니다. 인스턴스를 만든 후 인스턴스의 용량 요구사항이 변경되면 다음과 같은 방식으로 인스턴스를 확장해야 할 수 있습니다.

  • 인스턴스의 샤드 수를 변경합니다. 이를 수평 확장이라고 합니다. 다음 작업 중 하나를 수행하여 인스턴스를 수평으로 확장합니다.
    • 인스턴스에 샤드를 추가합니다. 이는 인스턴스를 확장하는 것입니다.
    • 인스턴스에서 샤드를 삭제합니다. 이는 인스턴스를 확장하는 것입니다.
  • 인스턴스의 노드 유형을 변경합니다. 이를 수직 확장이라고 합니다. 인스턴스를 수직으로 확장하려면 인스턴스의 노드 유형을 다음 노드 유형 중 하나로 변경하세요.
    • 더 큰 노드 유형으로 변경합니다. 인스턴스를 확장하는 것입니다.
    • 더 작은 노드 유형으로 변경합니다. 이는 인스턴스를 축소하는 것입니다.

인스턴스 사양

이 섹션에서는 인스턴스 유형, 노드 유형, 복제본 수를 고려하여 최소 및 최대 인스턴스 용량을 보여줍니다.

최소 쓰기 가능 용량

쓰기 가능 용량은 키를 쓰는 데 사용할 수 있는 스토리지 양입니다. 인스턴스 노드 하나의 크기와 같습니다. 따라서 노드 유형에 따라 최소 쓰기 가능 용량은 1.4GB, 6.5GB, 13GB 또는 58GB입니다. 최소 쓰기 가능 용량은 선택한 복제본 수의 영향을 받지 않습니다.

최대 쓰기 가능 용량

이 섹션에는 클러스터 모드 사용 설정 및 클러스터 모드 사용 중지 인스턴스의 최대 쓰기 가능 용량이 나와 있습니다.

클러스터 모드 사용 설정 인스턴스

다음 표에는 노드당 복제본이 0~5개인 클러스터 모드 지원 인스턴스의 최대 쓰기 가능 용량이 나와 있습니다.

노드 유형 및 크기 인스턴스 유형이 기본 노드 250개 및 노드당 복제본 0개인 경우 최대 용량 인스턴스 유형이 기본 노드 125개 및 노드당 복제본 1개인 경우 최대 용량 인스턴스 유형이 기본 노드 83개 및 노드당 복제본 2개인 경우 최대 용량 인스턴스 유형이 기본 노드 62개 및 노드당 복제본 3개인 경우 최대 용량 인스턴스 유형이 기본 노드 50개 및 노드당 복제본 4개인 경우 최대 용량 인스턴스 유형이 기본 노드 41개 및 노드당 복제본 5개인 경우 최대 용량
shared-core-nano - 1.4GB 350GB 175GB 116.2GB 86.8 GB 70 GB 57.4 GB
standard-small - 6.5GB 1,625GB 812.5GB 539.5GB 403 GB 325 GB 266.5 GB
highmem-medium - 13GB 3,250GB 1,625GB 1,079GB 806 GB 650 GB 533 GB
highmem-xlarge - 58GB 14,500GB 7,250GB 4,814GB 3,596 GB 2,900GB 2,378 GB

클러스터 모드 사용 중지 인스턴스

다음 표에는 클러스터 모드 사용 중지 인스턴스의 최대 쓰기 가능 용량이 나와 있습니다.

노드 유형 및 크기 최대 인원
shared-core-nano - 1.4GB 1.12GB
standard-small - 6.5GB 5.2GB
highmem-medium - 13GB 10.4GB
highmem-xlarge - 58GB 46.4GB

성능

us-central1 리전에서 OSS memtier 벤치마킹 도구를 사용하면 마이크로초 지연 시간과 1KiB 데이터 크기로 vCPU 노드 2개(standard-smallhighmem-medium)당 초당 120,000~130,000개의 작업이 생성되었습니다.

프로덕션 트래픽과 유사한 실제 워크로드 또는 합성 워크로드로 자체 벤치마킹을 실행하는 것이 좋습니다. 또한 워크로드 급증이나 예기치 않은 트래픽에 대비해 버퍼(또는 '여유 공간')를 고려해 인스턴스 크기를 조정하는 것이 좋습니다. 자세한 내용은 권장사항을 참고하세요.

클러스터 모드가 사용 설정된 인스턴스 엔드포인트

이 섹션에서는 클러스터 모드 사용 설정 인스턴스에 있는 검색 및 데이터 엔드포인트에 대해 설명합니다.

탐색 엔드포인트

각 인스턴스에는 클라이언트가 연결하는 검색 엔드포인트가 있습니다. IP 주소와 포트 번호의 조합입니다. 인스턴스의 검색 엔드포인트를 찾는 방법은 인스턴스의 검색 엔드포인트 보기를 참고하세요.

클라이언트가 이를 노드 검색에도 사용합니다. 클라이언트는 검색 엔드포인트를 사용하여 인스턴스의 노드 토폴로지를 검색하여 서드 파티 클라이언트를 부트스트랩하고 안정적인 상태로 업데이트된 상태로 유지합니다. 결과 노드 토폴로지는 서드 파티 클라이언트가 메모리에 캐시할 노드 엔드포인트(IP 및 포트 조합)를 제공합니다. 그러면 다른 애플리케이션 변경 없이 클라이언트에서 자동으로 업데이트와 리디렉션이 처리됩니다. 클라이언트 검색 동작 및 권장사항에 관한 자세한 내용은 클라이언트 검색을 참고하세요.

검색 엔드포인트는 노드 토폴로지를 제공하기 위해 여러 영역에 걸쳐 여러 노드로 지원되므로 가용성이 높습니다. 엔드포인트를 통한 토폴로지 제공은 백엔드 노드 장애나 노드 업데이트가 발생해도 안정적입니다.

검색 엔드포인트의 동작은 다음과 같습니다.

  1. 인스턴스의 검색 엔드포인트는 유지보수 중에도 또는 수평 축소, 수평 확장, 복제본 수 변경과 같은 다른 작업을 하는 경우에도 인스턴스의 수명 주기 동안 변경되지 않습니다.

  2. 노드 엔드포인트는 변경될 수 있으며, 시간이 지나면서 노드가 추가 및 삭제됨에 따라 재활용할 수 있습니다. 이상적으로는 토폴로지 새로고침 및 리디렉션을 통해 이러한 변경사항을 자동으로 처리할 수 있는 서드 파티 클라이언트를 사용하는 것이 좋습니다. 클라이언트 라이브러리 코드 샘플에서 타사 클라이언트 예시를 확인할 수 있습니다. 애플리케이션에 종속 항목이 없거나 특정 인스턴스에서 노드 엔드포인트가 변경되지 않을 것이라는 가정을 하지 않아야 합니다.

데이터 엔드포인트

각 인스턴스에는 Memorystore for Valkey가 클라이언트 연결에 사용하는 Private Service Connect 데이터 엔드포인트도 있습니다. 이 엔드포인트에 직접 연결하지 마세요. 대신 Memorystore for Valkey는 이 엔드포인트를 사용하여 클라이언트를 인스턴스의 노드에 연결합니다.

클러스터 모드 사용 중지됨의 인스턴스 엔드포인트

이 섹션에서는 클러스터 모드가 사용 중지된 각 인스턴스에 있는 기본 및 리더 엔드포인트에 대해 설명합니다.

기본 엔드포인트

기본 엔드포인트는 애플리케이션이 연결하는 대상 IP 주소입니다. 이 엔드포인트는 트래픽을 현재 기본 노드로 전달합니다. 기본 엔드포인트에 대한 연결은 쓰기 쿼리와 읽기 쿼리를 모두 전송할 수 있습니다.

기본 엔드포인트의 동작은 다음과 같습니다.

  1. 기본 엔드포인트 IP 주소는 인스턴스의 수명 주기 동안 변경되지 않습니다. 기본 노드에 오류가 발생하거나 자동 장애 조치가 진행되면 Valkey용 Memorystore가 IP 주소를 자동으로 조정합니다. 클라이언트는 엔드포인트와 관련해 변경할 필요가 없습니다. 하지만 예기치 않은 이벤트로 인해 연결이 실패하면 클라이언트는 연결을 다시 설정하려고 시도합니다.
  2. 기본 노드가 복제본이 되면 이 복제본 노드에 대한 연결이 종료되고 Valkey용 Memorystore가 자동 장애 조치를 통해 새 연결을 새 기본 노드로 리디렉션합니다. 클라이언트는 지수 백오프를 사용하여 연결을 다시 시도해야 합니다.
  3. 인스턴스에 복제본이 1개 있으면 기본 엔드포인트의 가용성이 판독기 엔드포인트보다 높습니다. 인스턴스에 프로비저닝된 복제본이 2개인 경우 기본 엔드포인트와 리더 엔드포인트 모두 고가용성을 갖습니다.

리더 엔드포인트

리더 엔드포인트는 애플리케이션이 연결하는 대상 IP 주소입니다. 이 엔드포인트는 인스턴스의 복제본에서 연결을 고르게 부하 분산합니다. 읽기 복제본에 대한 연결은 읽기 쿼리를 전송할 수 있지만 쓰기 쿼리는 전송할 수 없습니다. 리더 엔드포인트는 처리량을 늘리고 기본 노드로부터 트래픽을 격리합니다. 위험한 스크립트 및 오프라인 작업과 같이 운영 액세스가 필요한 애플리케이션의 경우 리더 엔드포인트를 사용하여 기본 노드의 트래픽을 격리하는 것이 좋습니다.

리더 엔드포인트의 동작은 다음과 같습니다.

  1. 인스턴스에 프로비저닝된 읽기 복제본이 없는 경우에도 Memorystore for Valkey는 읽기 복제본을 동적으로 추가할 수 있도록 리더 엔드포인트 IP 주소를 프로비저닝합니다.
  2. 트래픽을 라우팅할 수 있는 읽기 복제본이 시스템에 없으면 리더 엔드포인트에 대한 연결이 종료됩니다. 하지만 리더 엔드포인트에 대한 연결을 기본 노드로 라우팅하지는 않습니다.
  3. 복제본 노드가 기본 노드가 되면 이 기본 노드에 대한 연결이 종료되고 Valkey용 Memorystore가 새 복제본 노드로 새 연결을 리디렉션합니다. 클라이언트는 지수 백오프를 사용하여 이러한 연결을 재시도합니다.

클러스터 모드 사용 중지 엔드포인트에 연결하는 동안 발생하는 일반적인 오류를 처리하는 방법을 알아보려면 클러스터 모드 사용 중지 시 오류 처리를 참고하세요.