작업 가이드라인

Cloud SQL SLA 계약에서 'Google의 합리적인 통제 범위를 벗어난 요인으로 인해 발생하는' 중단은 제외됩니다. 이 페이지에서는 MySQL용 2세대 Cloud SQL 인스턴스가 중단될 수 있는 사용자 제어 구성 중 계약에서 제외되어야 할 몇 가지 구성에 대해 설명합니다.

PostgreSQL용 Cloud SQL 및 SQLServer 인스턴스 작업 가이드라인은 아직 사용할 수 없지만 동일한 원칙이 적용됩니다.

소개

Cloud SQL은 인스턴스 구성 방법을 사용자가 최대한 제어할 수 있도록 하기 위해 노력하고 있습니다. 여기에는 부하 및 기타 구성 매개변수에 따라 인스턴스 다운타임의 위험을 증가시킬 수 있는 몇 가지 구성이 포함됩니다. 인스턴스가 중단되었을 때 Cloud SQL에서 확인한 결과, 이 페이지에 설명한 작업 제한을 준수하지 않아 중단되었다고 판단될 경우 다운타임 기간은 Cloud SQL SLA 계약의 적용을 받지 못합니다(또는 계산에 포함되지 않음).

이 작업 제한 목록은 위와 같은 위험을 야기하는 구성, 그러한 구성 중 하나로 잘못 이동하지 않도록 예방하는 방법, 비즈니스 환경에 따라 그러한 구성이 꼭 필요할 경우 위험을 완화하는 방법을 알려주기 위한 것입니다.

제외되는 구성

제외되는 구성은 다음과 같은 카테고리로 분류됩니다.

  • 일반적인 구성 요구사항
  • 데이터베이스 플래그 값
  • 리소스 제약조건

일반적인 구성 요구사항

하나 이상의 전용 CPU와 함께 고가용성으로 구성된 Cloud SQL 인스턴스만 SLA의 적용을 받습니다. 공유 코어 인스턴스와 단일 영역 인스턴스에는 SLA가 적용되지 않습니다.

데이터베이스 플래그 값

Cloud SQL에서는 데이터베이스 플래그를 사용하여 인스턴스를 구성할 수 있습니다. 이 플래그 중 일부는 인스턴스의 안정성이나 데이터의 내구성을 손상시킬 수 있는 방법으로 설정될 수 있습니다.

다음 표에는 SLA가 적용되지 않는 값이 들어 있는 플래그가 나와 있습니다.

플래그 설명 제외되는 설정 잠재적인 영향 위험 완화
general_log MySQL 일반 로그를 사용 설정합니다. On(log_output 플래그가 TABLE로 설정된 상태에서) 재시작이 느려집니다. log_output 플래그를 FILE로 설정합니다.
slow_query_log MySQL 느린 쿼리 로그를 사용 설정합니다. On(log_output 플래그가 TABLE로 설정된 상태에서) 재시작이 느려집니다. log_output 플래그를 FILE로 설정합니다.
max_heap_table_size 메모리 테이블의 크기를 결정합니다. 기본값보다 큰 값 메모리 부족(OOM) 오류로 인한 인스턴스 중단 기본 설정을 유지합니다.
temp_table_size 임시 테이블의 크기를 결정합니다. 기본값보다 큰 값 메모리 부족(OOM) 오류로 인한 인스턴스 중단 기본 설정을 유지하거나, 인스턴스 용량을 초과하지 않도록 워크로드를 신중하게 계획합니다.
query_cache_size query_cache_type 이 플래그는 함께 사용되어 쿼리 캐시의 크기를 결정합니다. 기본값보다 큰 값 메모리 부족(OOM) 오류로 인한 인스턴스 중단 기본 설정을 유지하거나, 인스턴스 용량을 초과하지 않도록 워크로드를 신중하게 계획합니다.

리소스 제약조건

SLA의 적용을 받으려면 다음 리소스 제약조건을 피해야 합니다.

제약조건 설명 감지 해결 방법 예방 방법
스토리지가 가득 참 스토리지 자동 증가 기능을 사용하도록 설정하지 않은 상태에서 인스턴스의 스토리지가 부족해지면 인스턴스가 오프라인으로 전환됩니다. 이러한 중단에는 SLA가 적용되지 않습니다. Cloud Console의 인스턴스 세부정보 페이지에서 인스턴스가 사용하고 있는 스토리지를 확인할 수 있습니다. 자세히 알아보기

스토리지 사용량을 모니터링하고 지정된 임곗값에 도달할 때 알림을 받으려면 Stackdriver 알림을 설정하세요. 자세히 알아보기

인스턴스의 스토리지 크기를 늘립니다. 스토리지의 크기를 늘릴 수는 있지만 줄일 수는 없습니다. 인스턴스의 스토리지 자동 증가 기능을 사용 설정합니다. 자세히 알아보기
CPU 과부하 CPU 사용량이 6시간 동안 98%를 초과하는 경우 인스턴스는 워크로드에 맞게 크기가 조정되지 않으며, SLA가 적용되지 않습니다. Cloud Console의 인스턴스 세부정보 페이지에서 인스턴스가 사용하고 있는 가용 CPU 비율을 확인할 수 있습니다. 자세히 알아보기

CPU 사용량을 모니터링하고 지정된 임곗값에 도달할 때 알림을 받으려면 Stackdriver 알림을 설정하세요. 자세히 알아보기

인스턴스의 CPU 수를 늘립니다. 등급을 변경하려면 인스턴스를 다시 시작해야 합니다.

인스턴스가 이미 최대 CPU 수에 도달한 경우에는 데이터베이스를 여러 인스턴스로 샤딩하세요.

CPU 사용량을 모니터링하고 필요한 경우 사용량을 늘립니다. 인스턴스 등급을 변경하려면 다시 시작해야 합니다.
복제 지연 시간이 너무 큼 복제 지연 시간이 1,200초를 초과하여 발생하는 장애 조치 다운타임은 인스턴스의 SLA 계산에 포함되지 않습니다. 장애 조치 복제본에서 Seconds Behind Master 측정항목을 사용하여 복제 지연 시간을 모니터링할 수 있습니다. 마스터의 수신 부하를 제한하거나 데이터베이스를 샤딩합니다. 복제 지연 시간 알림을 생성하고, 필요에 따라 수정 조치를 취합니다. 자세히 알아보기
데이터베이스 테이블이 너무 많음 단일 인스턴스에 데이터베이스 테이블이 10,000개 이상 있으면 인스턴스가 응답하지 않거나 유지보수 작업을 수행하지 못할 수 있으며, 인스턴스가 SLA의 적용을 받지 못합니다. SELECT COUNT(*) FROM information_schema.tables; 를 사용해 인스턴스에 있는 테이블 수를 확인할 수 있습니다. SELECT TABLE_SCHEMA,COUNT(*) FROM information_schema.tables group by TABLE_SCHEMA; 를 사용해 각 데이터베이스에 있는 테이블 수를 확인할 수 있습니다. 테이블 수를 10,000개 미만으로 줄입니다.

테이블 수를 즉시 줄일 수 없는 경우에는 innodb_file_per_table 플래그를 OFF로 설정합니다. 이렇게 하면 많은 테이블 수로 인해 인스턴스가 영향을 받을 가능성이 줄어듭니다. 하지만 인스턴스가 다시 SLA의 적용을 받게 되지는 않습니다.

데이터 아키텍처에 많은 테이블이 필요한 경우 여러 인스턴스에 데이터를 분할합니다.