Google Cloud 아키텍처 프레임워크의 이 문서에서는 서비스 성능을 더욱 잘 파악하고 문제를 빠르게 식별할 수 있도록 서비스에 관측 가능성을 추가하는 권장사항을 제공합니다. 관측 가능성에는 모니터링, 로깅, 추적, 프로파일링, 디버깅, 기타 유사한 시스템이 포함됩니다.
모니터링은 Google SRE 핸드북의 서비스 안정성 계층 구조를 기반으로 합니다. 적절한 모니터링 없이는 애플리케이션이 제대로 작동하는지 알 수 없습니다.
코드를 사용하면 관측 가능성을 극대화할 수 있습니다.
잘 설계된 시스템은 개발 단계에서 시작되는 적절한 관측 가능성을 제공하는 것을 목표로 합니다. 관찰을 시작하기 전에 애플리케이션이 프로덕션 단계에 올 때까지 기다리지 마세요. 코드를 계측하고 다음 안내를 고려하세요.
- 효율적으로 디버깅하고 문제를 해결하려면 기록할 로그 및 trace 항목과 모니터링하고 내보낼 측정항목을 고려하세요. 가능성이 가장 높거나 빈번하게 발생하는 시스템의 장애 모드에 따라 우선순위를 지정합니다.
- 주기적으로 모니터링을 감사하고 프루닝합니다. 사용되지 않거나 불필요한 대시보드, 그래프, 알림, 추적, 로깅을 삭제하여 깔끔하게 정리합니다.
Google Cloud Observability는 실시간 모니터링, 하이브리드 멀티 클라우드 모니터링 및 로깅(예: AWS 및 Azure)은 물론 추적, 프로파일링, 디버깅을 제공합니다. Google Cloud Observability는 App Engine 또는 Istio와 같은 서비스 메시에서 실행 중인 마이크로서비스를 자동으로 검색 및 모니터링할 수 있습니다.
애플리케이션 데이터를 많이 생성하는 경우 BigQuery를 사용하여 분석 이벤트 로그 대규모 수집을 최적화할 수 있습니다. BigQuery는 모니터링 프레임워크에서 카디널리티가 높은 시계열 데이터를 유지하고 분석하는 데도 적합합니다. 이 방식은 모니터링을 완전히 처음부터 설계하고 모니터링에서 보고를 분리하는 것에 비해 저렴한 비용으로 임의 쿼리를 실행할 수 있으므로 유용합니다. Looker Studio 또는 Looker를 사용하여 데이터로부터 보고서를 만들 수 있습니다.
권장사항
아키텍처 프레임워크의 안내 사항을 사용자의 고유 환경에 적용하려면 다음 권장사항을 따르세요.
- 마이그레이션 시작 전 또는 새 애플리케이션을 프로덕션 환경에 배포하기 전 등 사전에 모니터링을 구현합니다.
- 애플리케이션 문제와 근본적인 클라우드 문제를 구별합니다. Monitoring API 또는 다른 Cloud Monitoring 제품 및 Google Cloud 상태 대시보드를 사용합니다.
- 모니터링 외에도 추적, 프로파일링, 디버깅을 포함한 관측 가능성 전략을 정의합니다.
- 실행되지 않는 알림과 같이 사용하지 않거나 값을 제공하지 않는 관측 가능성 아티팩트를 정기적으로 삭제합니다.
- 대량의 관측 가능성 데이터를 생성하는 경우 애플리케이션 이벤트를 BigQuery와 같은 데이터 웨어하우스 시스템으로 전송합니다.
다음 단계
- 확장성 및 고가용성 설계(이 시리즈의 다음 문서)
- 아키텍처 프레임워크의 다른 요소에서 권장사항 살펴보기