본문 바로가기

Cloud/AWS

클라우드 자원 모니터링

* 모니터링(Monitoring)

- 쿼리카운트, 에러카운트, 처리시간, 서버의 활성시간과 같은 시스템에 관련된 정량적 수치를 실시간으로 수집, 처리, 집계, 보여주는 모든 행위
-> Signal, Telemetry, Trace 등을 수집, 집계하는 행위(Logging 포함)
-> 임계점을 넘어가는 상태에 대한 알림 및 조치

* 관측성, 관측가능성(Observability)
- 모니터링은 관측성의 하위 집합
- 시스템의 잠재적인 문제와 실패를 빠르게 예측하기 위해 모든 서비스들의 동작을 추적해야 함
- 모니터링을 통해 상태를 확인하고, 특정 임계치에 대한 알람을 발생하기 위해 매트릭을 수집/집계
- 관측성은 예측 불가능한 모든 장애 가능성을 알 수 없다는 것을 전제로 함
- 관측성을 확보하기 위해서는 세밀한 데이터가 필요(Metric, Tracing, Logging)
- 집계보다 중요한건 수집된 데이터를 분석하는 능력이며 장애발생시 필요한건 고해상도 매트릭 수집과 탐색도구이다.

1. 매트릭(Metric): 응용 프로그램 및 서비스의 성능과 품질을 측정하는데 도움이 되는 정량 데이터

DB 및 API의 Latency
Request content length
Open file desctiptor 수
Cache hit/miss 수

2. 트레이싱(Tracing): 서비스 요청에 대한 애플리케이션 또는 서비스 구조 확인, 시각화하여 병목현상 파악

3. 로깅(Logging): 실행중인 프로세스에서 발생하는 이벤트(Log)들을 수집해서 보여주는 것 

* 매트릭 수집 방식의 이해(Push/Pull)

- Push
모니터링 주체가 서버에 정보를 보냄
수집 서버 정보를 알아야함
버퍼링 메커니즘(큐)
매트릭 정보 변경시마다 일괄 배포
ex) TICK Stack, Nagios

- Pull
exporters(like agent)
수집 서버 정보 모름
서버에서 필요한 매트릭을 수집
Service Discovery
Push 방식도 지원(Push gateway)

* AMP(Amazon Managed Service for Prometheus) & AMG(Amazon Managed Grafana)

프로메테우스(Prometheus): 매트릭과 얼럿을 기반으로 하는 오픈소스 모니터링 솔루션
그라파나(Grafana): 옵저버빌리티를 위한 오픈소스 기반 데이터 시각화 플랫폼
=> AMP, AMG는 이를 아마존에서 관리해줌

* AWS CloudWatch

매트릭의 대시보드 생성 가능
고유한 사용자 지정 지표를 정의하고 관리 가능

- Logs
로그그룹: 일반적으로 애플리케이션을 나타내는 임의의 이름
로그스트림: 애플리케이션/로그파일/컨테이너 내의 인스턴스
로그 만료 정책을 정의 가능

- Alarm Targets
모든 지표에 대한 알림을 트리거하는데 사용

* AWS CloudTrail

AWS 계정에 대한 거버넌스, 규정 준수 및 감사가 가능하도록 정보 제공
콘솔, SDK, CLI, AWS 서비스 등을 통해 AWS 계정 내에서 이루어진 이벤트/API 호출 기록 확인
CloudTrail의 로그를 CloudWatch Logs로 전달하거나 S3에 저장 가능

728x90
반응형