병목현상(bottleneck)
병목현상이란 병의 목 부분처럼 넓은 길이 갑자기 좁아짐으로써 교통 정체 현상, 컴퓨터 성능 저하 현상이 일어나는 것이다. 대규모 데이터를 한 번에 내보냈을 때 메모리가 이를 소화하지 못해서 성능이 떨어지는 현상이다.
로깅과 모니터링
로깅과 모니터링은 애플리케이션의 동작과 이벤트를 기록하고 분석하는 과정이다. 로그는 애플리케이션 실행 중에 발생하는 다양한 정보를 기록한다. 로그를 적절하게 모니터링하고 분석하여 병목 현상이 발생하는 지점을 식별하여 병목 현상 해결에 기여할 수 있다.
로깅 에이전트(Logging Agent)
로깅 에이전트는 애플리케이션에서 생성되는 로그를 수집하고 중앙 로깅 시스템으로 전송한다.
로그 수집, 로그 형식 변환(JSON, CSV), 필터링, 전송 및 라우팅을 한다.
Cloud Logging
클라우드 상 리소스에 대한 로깅을 위해 클라우드 로깅 에이전트를 제공한다.
모니터링
- GCP의 Stackdriver는 클라우드 기반 애플리케이션의 성능, 업타임, 전반적인 상태에 관한 모니터링 정보를 제공한다.
- Stackdriver는 Google Cloud Platform, Amazon Web Services, 호스팅 된 업타임 프로브, 애플리케이션 계측은 물론 Cassandra, Nginx, Apache 웹 서버, Elasticsearch 등의 다양한 공통 애플리케이션 구성요소에서 측정항목, 이벤트, 메타데이터를 수집한다.
- Stackdriver는 이러한 데이터를 수집하고 대시보드, 차트, 알림을 통해 유용한 정보를 제공한다.
- Stackdriver 알림은 Slack, PagerDuty 등과 통합되어 공동작업 시 유용하게 사용된다.
Cloud Monitoring
구글 클라우드 모니터링 서비스는 Trace, Profiler, Debugger, Error Reporting, Logging, Monitoring이 있다.
GCP 로그 및 모니터링 서비스
- Trace: 애플리케이션 에러와 성능 이슈를 찾고 디버깅 등을 제공한다.
- Profiler: 프로덕션에서 실행되는 애플리케이션 성능을 지속적으로 추적한다.
- Debug Snapshot: 워크로드에 영향을 주지 않으면서 운영(프로덕션) 중인 애플리케이션을 디버그 한다. 또한 디버깅을 공동작업할 수 있다.
gcloud debug snapshots create LOCATION
- Error Reporting: 로그로 애플리케이션 동작과 상태를 추적하고 문제 발생 시 알람을 해준다. 에러 리포팅 시 호출 스택을 포함하면, 에러 발생 지점을 정확하게 파악하고 디버깅하는데 도움을 준다.
- Logging: 애플리케이션에서 발생한 이벤트 및 로그를 수집하고 저장하는 서비스이다.
- Monitoring: 애플리케이션과 인프라스트럭처의 상태를 실시간으로 감시하고 리소스 사용량, 성능 지표를 알림을 해서 시스템의 상태를 파악하고 관리한다.
*호출 스택은 함수 호출 흐름을 시각화하여 이슈가 발생한 함수와 그 함수를 호출하는 다른 함수들은 무엇인지 파악할 수 있다.
모니터링 데이터 유형
메트릭(Metric)
애플리케이션/서비스의 상태, 동작, 성능을 수치적으로 나타낸 값이다.
- 집계된 데이터. 예: 1분 동안의 이벤트 수 또는 분당 일부 이벤트의 비율
- 특정 시점의 숫자 상태. 예: CPU 온도 판독값 또는 사용된 CPU%’ 상태.
이벤트(Event)
애플리케이션에서 발생하는 사건이나 상태 변화를 나타내는 메시지이다.
Ex) 파드(Pod) 재시작, 스케일 업/아웃 작업
VM을 사용하면 인프라를 고려하여 아래와 같은 모니터링 및 로깅 서비스를 사용해야 한다.
'Cloud > GCP' 카테고리의 다른 글
[GCP] GKE 배포, 로드밸런서 서비스 배포, 카나리아 배포 (0) | 2023.07.12 |
---|---|
[GCP] 구글 클라우드와 컨테이너 (0) | 2023.07.10 |
[GCP] 구글 클라우드의 리소스 관리 : 리소스 계층 및 리소스 관리 방법 (0) | 2023.07.10 |
[GCP] 클라우드 컴퓨팅과 구글 클라우드 (0) | 2023.07.10 |