인스턴스 확장

AlloyDB 인스턴스를 확장하여 변화하는 워크로드 요구사항에 맞게 클러스터의 용량과 성능을 조정할 수 있습니다. 확장하면 비용을 관리하고 트래픽 급증을 쉽게 처리할 수 있습니다.

다음과 같이 여러 가지 방법으로 AlloyDB 인스턴스를 확장할 수 있습니다.

확장 유형 방법 자동화 기본 인스턴스 읽기 풀 인스턴스
수직 머신 유형 변경 수동 지원됨 지원됨
수평 노드 수 변경 수동 및 자동 지원되지 않음 지원됨

시작하기 전에

  • 사용 중인 Google Cloud 프로젝트가 AlloyDB에 액세스할 수 있도록 사용 설정되어 있어야 합니다.
  • 사용 중인 Google Cloud 프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.
    • roles/alloydb.admin(AlloyDB 관리자가 사전 정의한 IAM 역할)
    • roles/owner(소유자 기본 IAM 역할)
    • roles/editor(편집자 기본 IAM 역할)

    이러한 역할이 없는 경우 조직 관리자에게 문의하여 액세스 권한을 요청하세요.

수동 확장

이 섹션에서는 AlloyDB 인스턴스를 수동으로 확장하는 방법을 설명합니다. 예를 들어 머신 유형을 변경하여 인스턴스를 수직으로 확장하고 노드 수를 변경하여 읽기 풀 인스턴스를 수평으로 확장할 수 있습니다.

인스턴스의 머신 유형 확장

인스턴스의 머신 유형을 변경하여 기본 인스턴스와 읽기 풀 인스턴스 모두 수직으로 확장할 수 있습니다. 이렇게 하면 vCPU와 RAM이 수정됩니다.

콘솔

  1. Google Cloud 콘솔에서 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다.

  3. 개요 페이지에서 클러스터 내 인스턴스 섹션으로 이동한 뒤 기본 인스턴스 수정 또는 읽기 풀 수정을 클릭합니다.

  4. 다음 머신 시리즈 중 하나를 선택합니다.

    • C4A: Google Axion 기반 머신 시리즈로, 프리뷰에서 사용할 수 있습니다.
    • N2: 기본 x86 기반 머신 시리즈입니다.
    • C4: Intel Xeon 스케일러블 프로세서 및 Titanium 기반 머신 시리즈입니다.
  5. 머신 유형을 선택합니다.

    • C4A는 1, 4, 8, 16, 32, 48, 64, 72 머신 유형 또는 형태를 지원합니다.
    • N2는 2, 4, 8, 16, 32, 64, 96, 128 머신 유형 또는 형태를 지원합니다.
    • C4는 4, 8, 16, 24, 32, 48, 96, 144, 192, 288 머신 유형 또는 형태를 지원합니다.

      C4A Axion 기반 머신 시리즈, 특히 1 vCPU 머신 유형 사용과 관련된 고려사항은 C4A Axion 기반 머신 시리즈 사용 시 고려사항을 참고하세요.

  6. 인스턴스 업데이트 또는 읽기 풀 업데이트를 클릭합니다.

gcloud

gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

gcloud alloydb instances update 명령어를 사용하여 기본 인스턴스의 머신 유형을 변경합니다.

gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID

다음을 바꿉니다.

  • INSTANCE_ID: 업데이트할 인스턴스의 ID

  • CPU_COUNT: 인스턴스에 필요한 N2 vCPU 수. 기본값은 N2입니다. 유효한 값은 다음과 같습니다.

    • 2: 2 vCPU, 16GB RAM
    • 4: vCPU 4개, 32GB RAM
    • 8: vCPU 8개, 64GB RAM
    • 16: vCPU 16개, 128GB RAM
    • 32: vCPU 32개, 256GB RAM
    • 64: vCPU 64개, 512GB RAM
    • 96: vCPU 96개, 768GB RAM
    • 128: vCPU 128개, 864GB RAM

  • MACHINE_TYPE: (선택사항) 지원되는 머신 유형 목록(예: n2-highmem-4, c4-highmem-4-lssd, c4a-highmem-4-lssd)에서 선택합니다. 자세한 내용은 AlloyDB 머신 유형 선택을 참고하세요.

    MACHINE_TYPECPU_COUNT를 함께 사용하는 경우 CPU_COUNTMACHINE_TYPE의 값이 일치해야 합니다. 그렇지 않으면 오류가 발생합니다.

  • REGION_ID: 인스턴스가 배치된 리전

  • CLUSTER_ID: 인스턴스가 배치된 클러스터의 ID

  • PROJECT_ID: 클러스터가 배치된 프로젝트의 ID

명령어가 invalid cluster state MAINTENANCE 구문이 포함된 오류 메시지를 반환하면 클러스터에서 정기 유지보수가 진행 중인 것입니다. 이 경우 인스턴스 재구성이 일시적으로 허용되지 않습니다. 클러스터가 READY 상태로 돌아간 후 명령어를 다시 실행합니다. 클러스터 상태를 확인하려면 클러스터 세부정보 보기를 참고하세요.

머신 유형 업데이트 가속화

머신 유형을 더 빠르게 업데이트하려면 gcloud beta alloydb instances update 명령어와 함께 FORCE_APPLY 옵션을 사용하세요.

 gcloud beta alloydb instances update INSTANCE_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID
  --update-mode=FORCE_APPLY
  • 인스턴스에 약 1분의 다운타임이 발생합니다.

  • 인스턴스의 머신 유형이 10~15분 후에 변경됩니다.

읽기 풀 인스턴스의 노드 수 확장

AlloyDB를 사용하면 인스턴스 수준의 다운타임 없이 읽기 풀 인스턴스에서 노드 수를 확장할 수 있습니다. 노드 수를 늘려도 클라이언트 연결은 영향을 받지 않습니다.

노드 수를 줄이는 경우 종료되는 노드에 연결된 클라이언트는 인스턴스 엔드포인트를 사용하여 다른 노드에 다시 연결할 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다.

  3. 개요 페이지에서 클러스터의 인스턴스 섹션으로 이동하여 읽기 풀 수정을 클릭합니다.

  4. 노드 수 필드에 노드 수를 입력합니다.

  5. 읽기 풀 업데이트를 클릭합니다.

gcloud

gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

gcloud alloydb instances update 명령어를 사용하여 읽기 풀 인스턴스의 노드 수를 변경합니다.

gcloud alloydb instances update INSTANCE_ID \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID: 읽기 풀 인스턴스의 ID

  • NODE_COUNT: 읽기 풀 인스턴스의 노드 수. 1~20 사이(포함)의 숫자를 지정하세요. 클러스터의 모든 읽기 풀 인스턴스에 걸쳐 노드를 20개 넘게 지정할 수 없습니다.

  • REGION_ID: 인스턴스가 배치된 리전

  • CLUSTER_ID: 인스턴스가 위치한 클러스터의 ID

  • PROJECT_ID: 클러스터가 배치된 프로젝트의 ID

명령어가 invalid cluster state MAINTENANCE 구문이 포함된 오류 메시지를 반환하면 클러스터에서 정기 유지보수가 진행 중인 것입니다. 이 경우 인스턴스 재구성이 일시적으로 허용되지 않습니다. 클러스터가 READY 상태로 돌아간 후 명령어를 다시 실행합니다. 클러스터 상태를 확인하려면 클러스터 세부정보 보기를 참고하세요.

읽기 풀 인스턴스 자동 확장

AlloyDB 읽기 풀 자동 확장을 사용하면 실시간 리소스 사용량에 따라 읽기 노드 수를 자동으로 적응적으로 변경할 수 있습니다. 이를 통해 사용량 변화에 대처하고 비용을 절감할 수 있습니다.

다음 정책을 사용하여 자동 확장 기능을 구성할 수 있습니다.

  • CPU 사용률 기반: 목표 CPU 사용률에 따라 노드 수를 확장합니다.
  • 일정 기반: 지정된 시간 동안 노드 수를 최소 개수로 조정합니다.

이러한 정책을 함께 사용할 수 있습니다. 여러 정책이 활성 상태인 경우 자동 확장 처리는 가장 많은 수의 노드를 권장하는 정책을 선택합니다.

제한사항

읽기 풀 자동 확장 처리에는 다음과 같은 제한사항이 있습니다.

  • 장기 연결의 부하 분산: 트래픽을 균등하게 분산하고 자동 확장으로 추가된 용량을 최대한 활용하려면 새 클라이언트 연결을 만드는 것이 좋습니다. 자동 확장 처리기는 새 노드를 추가할 때 기존의 장기 연결을 종료하지 않으므로 이러한 연결의 트래픽은 새로 추가된 노드로 라우팅되지 않습니다.
  • 새 노드의 캐시 워밍: 자동 확장 처리에서 새 노드를 추가하면 캐시를 워밍하고 최대 쿼리 성능에 도달하는 데 몇 분 정도 걸릴 수 있습니다.
  • 대규모 쿼리 동작: 매우 큰 읽기 쿼리를 실행하는 동안 자동 확장 조정이 지연될 수 있습니다.

새 읽기 풀 인스턴스에서 자동 확장 사용 설정

CPU 기반 정책, 일정 기반 정책 또는 둘 다를 사용하여 읽기 풀 인스턴스를 만들 때 자동 확장을 사용 설정하고 구성할 수 있습니다.

CPU 기반 정책으로 읽기 풀 인스턴스 만들기

타겟 CPU 사용률을 기반으로 하는 자동 확장 정책을 사용하여 읽기 풀 인스턴스를 만들려면 다음 명령어를 실행하세요.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE

다음을 바꿉니다.

  • INSTANCE_ID: 읽기 풀 인스턴스의 ID

  • READ_POOL: 인스턴스 유형 지정

  • NODE_COUNT: 읽기 풀 인스턴스의 노드 수. 1~20 사이(포함)의 숫자를 지정하세요. 클러스터의 모든 읽기 풀 인스턴스에 걸쳐 노드를 20개 넘게 지정할 수 없습니다.

  • REGION_ID:: 인스턴스가 배치된 리전

  • CLUSTER_ID: 인스턴스가 배치된 클러스터의 ID

  • PROJECT_ID: 클러스터가 배치된 프로젝트의 ID

  • MAX_NODE_COUNT: 자동 확장 처리에서 읽기 풀 인스턴스에 만들 수 있는 최대 노드 수. 단일 클러스터의 모든 읽기 풀 인스턴스에 걸쳐 노드 수가 20개를 초과할 수 없습니다.

  • TARGET_CPU_USAGE: 읽기 풀 인스턴스의 대상 CPU 사용률로, 0.0~1.0 사이의 십진수로 표현됩니다. 예를 들어 70%는 0.7입니다.

일정 기반 정책으로 읽기 풀 인스턴스 만들기

특정 시간대의 최소 노드 수를 정의하는 일정 기반 자동 확장 정책으로 읽기 풀 인스턴스를 만들려면 다음 명령어를 실행하세요.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION"

다음을 바꿉니다.

  • MAX_NODE_COUNT: 자동 확장 처리에서 읽기 풀 인스턴스에 만들 수 있는 최대 노드 수. 단일 클러스터의 모든 읽기 풀 인스턴스에 걸쳐 노드 수가 20개를 초과할 수 없습니다.

  • SCHEDULE_NAME: 확장 일정의 고유 이름

  • CRON_EXPRESSION: 확장 이벤트의 시작 시간을 지정하는 cron 형식의 일정

  • DURATION_SECONDS: 일정이 시작된 후 활성 상태로 유지되는 시간(초). 이 기간이 지나면 인스턴스는 다른 정책 또는 원래 구성에 따라 결정된 노드 수로 축소됩니다.

  • TIME_ZONE: 일정의 선택적 시간대. 예를 들면 America/Los_Angeles입니다.

  • MIN_NODE_COUNT: 일정이 활성 상태일 때 자동 확장 처리가 읽기 풀 인스턴스를 확장하는 최소 노드 수

  • DESCRIPTION: 일정에 대한 텍스트 설명(선택사항)

CPU 및 일정 기반 정책으로 읽기 풀 인스턴스 만들기

CPU 기반 자동 확장 정책과 일정 기반 자동 확장 정책이 모두 있는 읽기 풀 인스턴스를 만들려면 다음 명령어를 실행합니다.

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION"

TARGET_CPU_USAGE를 읽기 풀 인스턴스의 타겟 CPU 사용률로 바꿉니다. 0.0~1.0 사이의 십진수 값으로 표현됩니다.

이 명령어에 사용된 자리표시자에 대한 설명은 CPU 기반 정책으로 읽기 풀 인스턴스 만들기일정 기반 정책으로 읽기 풀 인스턴스 만들기 정책을 참고하세요.

기존 읽기 풀 인스턴스에서 자동 확장 사용 설정 또는 업데이트

기존 읽기 풀 인스턴스에서 자동 확장 설정을 사용 설정, 사용 중지 또는 수정할 수 있습니다.

기존 인스턴스에서 처음으로 자동 확장을 사용 설정하거나 기존 정책을 업데이트하려면 gcloud alloydb instances update 명령어를 사용합니다. 예를 들어 대상 CPU 사용률을 업데이트하려면 다음을 실행합니다.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE

NEW_TARGET_CPU_USAGE를 읽기 풀 인스턴스에 설정할 새 타겟 CPU 사용률로 바꿉니다. 0.0~1.0 사이의 십진수 값으로 표현됩니다.

기존 구성에 두 번째 일정을 추가하려면 새 일정 이름으로 업데이트 명령어를 실행합니다. 일정 이름이 이미 있는 경우 이 명령어는 기존 일정을 업데이트합니다. 그렇지 않으면 새 일정이 생성됩니다.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-set-schedule=NEW_SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT

NEW_SCHEDULE_NAME을 신규 또는 업데이트된 확장 일정의 고유 이름으로 바꿉니다. 제공된 이름이 기존 일정과 일치하면 명령어가 해당 일정의 설정을 업데이트합니다. 이름이 없으면 명령어는 이 이름으로 새 일정을 만듭니다.

자동 확장 정책 평가 방법

여러 자동 확장 정책이 활성화되어 있으면 자동 확장 처리는 각 정책을 평가하고 가장 많은 수의 노드를 권장하는 정책을 선택합니다.

예를 들어 다음 두 가지 정책이 포함된 구성을 고려해 보세요.

  • 목표 사용률이 60% 인 CPU 기반 정책
  • 평일 오전 8시부터 오후 5시까지 최소 3개의 노드가 필요한 일정 기반 정책

정오에 CPU 사용률이 80%인 평일인 경우 CPU 기반 정책에서는 노드를 4개로 확장하도록 권장하는 반면 일정 기반 정책에서는 3개로 확장하도록 권장할 수 있습니다. 자동 확장 처리기가 인스턴스를 4개 노드로 확장합니다.

자동 확장 사용 중지

자동 확장을 사용 중지하려면 no-enable-autoscaler 플래그를 사용합니다. 이렇게 하면 자동 확장이 사용 설정되기 전의 원래 노드 수로 읽기 풀이 재설정됩니다.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler