인스턴스 용량 확장 정보

이 페이지에서는 확장 중에 Memorystore for Valkey 인스턴스가 어떻게 작동하는지 설명합니다.

다음과 같은 방법으로 인스턴스 용량을 확장할 수 있습니다.

  • 인스턴스의 샤드 수를 변경할 수 있습니다. 이것이 수평 확장입니다. 다음 방법 중 하나로 인스턴스를 수평 확장할 수 있습니다.

    • 수평 확장: 인스턴스 용량을 늘려 인스턴스에 더 많은 메모리와 처리 성능을 제공하여 더 많은 데이터 또는 트래픽을 처리합니다. 인스턴스 용량은 인스턴스의 샤드 수에 따라 결정됩니다.

      인스턴스를 수평 확장하면 애플리케이션이 성능 저하 없이 증가된 수요를 처리할 수 있습니다. 인스턴스를 수평 확장하려면 인스턴스에 샤드를 추가합니다.

    • 수평 축소: 인스턴스의 용량을 줄여 처리 능력과 데이터를 저장하는 데 사용할 수 있는 메모리 양을 모두 줄입니다. 이는 애플리케이션의 데이터 수요가 감소하고 비용을 절감하기 위해 리소스 사용량을 줄여야 할 때 발생합니다. 인스턴스를 축소하려면 인스턴스의 샤드 수를 줄입니다.

  • 인스턴스의 노드 유형을 변경할 수 있습니다. 이것이 수직 확장입니다. 다음 방법 중 하나로 인스턴스를 수직 확장할 수 있습니다.

    • 수직 확장: 인스턴스의 용량을 늘립니다. 인스턴스 용량은 인스턴스의 노드 유형에 따라 결정됩니다. 인스턴스를 수직 확장하려면 노드 유형을 더 큰 노드 유형으로 변경합니다. 예를 들어 인스턴스를 standard-small 노드 유형에서 highmem-medium 노드 유형으로 확장합니다.
    • 축소: 인스턴스 용량을 줄입니다. 인스턴스를 축소하려면 노드 유형을 더 작은 노드 유형으로 변경합니다. 예를 들어 인스턴스를 highmem-medium 노드 유형에서 standard-small 노드 유형으로 축소합니다.

확장 영향

확장 작업 중에는 인스턴스의 가용성이 영향을 받지 않습니다. 하지만 인스턴스의 샤드 수를 변경하면 Memorystore for Valkey가 인스턴스의 키스페이스를 다시 분산합니다. 이 경우 확장 작업 중에 지연 시간이 늘어날 수 있습니다.

또한 노드 유형을 변경하여 인스턴스를 수직으로 확장하는 경우의 영향은 유지보수 작업에서 발생하는 영향과 비슷합니다.

오류 시나리오

확장 작업 중에 오류가 발생하면 다음 시나리오 중 하나가 원인일 수 있습니다.

  • 인스턴스의 샤드 수를 업데이트하려고 하지만 인스턴스의 shared-core-nano 노드 유형에 사용 가능한 메모리가 충분하지 않습니다.

    이 문제를 해결하려면 인스턴스를 수직 확장하거나 인스턴스 노드에서 메모리를 확보하면 됩니다. 메모리를 확보하려면 다음 단계를 따르세요.

    1. Memorystore for Valkey 인스턴스에 연결합니다.
    2. IP 주소 및 포트 번호를 포함하여 인스턴스에 대한 세부정보를 가져오려면 gcloud memorystore instances describe 명령어를 사용합니다.
    3. 인스턴스의 IP 주소와 포트 번호를 기록해 둡니다.
    4. 인스턴스의 노드에 대한 정보를 가져오려면 다음 명령어를 사용합니다.

      valkey-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
      

      IP_ADDRESS 및 PORT_NUMBER를 이전 단계에서 기록한 값으로 바꿉니다.

    5. 여유 공간이 부족한 노드의 IP 주소와 포트 번호를 기록해 둡니다. 이 노드의 ID는 오류에 표시되는 ID와 일치합니다.

    6. 이 노드에 연결하려면 다음 명령어를 사용하세요.

      valkey-cli -h IP_ADDRESS -p PORT_NUMBER
      

      IP_ADDRESS 및 PORT_NUMBER를 이전 단계에서 기록한 값으로 바꿉니다.

    7. 프롬프트에서 info memory 명령어를 입력합니다.

      출력에 used_memory 및 maxmemory 매개변수의 값이 표시됩니다. used_memory는 노드가 사용하는 메모리 양이고 maxmemory는 노드에 사용할 수 있는 메모리 양입니다.

    8. used_memory 매개변수 값을 maxmemory 매개변수 값으로 나누고 몫이 98%보다 큰지 확인합니다.

    9. 노드의 공간을 확보하려면 노드의 키 중 일부를 삭제합니다.

    10. info memory 명령어를 다시 입력합니다. 출력에서 used_memory 매개변수의 값이 더 작습니다.

    11. used_memory 매개변수 값을 maxmemory 매개변수 값으로 나누고 몫이 98% 미만인지 확인합니다. 그렇지 않으면 키를 더 삭제합니다.

    12. 여유 공간이 충분하지 않은 다른 노드의 경우 이 절차의 4~11단계를 반복합니다.

  • Memorystore for Valkey가 원래 인스턴스에 저장하는 모든 키를 저장할 용량이 없는 작은 샤드 수로 확장했습니다. 이 문제를 해결하려면 저장된 모든 키를 저장할 수 있는 더 큰 샤드 수로 확장합니다. 인스턴스의 샤드 수를 늘리는 방법에 대한 자세한 내용은 샤드 수 확장을 참조하세요.

  • Memorystore for Valkey가 원래 노드 유형에 저장하는 모든 데이터를 저장할 용량이 없는 작은 노드 유형으로 확장했습니다. 이 경우 Memorystore for Valkey는 수직 축소할 수 있는 권장 노드 유형을 제공합니다.

  • 인스턴스의 노드 유형을 업데이트하고 원래 노드 유형의 기본 설정을 덮어쓰거나 이러한 설정이 이미 덮어쓰기되었습니다. 하지만 확장된 새 노드 유형은 기본 설정 값을 지원하지 않거나 설정이 노드 유형에 유효하지 않습니다. 이 경우 Memorystore for Valkey에서 오류를 반환합니다. 이 문제를 해결하려면 새 노드 유형에 유효하도록 설정을 수동으로 수정합니다.

  • 쓰기 압력이 높은 기간 (예: 부하 테스트 중)에 인스턴스를 확장했습니다. 이 문제를 해결하려면 인스턴스 트래픽이 적은 기간에 확장합니다.

  • 큰 키가 포함된 슬롯이 있으며 이 키를 다른 노드로 마이그레이션하려고 합니다. 하지만 이 노드에는 키를 지원할 메모리가 충분하지 않습니다. 인스턴스를 업데이트할 수 없습니다. 이 문제를 해결하려면 키 크기를 128MB 미만으로 줄이세요. 그런 다음 업데이트 작업을 다시 시도합니다.

  • 인스턴스 노드가 소유한 슬롯 번호는 알 수 없지만 슬롯 범위만 알 수 있습니다. Memorystore for Valkey에서 오류 메시지를 반환합니다. 이 경우 키 크기를 줄이고 업데이트 작업을 다시 시도합니다.

  • 더 작은 샤드 수로 수평 확장하여 인스턴스 용량을 늘렸습니다. 하지만 Memorystore for Valkey에 이 요청을 수용할 메모리가 부족합니다. 이 문제를 해결하려면 원래의 더 큰 샤드 수로 축소하여 인스턴스 용량을 줄입니다.

권장사항

인스턴스 용량을 확장하려면 다음 권장사항을 따르는 것이 좋습니다.

  • 확장 시점 선택: 인스턴스 확장 속도와 안정성을 높이려면 트래픽이 적은 기간에 확장합니다. 인스턴스 트래픽을 모니터링하는 방법은 인스턴스 모니터링을 참조하세요.
  • 확장할 수 없는 경우 다시 시도: 리소스 가용성은 자주 변경됩니다. 일시적인 리소스 제약으로 인해 인스턴스를 확장할 수 없는 경우 나중에 인스턴스를 확장해 보세요.