관리형 자동 확장 처리

이 페이지에서는 관리형 자동 확장 처리 작동 방식과 관리형 자동 확장 처리를 사용하면 발생하는 비용과 제한사항을 설명합니다. 또한 관리형 자동 확장 처리를 구성하는 방법을 결정하는 데 도움이 되는 정보도 제공합니다.

관리형 자동 확장 처리 작동 방식

관리형 자동 확장 처리를 사용 설정하면 Spanner에서 인스턴스 크기를 자동으로 조정합니다. 관리형 자동 확장 처리 기능은 부하 증가나 감소에 따라 인스턴스 워크로드 또는 스토리지 요구사항의 변화에 반응합니다. 관리형 자동 확장은 확장하여 인스턴스에 컴퓨팅 용량을 추가하거나 축소하여 인스턴스에서 컴퓨팅 용량을 삭제합니다.

관리형 자동 확장 처리를 구성할 때 작은 인스턴스에는 처리 단위 또는 큰 인스턴스에는 노드를 사용할 수 있습니다. 이 문서에서 컴퓨팅 용량이라는 용어는 노드 또는 처리 단위를 의미합니다.

Spanner 관리형 자동 확장 처리는 다음을 기준으로 필요한 컴퓨팅 용량을 결정합니다.

  • 우선순위가 높은 CPU 사용률 목표
  • 스토리지 사용률 목표
  • 최소 한도
  • 최대 한도

각 확장 측정기준은 권장 인스턴스 크기를 생성하고 Spanner는 자동으로 가장 높은 측정기준을 사용합니다. 예를 들어 인스턴스에 스토리지 사용률 목표를 달성하려면 노드 10개, CPU 사용률 목표를 달성하려면 노드 12개가 필요한 경우 Spanner는 인스턴스를 노드 12개로 확장합니다.

컴퓨팅 용량이 변하면 Spanner는 지속적으로 스토리지를 최적화합니다. 트래픽이 고르게 분산되고 개별 서버가 과부하되지 않도록 모든 서버에서 데이터를 재조정합니다. 자세한 내용은 제한사항을 참조하세요.

관리형 자동 확장 처리가 인스턴스를 최대 한도까지 확장하지만 워크로드로 인해 CPU 사용률이 여전히 목표보다 높은 경우 워크로드 요청의 지연 시간이 길어지거나 요청이 실패할 수 있습니다. 인스턴스가 최대 컴퓨팅 용량 목표까지 확장되었지만 워크로드에 최대 스토리지 한도보다 많은 스토리지가 필요한 경우 쓰기 요청이 실패할 수 있습니다. 최대 목표에 도달했는지 확인하려면 Google Cloud 콘솔의 시스템 통계 페이지에서 관리형 자동 확장 처리 시스템 이벤트 로그를 보면 됩니다. 자세한 내용은 스토리지 한도를 참조하세요.

Spanner에서 인스턴스를 축소하면 확장할 때보다 느린 속도로 컴퓨팅 용량이 제거되므로 지연 시간에 미치는 영향이 줄어듭니다.

비용

관리형 자동 확장 처리를 사용 설정하기 전에 Spanner 인스턴스를 구성한 방법과 관리형 자동 확장 처리에 설정한 한도에 따라 Spanner 총 비용이 줄어들 수 있습니다.

예를 들어 언제든지 최대 워크로드를 처리하기에 충분한 컴퓨팅 용량이 있도록 Spanner 인스턴스를 수동으로 구성하면 인스턴스가 유휴 상태일 때 컴퓨팅 용량이 줄어드므로 관리형 자동 확장 처리를 통한 비용이 절감될 수 있습니다.

평균 워크로드를 처리하기에 충분한 컴퓨팅 용량이 있도록 Spanner 인스턴스를 수동으로 구성했지만 워크로드 트래픽이 증가할 때 전반적인 성능이 저하되는 경우 관리형 자동 확장 처리에서 인스턴스가 사용 중일 때 컴퓨팅 용량을 증가할 수 있으므로 관리형 자동 확장 처리 비용이 높아질 수 있습니다. 하지만 이렇게 하면 사용자가 더 일관된 성능을 사용할 수 있습니다.

최대 노드 또는 처리 단위 한도를 지출하려는 수준으로 설정하면 Spanner 인스턴스의 최대 비용을 제한할 수 있습니다.

제한사항

인스턴스에서 관리형 자동 확장 기능을 사용 설정하거나 변경할 때 다음과 같은 제한사항이 적용됩니다.

  • 관리형 자동 확장 처리 기능이 사용 설정되면 인스턴스를 이동할 수 없습니다. 먼저 관리형 자동 확장 처리를 중지한 후 인스턴스를 이동해야 합니다. 인스턴스를 이동한 후 관리형 자동 확장 처리를 다시 사용 설정할 수 있습니다.
  • 자동 확장 인스턴스의 최소 한도는 처리 단위 1, 000개 이상 또는 노드 1개 이상으로 설정해야 합니다.
  • 기존 인스턴스에서 자동 확장을 사용 설정할 때 기존 인스턴스 용량은 관리형 자동 확장 처리에서 구성한 최소 한도 값보다 낮을 수 있습니다. 하지만 인스턴스를 시작하면 구성된 최솟값으로 인스턴스가 자동으로 확장됩니다. 예를 들어 인스턴스에 노드가 1개 있지만 최솟값을 노드 2개로 설정한 경우 인스턴스를 시작하면 자동으로 최대 2개의 노드로 확장됩니다.

관리형 자동 확장 처리 매개변수

인스턴스를 만들거나 수정하고 관리형 자동 확장 처리를 사용 설정할 때 다음 표에 표시된 값을 정의합니다.

매개변수 설명
우선순위가 높은 CPU 사용률 목표 인스턴스에서 우선순위가 높은 CPU 용량의 백분율입니다. 이 값은 10~90% 사이여야 합니다. 인스턴스의 CPU 사용률이 개발자가 설정한 목표를 초과하면 Spanner에서 즉시 컴퓨팅 용량을 인스턴스에 추가합니다. CPU 사용률이 목표보다 크게 낮으면 Spanner에서 컴퓨팅 용량을 삭제합니다. 자세한 내용은 CPU 사용률 목표 결정을 참조하세요.
스토리지 사용률 목표 Spanner가 확장되기 전에 사용할 수 있는 노드의 스토리지 비율입니다. 이 목표를 사용하면 저장하는 데이터 양의 변동을 처리하기에 충분한 노드가 항상 확보됩니다. 이 값은 10~99% 사이여야 합니다. 자세한 내용은 스토리지 사용률 목표 결정을 참조하세요.
최소 한도 Spanner에서 인스턴스를 축소하는 가장 낮은 컴퓨팅 용량입니다. 최솟값은 최대 한도에 설정한 값의 10% 미만일 수 없습니다. 예를 들어 최대 한도가 노드 40개이면 최소 한도는 노드 최소 4개 이상이어야 합니다. 10% 요구사항은 엄격한 한도입니다. 자세한 내용은 최소 한도 결정을 참조하세요.
최대 한도 Spanner에서 인스턴스를 확장하는 최대 컴퓨팅 용량입니다. 노드의 경우 이 값은 노드 1개(또는 처리 단위 1000개)를 초과하고 최소 노드 또는 처리 단위 수와 같거나 커야 합니다. 최소 컴퓨팅 용량에 선택한 수의 10배 이하여야 합니다. 이러한 10배 요구사항은 엄격한 한도입니다. 자세한 내용은 최대 한도 결정을 참조하세요.

관리형 자동 확장 처리 구성

이 섹션에서는 관리형 자동 확장 처리 매개변수에 선택할 수를 결정하는 방법을 설명합니다. 초기 값을 설정하면 인스턴스를 모니터링하고 필요한 경우 수를 조정합니다.

CPU 사용률 목표 결정

인스턴스에 가장 적합한 목표는 워크로드의 지연 시간과 처리량 요구사항에 따라 다릅니다. 단일 리전 및 멀티 리전 인스턴스의 최대 CPU 사용량에 대한 권장사항을 보려면 CPU 사용률 높음에 대한 알림을 참조하세요.

일반적으로 허용치 이상의 지연 시간이 관찰되면 CPU 사용률 목표를 낮춰야 합니다.

스토리지 사용률 목표 결정

자동 확장의 경우 스토리지 사용률 목표는 노드당 백분율로 표시됩니다. 노드가 1개(처리 단위 1000개) 이상인 인스턴스의 경우 스토리지 크기는 노드당 4TB로 제한됩니다.

최대 한도 결정

최대 컴퓨팅 용량으로 선택하는 값은 대부분의 경우 볼륨에 도달할 것으로 예상되지 않더라도 인스턴스에서 최대 트래픽을 처리하는 데 필요한 컴퓨팅 용량과 동일합니다. Spanner는 필요 이상의 컴퓨팅 용량으로 확장하지 않습니다. 이 수를 비용을 지불할 최대 컴퓨팅 용량으로 간주할 수도 있습니다. 허용되는 값에 대한 자세한 내용은 자동 확장 처리 매개변수를 참조하세요.

최대 한도는 자동 확장에 설정되는 CPU 사용률 목표와 스토리지 사용률 목표를 모두 허용해야 합니다.

  • 인스턴스를 수동 할당에서 관리형 자동 확장으로 변경하려면 지난 1~2개월 동안 가장 높은 인스턴스의 컴퓨팅 용량을 찾습니다. 관리형 자동 확장 처리 최대 한도는 최소 그 이상이어야 합니다.

  • 새 인스턴스에 관리형 자동 확장 처리를 사용 설정하는 경우 다른 인스턴스의 측정항목을 확인하고 최대 한도를 설정할 때 가이드로 사용합니다.

  • 새 워크로드가 있지만 증가 방법을 모르는 경우 기본 제공 스토리지 사용률 목표를 충족하는 데 필요한 컴퓨팅 용량을 추정한 후 나중에 수를 조정하면 됩니다.

또한 관리형 자동 확장 처리에서 할당량보다 많은 컴퓨팅 용량이 있도록 인스턴스를 구성할 수 없으므로 노드에 남아 있는 할당량도 알아야 합니다. 자세한 내용은 노드 한도를 참조하세요.

자동 확장이 사용 설정된 상태에서 인스턴스가 실행되면 인스턴스를 모니터링하고 최대 한도에 선택한 값이 최소한 CPU 목표에 대한 권장 한도와 스토리지 목표에 대한 권장 한도보다 높은지 확인합니다.

최소 한도 결정

Spanner 인스턴스가 가장 작고 가장 비용 효율적인 크기로 축소되도록 관리형 자동 확장 처리의 최소 한도를 설정합니다. Spanner는 노드 수가 CPU 및 스토리지 사용률 목표를 유지하는 데 필요한 최솟값 아래로 떨어지지 않도록 자동으로 방지합니다.

관리형 자동 확장 처리가 허용하는 최소 최솟값은 노드 1개 또는 처리 단위 1,000개입니다. 관리형 자동 확장 처리에 구성된 최솟값보다 용량이 적은 기존 인스턴스에 자동 확장을 사용 설정하면 시작 시 인스턴스가 이 최솟값으로 자동 확장됩니다.

관리형 자동 확장이 있는 인스턴스를 시작한 후에는 초기 테스트를 수행하여 최소 세트 크기에서 작동하는지 확인해야 합니다. 주기적으로 다시 테스트하여 예상대로 계속 작동하는지 확인해야 합니다.

허용되는 값에 대한 자세한 내용은 이 문서의 관리형 자동 확장 처리 매개변수를 참조하세요.

대부분의 경우 최솟값을 2 이상으로 설정해야 합니다. 다음과 같은 경우 더 높은 수를 선택하거나 최소 한도를 늘립니다.

  • 트래픽이 일시적으로 증가할 것으로 예상되며 컴퓨팅 용량이 충분한지 확인하려고 할 때 예정된 최대 확장 이벤트가 있습니다.
  • 애플리케이션이 급증하는 트래픽을 전송합니다. 새 컴퓨팅 용량을 추가하면 Spanner에서 새 노드나 처리 단위를 사용하도록 자동으로 재조정합니다. 이 프로세스는 몇 분 정도 걸릴 수 있으므로 보수적인 방식을 취하고 더 높은 최솟값을 선택하는 것이 좋습니다. 이렇게 하면 인스턴스에서 급증을 원활하게 수용합니다.
  • 최대 컴퓨팅 용량을 늘립니다. 최솟값은 항상 최대 컴퓨팅 용량 목표의 10% 이하여야 합니다. 예를 들어 최대 노드 수를 30으로 설정한 경우 최소 노드 수를 최소 3 이상으로 설정해야 합니다.

인스턴스의 최소 컴퓨팅 용량 값을 늘리면 Spanner에서 즉시 인스턴스를 새 최솟값으로 확장하려고 시도합니다. 표준 제약조건이 적용됩니다. 할당량을 초과하면 관리형 자동 확장 처리 구성 변경 요청이 실패하고 구성이 업데이트되지 않습니다.

Google Cloud CLI 매개변수 플래그 및 제한사항

Google Cloud CLI를 사용하여 관리형 자동 확장 처리를 구성할 때는 몇 가지 필수 플래그를 설정해야 합니다. 노드나 처리 단위 사용 여부를 나타내는 데 사용하는 선택적 플래그가 있습니다. 관리형 자동 확장 처리를 사용하여 새 인스턴스를 만들거나 기존 인스턴스에서 관리형 자동 확장을 사용 설정하는 방법에 대한 자세한 내용은 다음을 참조하세요.

인스턴스에 관리형 자동 확장 처리를 사용 설정할 때는 다음 플래그가 필요합니다.

  • autoscaling-high-priority-cpu-percent
  • autoscaling-storage-percent

노드를 사용하는 경우 관리형 자동 확장 처리를 사용 설정할 때 다음 두 플래그도 모두 사용해야 합니다.

  • autoscaling-min-nodes
  • autoscaling-max-nodes

처리 단위를 사용하는 경우 관리형 자동 확장 처리를 사용 설정할 때 다음 두 플래그도 모두 사용해야 합니다.

  • autoscaling-min-processing-units
  • autoscaling-max-processing-units

Google Cloud CLI를 사용하여 기존 인스턴스에 관리형 자동 확장 처리를 추가할 때는 다음 제한사항이 적용됩니다.

  • --nodes를 사용하면 확장 범위가 아닌 특정 노드 수가 설정되므로 --nodes 플래그를 --autoscaling-min-nodes 또는 --autoscaling-max-nodes 플래그와 함께 사용할 수 없습니다. 마찬가지로 --processing-units를 설정하면 확장 범위가 아닌 특정 처리 단위 수가 설정되므로 --processing-units 플래그를 autoscaling-min-processing-units 또는 autoscaling-max-processing-units 플래그와 함께 사용할 수 없습니다.
  • 노드와 처리 단위의 플래그를 함께 사용할 수 없습니다. 예를 들어 autoscaling-min-processing-units와 함께 --autoscaling-max-nodes를 사용할 수 없습니다.

설정 미세 조정

컴퓨팅 용량 사용량을 주시하고 필요한 경우 설정을 조정합니다(특히 관리형 자동 확장 처리를 처음 사용 설정한 후). Google Cloud 콘솔의 시스템 통계 페이지를 사용하는 것이 좋습니다.

액세스 제어

관리형 자동 확장 처리를 구성하려면 구성 중인 인스턴스에 대한 만들기 및 업데이트 권한이 있는 역할의 주 구성원이어야 합니다.

모니터링

Spanner는 관리형 자동 확장 처리가 워크로드 요구사항에 맞게 확장 및 축소하면서 얼마나 잘 작동하는지 이해하는 데 도움이 되는 몇 가지 측정항목을 제공합니다. 또한 측정항목은 설정이 비즈니스 워크로드 및 비용 요구사항을 충족하는 데 최적인지 여부를 판단하는 데 도움이 될 수 있습니다. 예를 들어 인스턴스의 노드 수가 최대 노드 수에 가까워지는 경우가 많은 경우 최댓값을 높이는 것이 좋습니다. Spanner 리소스 모니터링에 대한 자세한 내용은 Cloud Monitoring으로 인스턴스 모니터링을 참조하세요.

다음 측정항목이 Google Cloud 콘솔의 시스템 통계 페이지에서 그래프로 표시됩니다. Cloud Monitoring을 사용하여 이러한 측정항목을 볼 수도 있습니다.

  • spanner.googleapis.com/instance/autoscaling/min_node_count
  • spanner.googleapis.com/instance/autoscaling/max_node_count
  • spanner.googleapis.com/instance/autoscaling/min_processing_units
  • spanner.googleapis.com/instance/autoscaling/max_processing_units
  • spanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilization
  • spanner.googleapis.com/instance/autoscaling/storage_target_utilization

로깅

Spanner는 인스턴스를 확장할 때마다 시스템 이벤트 감사 로그를 만듭니다.

Google Cloud 콘솔의 시스템 통계 페이지에서 관리형 자동 확장 처리 시스템 이벤트 로그를 볼 수 있습니다.

로그 탐색기를 사용하여 로그를 볼 수도 있습니다.

  1. Google Cloud 콘솔에서 로그 탐색기를 엽니다.

    로그 탐색기로 이동

  2. 적합한 Google Cloud 프로젝트를 선택합니다.

  3. 쿼리 필드에 다음을 입력합니다.

     protoPayload.methodName="AutoscaleInstance"
    

    다음 쿼리를 추가하여 로그를 추가로 필터링할 수 있습니다.

    resource.type="spanner_instance"
    resource.labels.instance_id=INSTANCE_ID
    resource.labels.project_id=PROJECT_ID
    logName="projects/span-cloud-testing/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="AutoscaleInstance"
  4. 쿼리 실행을 클릭합니다.

쿼리 결과 창에 지난 1시간 동안의 로그가 표시됩니다.

로그 보기에 대한 자세한 내용은 Cloud Logging을 참조하세요. Google Cloud의 로그 탐색기 페이지에서 또는 Cloud Monitoring API를 사용하여 로그 기반 알림을 설정할 수 있습니다.

다음 단계