인스턴스 이동

이 페이지에서는 Spanner에서 인스턴스를 이동하는 방법을 설명합니다.

Spanner 인스턴스를 모든 인스턴스 구성에서 리전 구성과 멀티 리전 구성을 포함한 다른 인스턴스 구성으로 이동할 수 있습니다. 인스턴스를 이동해도 다운타임이 발생하지 않으며 Spanner는 이동 중에 strong consistency를 포함하여 일반적인 트랜잭션 보장을 계속 제공합니다.

Spanner 인스턴스를 이동하는 이유

인스턴스를 이동할 때의 이점은 다음과 같습니다.

  • 가용성 향상: 리전에서 멀티 리전 이동을 수행한 후 다운타임 없이 99.999% 가용성을 달성합니다.
  • 지연 시간 감소: 리전에서 멀티 리전으로 또는 멀티 리전에서 멀티 리전으로 이동하는 추가 읽기 전용 복제본으로 지연 시간을 줄이고 지리적 범위를 늘리세요.
  • 비용 절감: 멀티 리전 구성에서 리전 구성으로 전환하여 시간당 비용을 줄입니다.
  • 데이터베이스 같은 위치에 배치: 인스턴스를 보다 최적화된 위치로 이동하여 Spanner 애플리케이션을 클라이언트 애플리케이션과 같은 위치에 배치합니다.

가격 책정

인스턴스를 이동할 때 소스 및 대상 인스턴스 구성 모두 시간별 컴퓨팅 및 스토리지 요금이 적용됩니다. 이동이 완료되면 대상 구성에서 인스턴스 스토리지에 대한 요금이 청구됩니다.

인스턴스를 새 리전 또는 멀티 리전 인스턴스 구성으로 이동할 경우 아웃바운드 데이터 전송 요금이 부과될 수 있습니다. 자세한 내용은 Spanner 가격 책정을 참조하세요.

제한사항

  • 인스턴스를 이동하려면 최소 1개의 노드(1, 000개의 처리 단위)가 있어야 합니다.
  • 프로젝트와 Google Cloud 계정 간에 인스턴스를 이동할 수 없습니다.
  • Spanner 무료 체험판 인스턴스는 이동할 수 없습니다. 유료 인스턴스로 업그레이드한 후에 인스턴스를 이동할 수 있습니다.
  • 인스턴스 리소스에서 리전 서비스 엔드포인트를 사용하는 활성 요청이 있는 경우 리전 시행에서 리전 간 인스턴스에 대한 액세스를 차단하므로 인스턴스를 이동하면 리전 엔드포인트를 사용하는 모든 요청에 영향을 미칩니다. 전역 엔드포인트를 사용하는 요청은 영향을 받지 않습니다.
  • Spanner 백업은 인스턴스 구성에 따라 다르며 인스턴스를 이동할 때 포함되지 않습니다. 자세한 내용은 소스 인스턴스 구성의 백업을 참조하세요.
  • 인스턴스 이동 중에 다음 API는 사용 중지됩니다.
    • InstanceAdmin.DeleteInstance
    • InstanceAdmin.UpdateInstance
    • DatabaseAdmin.CreateDatabase
    • DatabaseAdmin.UpdateDatabaseDdl(요청에 default_leader가 지정된 경우 사용 중지됨)
    • DatabaseAdmin.RestoreDatabase
    • DatabaseAdmin.CreateBackup
    • DatabaseAdmin.CopyBackup
  • CMEK가 사용 설정된 데이터베이스가 포함된 인스턴스는 이동할 수 없습니다.
  • 데이터베이스에 수정된 기본 리더가 있는 경우 대상 인스턴스 구성에서 읽기-쓰기 리전의 이름을 지정하고 해당 구성이 멀티 리전인 경우 선택이 유지됩니다. 대상 구성이 리전별이거나 이름이 지정된 읽기-쓰기 리전을 포함하지 않는 경우 기본 리더 선택이 지워집니다.
  • 인스턴스를 이동하면 인스턴스의 인스턴스 구성 속성이 변경됩니다. 자동화를 통해 Spanner 리소스를 관리하는 경우 발생할 수 있는 모든 불일치를 준비하고 해결해야 합니다.
    • 예를 들어 Terraform을 사용하여 Spanner 인스턴스와 데이터베이스를 관리하고 terraform apply --auto-approve를 사용 설정하여 리소스를 동기화 상태로 유지하면 인스턴스를 이동할 때 모든 인스턴스와 하위 리소스가 삭제됩니다. 구성을 업데이트하여 삭제 및 데이터 손실을 방지합니다. apply 명령어에 대한 자세한 내용은 Terraform 적용 옵션을 참조하세요.
  • 인스턴스가 이동되는 동안 Spanner 모니터링 측정항목과 차트가 소스 및 대상 인스턴스 구성 모두에 데이터를 표시하거나 하나의 인스턴스 구성에 있는 성능만 반영할 수 있습니다.
  • 오픈소스 자동 확장 처리 도구를 구성한 경우 이를 사용 중지할 필요가 없습니다. NodeAdmin.UpdateInstance(노드 및 처리 단위 변경에 사용됨)가 사용 중지되었기 때문에 실패합니다.
  • Spanner 관리형 자동 확장 처리 기능이 사용 설정된 경우 인스턴스를 이동할 수 없습니다. 인스턴스를 이동하려면 관리형 자동 확장 처리를 사용 중지하고 인스턴스를 이동한 다음 관리형 자동 확장 처리를 다시 사용 설정해야 합니다.

성능에 대한 고려사항

인스턴스가 이동 중일 때는 읽기-쓰기 지연 시간이 길어지고 트랜잭션 취소율이 높아집니다. 인스턴스 이동은 사용자가 프로비저닝한 예비 CPU를 사용하여 수행되므로 이동 중에 CPU 사용률이 최대 100%까지 증가할 수 있습니다. 인스턴스를 이동해도 다운타임이 발생하지 않습니다. 인스턴스 이동에 걸리는 시간은 데이터베이스 크기, 노드 수, 이동 종류(예: 리전에서 멀티 리전으로 이동)를 비롯한 다양한 요소에 따라 달라집니다.

인스턴스를 이동한 후에는 인스턴스 구성의 세부정보에 따라 인스턴스 성능이 달라집니다. 예를 들어 멀티 리전 구성은 일반적으로 리전 구성보다 쓰기 지연 시간이 더 길고 읽기 지연 시간이 더 짧습니다.

인스턴스 이동 방법

Google Cloud console을 사용하여 인스턴스 구성을 이동할 수 있습니다. 먼저 인스턴스 이동 요청 양식을 작성하라는 메시지가 표시됩니다. 그런 다음 Spanner팀은 인스턴스 이동 시작일을 추가합니다. 인스턴스를 이동해도 인스턴스의 이름, ID 또는 프로젝트 ID는 변경되지 않습니다.

기본 요건

인스턴스 구성 이동을 요청하기 전에 제한사항성능 고려사항 섹션을 읽었는지 확인합니다. 이어서 다음 단계를 수행합니다.

  1. 소스 인스턴스에 대한 spanner.instances.update IAM 권한이 있는지 확인합니다.
  2. 이동할 인스턴스에 리소스 라벨을 추가합니다. 이 라벨의 키는 'move-to'이고 값은 대상 인스턴스 구성의 이름입니다(예: 'us-east4'). 자세한 내용은 인스턴스 라벨 지정을 참조하세요.
  3. 해당하는 경우 프로덕션 인스턴스를 이동하기 전에 비프로덕션 인스턴스(예: 테스트 및 스테이징) 이동을 요청하여 인스턴스 이동 중에 워크로드에 미치는 성능 영향을 평가하고 파악할 수 있게 도와줍니다.
  4. Spanner 인스턴스를 이동하면 이동 프로세스는 Data Catalog에서 만든 인스턴스 태그를 삭제합니다. 태그를 보존하려면 이동 전에 태그를 내보내고 이동 후에 태그를 가져와야 합니다. 자세한 내용은 태그 내보내기 및 가져오기를 참조하세요.

권장사항의 경우 다음 가이드라인도 준수해야 합니다.

  • 프로덕션 인스턴스를 이동하기 전에 먼저 대상 인스턴스 구성의 비프로덕션 인스턴스에서 성능 워크로드를 테스트합니다.
  • Key Visualizer를 사용하여 데이터베이스에 핫스팟이 없는지 확인합니다.
  • 대상 노드 구성에 예상되는 최대 인스턴스 사용량을 지원하기에 충분한 노드 할당량이 있는지 확인합니다. 자세한 내용은 Spanner 할당량 및 한도를 참조하세요.
  • 인스턴스의 최대 CPU 사용률이 소스 인스턴스 구성을 이동하려는 인스턴스 구성 유형에 대해 권장되는 최대 임곗값 이내인지 확인합니다.

    또한 자동 확장을 사용하는 경우 언급된 최대 권장사항에 따라 최대 CPU 사용량에 맞게 노드를 충분히 프로비저닝한 후 인스턴스를 이동하기 전에 자동 확장을 중지해야 합니다.

  • 마이그레이션 중에는 인스턴스를 변경하지 마세요. 여기에는 인스턴스 노드 수 변경, 데이터베이스 스키마 변경, 데이터베이스 만들기 또는 삭제, 백업 만들기 또는 삭제가 포함됩니다.

인스턴스 이동

콘솔

  1. Google Cloud 콘솔에서 Spanner 인스턴스 페이지로 이동합니다.

    인스턴스 페이지로 이동

  2. 이동하려는 인스턴스의 이름을 클릭합니다.

    Google Cloud 콘솔에 인스턴스의 개요 페이지가 표시됩니다.

  3. 인스턴스 수정을 클릭합니다.

  4. 새 인스턴스 구성으로 이동하려면 Google에 문의를 클릭하고 Spanner 인스턴스 이동 요청 양식을 작성하세요.

    양식이 제출되면 Google에서 인스턴스 이동 시작일을 연락합니다.

소스 인스턴스 구성의 백업

Spanner 인스턴스 구성을 이동할 때 소스 인스턴스의 백업이 새 대상 구성으로 자동으로 이동되지 않습니다. 인스턴스 구성을 이동하기 전에 백업을 복사하고 데이터 복구 계획을 고려하는 것이 중요합니다.

소스 인스턴스에 필요한 백업이 있는 경우 먼저 이동할 소스 인스턴스와 동일한 인스턴스 구성으로 다른 인스턴스에 백업을 복사해야 합니다. 백업을 다른 인스턴스에 복사한 후에는 인스턴스 구성을 새 인스턴스 구성으로 이동하기 전에 소스 인스턴스의 기존 백업을 삭제해야 합니다. 인스턴스 이동 예약 시간에 소스 인스턴스 구성에 백업이 있는 경우 Google은 인스턴스를 이동하지 않습니다. 가능한 한 이동 날짜(Google에서 알림)에 가깝게 백업을 복사하는 것이 좋습니다.

백업 복사 및 관련 비용에 대한 자세한 내용은 백업 복사를 참조하세요.

이동 요청을 제출한 후 수행할 작업

인스턴스 이동 요청이 완료되면 Google에서는 인스턴스 구성 이동 시작일을 알려줍니다. 일반적으로 영업일 기준 2일 이내에 모든 이동 요청에 응답할 것으로 예상됩니다.

Google에서 이동 날짜 확인을 받은 후에 모든 관련 당사자에게 이동 날짜를 알리고 보관할 백업을 복사할 준비를 합니다.

다음 단계