[MSA] Telemetry(텔레메트리)

곽우현·2022년 6월 28일
0

MSA

목록 보기
1/1
post-thumbnail

EKS로 MSA를 구성할때 모니터링, 로깅 관련 기술스택을 찾던중 Outer Architecture중 Telemetry에 대한 개념이 나와 정리하게 되었다.

Telemetry (원격 측정법)

MSA에서 여러개의 마이크로 서비스가 분산환경에서 운영되기 때문에 서비스들의 상태를 일일이 모니터링하고 이슈에 대응하는 것은 힘든 일이다.
Telemetry는 이러한 분산 서비스의 이슈들을 대응할 수 있도록 환경을 구성하는 역할을 한다.

Telemetry는 기본적으로 컨테이너 환경에서는 Container 내부에 로그를 남기지 않으며 대부분 수십대 많게는 수백대의 컨테이너를 관리 하기 때문에 이에 대한 가시성을 확보 및 로그를 관리 하는 역할을 담당한다.

Telemetry는 Grafana, Prometheus, EFK와 같이 오픈소스로 직접구현하는 방법, Datadog와 같은 상용 솔루션을 이용하는 방법, 그리고 AWS Cloud watch, GCP Stackdriver와 같이 Public Cloud의 SaaS를 이용하는 방법으로 구현할 수 있다.

주요기능

1. Monitoring

  • 모니터링은 인프라 및 응용 프로그램의 성능이나 효율성을 확인하는 작업으로 마이크로 서비스를 운영하는데에 필요하다.
  • Monitoring을 위해서는 metric 수집, logging, Tracing 영역에서의 데이터 수집 및 분석이 필요하다.
  • Monitoring은 각 대상에서 수집한 Metric을 통해 대상의 리소스 사용률이나, 트래픽 등을 대시보드로 볼 수 있게 해준다.
  • Public Cloud : AWS Cloud Watch, GCP Stackdriver Azure Monitor 등
  • Open Source : Prometheus 등

2. Logging

  • Log는 실행중인 프로세스에서 발생하는 이벤트를 말하며, Logging은 이러한 Log들을 수집하여 보여주는 것을 말한다. MSA는 모놀리식 아키텍쳐보다 실행하는 프로세스의 수가 많기에 장애 발생시 Root Cause를 파악하기 힘들다.
  • 로그를 서비스 내 저장소에 저장할 경우, (컨테이너 환경이면 볼륨을 지정해 주어야 함) 관리가 어려워지므로 로그를 어플리케이션 서버 내부에 저장하지 않고 외부 저장소에 저장한다.
  • 모놀리식 아키텍처와 달리 MSA에서 컨테이너는 Application과 '약한 결합'이다. 즉, 컨테이너를 배포할 때마다 달라질 수 있어 디스크 저장 상태에 의존하는 것이 아니라 별도의 Logging 도구를 활용하는 것이 효율적이다.
  • Public Cloud : AWS Elastic Search 등
  • Open Source : EFK, ELK, PLG 등

3. Tracing

  • Tracing은 MSA에서 발생한 Event를 발생한 순서대로 나열하여 추적할 수 있게 해주는 기능이다.
  • Public Cloud : AWS X-Ray 등
  • Open Source : Jeager, Zipking 등
profile
주니어 Java 개발자

0개의 댓글