작업 가이드라인

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

PostgreSQL용 Cloud SQL 인스턴스 작업 가이드라인은 아직 사용할 수 없지만, PostgreSQL 인스턴스에도 같은 원칙이 적용됩니다.

소개

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의 적용을 받지 못합니다. GCP 콘솔의 인스턴스 세부정보 페이지에서 인스턴스가 사용하고 있는 저장용량을 확인할 수 있습니다. 자세히 알아보기

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

인스턴스의 저장소 크기를 늘립니다. 저장용량의 크기를 늘릴 수는 있지만, 줄일 수는 없습니다. 인스턴스의 저장용량 자동 증가 기능을 사용 설정합니다. 자세히 알아보기
CPU 과부하 CPU 사용량이 6시간 동안 98%를 초과하는 경우 인스턴스는 작업 부하에 맞게 크기가 조정되지 않으며, SLA의 적용을 받지 못합니다. GCP 콘솔의 인스턴스 세부정보 페이지에서 인스턴스가 사용하고 있는 가용 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의 적용을 받게 되지는 않습니다.

데이터 아키텍처에 많은 테이블이 필요하면 데이터를 여러 인스턴스로 분할합니다.
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Cloud SQL 문서