다음을 통해 공유


Azure Cache for Redis 인스턴스 스케일링

Azure Cache for Redis에는 캐시 크기와 기능을 유연하게 선택할 수 있는 다양한 계층 제안이 있습니다. 스케일링을 통해 애플리케이션 요구 사항에 맞게 캐시 인스턴스 만든 후 노드의 크기, 계층 및 수를 변경할 수 있습니다. 이 문서에서는 Azure Portal과 Azure PowerShell 및 Azure CLI와 같은 도구를 사용하여 캐시 크기를 조정하는 방법을 보여 줍니다.

크기 조정 유형

기본적으로 다음 두 가지 방법으로 Azure Cache for Redis 인스턴스를 스케일링할 수 있습니다.

  • 스케일 업하면 Redis 서버를 실행하는 VM(Virtual Machine)의 크기가 증가하여 메모리, vCPU(가상 CPU) 및 네트워크 대역폭이 추가됩니다. 스케일 업은 수직 스케일링이라고도 합니다. 스케일 업의 반대는 스케일 다운입니다.

  • 스케일 아웃하면 캐시 인스턴스가 동일한 크기의 더 많은 노드로 나뉘며 병렬화를 통해 메모리, vCPU 및 네트워크 대역폭이 증가합니다. 스케일 아웃을 수평 스케일링 또는 분할이라고도 합니다. 스케일 아웃의 반대는 스케일 인입니다. Redis 커뮤니티에서는 스케일 아웃을 클러스터링이라고도 합니다.

가용성 범위

서비스 계층 기본 및 표준 프리미엄 Enterprise 및 Enterprise Flash
강화
스케일 다운 아니요
규모 확장 아니요
스케일 인 아니요 아니요

크기를 조정하는 경우

Azure Cache for Redis의 모니터링 기능을 사용하여 캐시의 상태 및 성능을 모니터링할 수 있습니다. 이 정보를 사용하여 캐시 크기 조정 시기를 결정합니다.

다음 메트릭을 모니터링하면 크기를 조정해야 하는지 결정하는데 도움이 될 수 있습니다.

  • Redis 서버 부하
    • Redis 서버 부하가 높으면 서버가 모든 클라이언트의 요청을 계속해서 수행할 수 없습니다. Redis 서버는 단일 스레드 프로세스이므로 일반적으로 ‘스케일 업’보다는 ‘스케일 아웃’하는 것이 더 유용합니다. 클러스터링을 사용하도록 설정하여 스케일 아웃하면 여러 Redis 프로세스에 오버헤드 함수를 분산하는 데 도움이 됩니다. 스케일 아웃하면 TLS 암호화/암호 해독 및 연결/연결 끊기를 분산하여 TLS로 캐시 인스턴스의 속도를 높일 수도 있습니다.
    • 스케일 업은 백그라운드 작업이 더 많은 vCPU를 활용하고 기본 Redis 서버 프로세스에 대한 스레드를 확보할 수 있기 때문에 서버 부하를 줄이는 데 도움이 될 수 있습니다.
    • Enterprise 및 Enterprise Flash 계층은 오픈 소스 redis 대신 Redis Enterprise를 사용합니다. 이러한 계층의 장점 중 하나는 Redis 서버 프로세스가 여러 vCPU를 활용할 수 있다는 것입니다. 여러 vCPU를 사용하는 경우 이러한 계층에서 크기 조정 및 축소하는 것은 서버 부하를 줄이는 데 도움이 될 수 있습니다.
  • 메모리 사용량
    • 높은 메모리 사용량은 데이터 크기가 현재 캐시 크기에 비해 너무 큰 것을 나타냅니다. 더 큰 메모리를 사용하는 캐시 크기로 크기를 조정하는 것을 고려합니다. 여기서는 ‘스케일 업’ 또는 ‘스케일 아웃’이 효과적입니다.
  • 클라이언트 연결
    • 각 캐시 크기에는 지원할 수 있는 클라이언트 연결 수에 대한 제한이 있습니다. 클라이언트 연결이 캐시 크기 제한에 근접한 경우 더 큰 계층으로 ‘스케일 업’하는 것이 좋습니다. ‘스케일 아웃’을 수행해도 지원되는 클라이언트 연결 수가 늘어나지는 않습니다.
    • 캐시 크기별 연결 제한에 대한 자세한 내용은 Azure Cache for Redis 가격 책정을 참조하세요.
  • 네트워크 대역폭
    • Redis 서버에서 사용 가능한 대역폭을 초과하는 경우 서버에서 클라이언트에 데이터를 충분히 빠르게 푸시할 수 없기 때문에 클라이언트 요청 시간이 초과될 수 있습니다. 사용 중인 서버 쪽 대역폭의 양을 확인하려면 "캐시 읽기" 및 "캐시 쓰기" 메트릭을 확인합니다. Redis 서버에서 사용 가능한 네트워크 대역폭을 초과하는 경우 더 높은 네트워크 대역폭을 사용하는 더 큰 캐시 크기로 스케일 아웃 또는 스케일 업하는 것을 고려해야 합니다.
    • Enterprise 클러스터 정책을 사용하는 Enterprise 계층 캐시의 경우 스케일 아웃해도 네트워크 대역폭이 증가하지 않습니다.
    • 캐시 크기별로 네트워크에서 사용 가능한 대역폭에 대한 자세한 내용은 Azure Cache for Redis 계획 FAQ를 참조하세요.
  • 내부 Defender 검사
    • C0C1 표준 캐시에서 내부 Defender 검사가 VM에서 실행되는 동안 캐시 요청 증가로 인해 발생하지 않은 서버 부하가 일시적으로 급증할 수 있습니다. 이러한 계층에서 내부 Defender 검사가 하루에 두 번 정도 실행되므로 요청에 대한 대기 시간이 길어집니다. C0C1 계층의 캐시는 멀티태스킹을 위한 코어가 하나뿐이므로 내부 Defender 검사 및 Redis 요청을 처리하는 작업을 분할합니다. C2와 같이 여러 CPU 코어가 있는 상위 계층 제공 사항으로 크기 조정하면 영향을 줄일 수 있습니다.
    • 상위 계층에서 캐시 크기를 늘리면 대기 시간 문제를 해결하는 데 도움이 됩니다. 또한 C2 수준에서는 최대 2,000개의 클라이언트 연결을 지원합니다.

사용할 캐시 가격 책정 계층을 결정하는 방법에 대한 자세한 내용은 올바른 계층 선택Azure Cache for Redis 계획 FAQ를 참조하세요.

참고 항목

스케일링 프로세스를 최적화하는 방법에 대한 자세한 내용은 스케일링 모범 사례 가이드를 참조하세요.

Azure Cache for Redis 스케일링의 필수 구성 요소/제한 사항

다른 가격 책정 계층으로 스케일 업/다운할 수 있지만 다음과 같은 제한 사항이 있습니다.

  • 높은 가격 책정 계층에서 낮은 가격 책정 계층으로 크기를 조정할 수 없습니다.
    • Enterprise 또는 Enterprise Flash 캐시에서 다른 계층으로 스케일 다운할 수 없습니다.
    • 프리미엄 캐시에서 표준 또는 기본 캐시로 축소할 수 없습니다.
    • 표준 캐시에서 기본 캐시로 축소할 수 없습니다.
  • 기본 캐시에서 표준 캐시로 크기를 조정할 수 있지만 동시에 크기를 변경할 수는 없습니다. 다른 크기가 필요한 경우 나중에 원하는 크기로 크기 조정 작업을 수행할 수 있습니다.
  • 기본 캐시에서 바로 프리미엄 캐시로 확장할 수 없습니다. 먼저 크기 조정 작업을 통해 기본에서 표준으로 확장한 다음, 이후 크기 조정 작업을 통해 표준에서 프리미엄으로 확장합니다.
  • 더 큰 크기에서 C0(250MB) 크기로 크기 조정할 수 없습니다. 하지만 동일한 가격 책정 계층 내에서 다른 크기로 스케일 인할 수 있습니다. 예를 들어, C5 Standard에서 C1 Standard로 스케일 인할 수 있습니다.
  • Premium, Standard 또는 Basic 캐시에서 Enterprise 또는 Enterprise Flash 캐시로 스케일 업할 수 없습니다.
  • EnterpriseEnterprise Flash 간에는 스케일링할 수 없습니다.

다음 제한 사항으로 스케일 아웃/스케일 인할 수 있습니다.

  • 스케일 아웃Premium, EnterpriseEnterprise Flash 계층에서만 지원됩니다.
  • 스케일 인Premium 계층에서만 지원됩니다.
  • Premium 계층에서 스케일 인 또는 스케일 아웃하기 전에 먼저 클러스터링을 사용하도록 설정해야 합니다.
  • 프리미엄 계층에서는 최대 10개의 분할 스케일 아웃이 일반적으로 지원됩니다. 최대 30개의 분할에 대한 지원은 미리 보기로 제공됩니다. (복제본이 2개 있는 캐시의 경우 분할 제한은 20입니다. 복제본이 3개인 경우 분할 제한은 15입니다.)
  • EnterpriseEnterprise Flash 계층만 동시에 스케일 업 및 스케일 아웃할 수 있습니다.

스케일링 방법 - Basic, Standard 및 Premium 계층

Azure Portal을 사용하여 스케일 업 및 다운

  1. 캐시 크기를 조정하려면 Azure Portal에서 캐시를 찾은 다음, 리소스 메뉴에서 스케일링을 선택합니다.

    리소스 메뉴의 스케일링을 보여 주는 스크린샷.

  2. 작업 창에서 가격 책정 계층을 선택한 다음, 선택을 선택합니다.

    Azure Cache for Redis 계층을 보여 주는 스크린샷.

  3. 캐시가 새 계층으로 크기 조정되는 동안 Redis Cache 크기 조정 알림이 표시됩니다.

    스케일링 알림을 보여 주는 스크린샷.

  4. 크기 조정이 완료되면 상태가 Scaling(크기 조정 중)에서 실행 중으로 변경됩니다.

참고 항목

Portal에서 캐시를 스케일 업 또는 다운할 때 maxmemory-reservedmaxfragmentationmemory-reserved 설정은 모두 캐시 크기에 비례하여 자동으로 스케일링합니다. 예를 들어 6GB 캐시에서 3GB로 maxmemory-reserved가 설정되고 12GB 캐시로 크기를 조정하는 경우 크기 조정 중에 설정이 자동으로 6GB로 업데이트됩니다. 축소하면 반대 현상이 일어납니다.

PowerShell을 사용하여 스케일 업 및 다운

또는 Size 속성을 수정할 때 Sku cmdlet를 사용하여 PowerShell을 통해 Azure Cache for Redis 인스턴스의 스케일링할 수 있습니다. 다음 예제에서는 myCache라는 캐시를 동일한 계층의 6GB 캐시로 스케일링하는 방법을 보여 줍니다.

   Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -Size 6GB

PowerShell을 사용하여 스케일링하는 방법에 대한 자세한 내용은 PowerShell을 사용하여 Azure Cache for Redis 스케일링을 참조하세요.

Azure CLI를 사용하여 스케일 업 및 다운

Azure CLI를 사용하여 Azure Cache for Redis 인스턴스를 스케일링하려면 az redis update 명령을 호출합니다. sku.capacity 속성을 사용하여 계층 내에서 스케일링합니다(예: Standard C0에서 Standard C1 캐시로).

az redis update --cluster-name myCache --resource-group myGroup --set "sku.capacity"="2"

'sku.name' 및 'sku.family' 속성을 사용하여 다른 계층으로 스케일 업합니다(예: Standard C1 캐시에서 Premium P1 캐시로).

az redis update --cluster-name myCache --resource-group myGroup --set "sku.name"="Premium" "sku.capacity"="1" "sku.family"="P"

Azure CLI를 사용하여 크기를 조정하는 방법에 대한 자세한 내용은 기존 Azure Cache for Redis에 대한 설정 변경을 참조하세요.

참고 항목

프로그래밍 방식으로 캐시를 확장 또는 축소하는 경우(예: PowerShell 또는 Azure CLI 사용) 업데이트 요청의 일부로서 maxmemory-reserved 또는 maxfragmentationmemory-reserved는 무시됩니다. 크기 조정 변경만 적용됩니다. 크기 조정 작업이 완료된 후 이러한 메모리 설정을 업데이트할 수 있습니다.