데이터베이스 관측 가능성 정보

데이터베이스 관측 가능성은 로그, 측정항목, trace에서 생성되는 데이터 또는 원격 분석을 기반으로 데이터베이스 시스템의 내부 상태를 얼마나 정확하게 추론할 수 있는지 측정합니다.

애플리케이션의 문제 진단 및 문제 해결은 데이터베이스가 포함될 때 특히 까다롭고 시간이 오래 걸릴 수 있습니다. 원격 분석 컬렉션은 매우 중요합니다. 원격 분석을 애플리케이션 컨텍스트로 보강하면 데이터베이스 인스턴스를 이해, 관측, 유지보수하기가 더 쉬워집니다. 비용이 많이 드는 다운타임 없이 문제와 문제가 있는 트렌드를 손쉽게 파악하고 조기에 해결할 수 있습니다. 또한 이러한 데이터를 사용함으로써 시작 시점부터 올바른 종류의 데이터를 수집하도록 새 데이터베이스 인스턴스를 구성할 수 있습니다.

데이터를 효과적으로 사전에 사용하여 문제를 방지하고 전략적 혁신에 집중할 수 있습니다. 우수한 원격 분석 수집은 데이터베이스 일반 사용자가 원격 분석을 독립적으로 분석하여 급속하게 진화하는 애플리케이션의 성능과 상태를 모니터링, 평가, 최적화해야 하는 DevOps 모델에서 특히 유용합니다.

Google Cloud는 Cloud SQL 데이터베이스의 상태를 유지하는 데 도움이 되는 4가지 반복되는 관측 가능성 단계를 아우르는 여러 강력한 기능을 제공합니다.

관측 가능성 반복 단계 구현

자동화된 원격 분석 컬렉션

Google은 관측 가능성 목표를 달성하기 위해 가급적 자동화된 프로세스를 통해 원격 분석을 수집하는 것부터 시작합니다. 원격 분석을 일정 기간 수집하면 다양한 부하 조건에서 측정항목의 기준을 설정하는 데 도움이 됩니다.

Google Cloud 서비스는 완전한 관측 가능성 개요를 제공하는 데 도움이 되는 측정항목, 로그, trace를 포함한 관측 가능성 데이터를 자동으로 생성합니다.

  • Cloud Monitoring은 서비스 및 사용 중인 Google Cloud 리소스의 측정값을 수집합니다. Cloud SQL은 내장된 메모리 커스텀 에이전트를 사용하여 쿼리 원격 분석을 수집하므로 성능에 미치는 영향이 줄어들고 에이전트 유지보수 또는 보안 오버헤드가 필요하지 않습니다.

  • Cloud Logging은 일반적인 애플리케이션 구성요소에서 로깅 데이터를 수집합니다. Cloud SQL의 경우 인스턴스 로그 보기도 참조하세요.

  • Cloud Trace는 애플리케이션을 통해 요청이 전파되는 방식을 추적할 수 있도록 애플리케이션에서 지연 시간 데이터 및 실행된 쿼리 계획을 수집합니다. 시간 경과에 따라 또는 버전 간에 이러한 지연 시간 분포를 비교할 수 있습니다. Cloud Trace는 Cloud Trace를 사용하도록 계측된 애플리케이션의 지연 시간 프로필에서 큰 변화가 감지되었을 때 알림을 표시합니다.

데이터베이스용 OpenTelemetry 라이브러리인 Sqlcommenter는 애플리케이션의 관점에서 데이터베이스를 모니터링하는 데 도움이 됩니다. Sqlcommenter는 ORM을 자동으로 계측하여 SQL 문을 태그로 보강하고 OpenTelemetry trace 컨텍스트 정보를 데이터베이스에 전파할 수 있도록 합니다.

데이터베이스에서 태그와 trace 애플리케이션 컨텍스트를 사용하면 애플리케이션 코드를 데이터베이스 성능과 손쉽게 연관시키고 마이크로서비스 기반 아키텍처의 문제를 쉽게 해결할 수 있습니다.

데이터베이스 모니터링

적절한 모니터링을 통해 애플리케이션이 최적으로 작동하는지 확인할 수 있습니다. 마이그레이션 시작 전 또는 새 애플리케이션을 프로덕션 환경에 배포하기 전 등 사전에 모니터링을 구현합니다. 애플리케이션 문제와 근본적인 클라우드 문제를 구별합니다.

Cloud SQL 개요 페이지에서 몇 가지 주요 측정항목에 대한 그래프를 보여줍니다.

또한 Cloud SQL는 선택한 인스턴스에 대해 측정항목을 비교하는 데 도움이 됩니다.

Cloud Monitoring을 사용하면 측정항목을 모니터링하는 데 도움이 되는 커스텀 대시보드를 생성하고 알림 정책을 설정하여 적시에 알림을 받을 수 있습니다.

데이터베이스 및 쿼리 분석

Cloud SQL 쿼리 통계 도구는 쿼리 성능 문제를 감지하고 수정할 수 있게 해주는 모니터링 및 진단을 제공합니다.

쿼리 통계 대시보드는 쿼리 성능 문제를 조기에 파악하고 단일 인터페이스를 사용하여 감지에서 해결까지 처리할 수 있도록 도와줍니다. 기본 제공 시각적 쿼리 계획은 근본 원인을 찾아 문제를 해결하는 데 도움이 됩니다. 컨텍스트 내 엔드 투 엔드 애플리케이션 추적을 사용하여 문제가 있는 쿼리의 소스를 찾을 수도 있습니다.

쿼리 통계는 객체 관계형 매핑(ORM)을 사용하여 빌드된 애플리케이션의 성능 문제를 진단하는 데 유용한 애플리케이션 중심 모니터링을 제공합니다. 쿼리에 연결된 비즈니스 로직(예: 결제, 인벤토리, 비즈니스 분석, 배송)으로 쿼리를 태그할 수 있습니다. 쿼리 통계는 기존 APM 도구와 통합할 수 있으므로 원하는 도구로 쿼리 문제를 모니터링하고 해결할 수 있습니다.

쿼리 통계 도구는 sqlcommenter를 사용하여 ORM을 자동으로 계측합니다. 이 계측을 통해 문제를 일으키는 애플리케이션 코드를 식별할 수 있습니다. 쿼리 통계는 OpenTelemetry 표준을 지원하고 Google Cloud Observability API를 통해 APM 도구에 쿼리 측정항목과 trace 데이터를 사용할 수 있게 해줍니다.

쿼리 통계는 Cloud Monitoring과 통합되어 쿼리 측정항목 또는 태그에 대한 커스텀 대시보드와 알림을 만들고 이메일, SMS, Slack, PagerDuty 등을 사용하여 알림을 받을 수 있습니다.

데이터베이스 조정

데이터베이스 문제해결 및 조정을 반복할 수 있습니다.

Cloud SQL 추천자는 데이터베이스의 현재 사용량을 분석하고 휴리스틱 메서드 및 머신러닝을 기반으로 권장사항통계를 제공합니다.

Cloud SQL 추천자는 다음과 같이 간략하게 설명되어 있습니다.

이름 설명
디스크 공간 부족 추천자 Cloud SQL 인스턴스의 디스크 공간 부족으로 인해 발생할 수 있는 다운타임 위험을 줄입니다.
유휴 인스턴스 추천자 의도치 않게 유휴 상태인 Cloud SQL 인스턴스를 종료하여 비용을 줄입니다.
초과 프로비저닝된 인스턴스 추천자 특정 워크로드에 불필요하게 큰 Cloud SQL 인스턴스의 크기를 조절하여 비용을 절감하세요.
과소 프로비저닝된 인스턴스 추천자 높은 CPU 또는 메모리 사용량의 병목 현상을 방지하고 CPU 또는 메모리 사용량이 많은 Cloud SQL 인스턴스의 크기를 조절하여 메모리 부족 이벤트 가능성을 최소화하세요.
열린 테이블 수가 많은 추천자 테이블 열기 캐시와 동일하게 열린 테이블 수가 있고 동시에 많은 테이블을 계속 여는 Cloud SQL 인스턴스의 테이블 열기 캐시 크기를 늘려서 인스턴스의 성능을 최적화합니다.
테이블 수가 많은 추천자 테이블 수가 너무 많고 SLA 한도에 근접한 Cloud SQL 인스턴스에 대해 테이블 수를 줄여 인스턴스 성능을 최적화합니다.

다음 단계