일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MFA 인증
- docker -i -t
- ebs 재부팅
- 테라폼 설치
- ebs 마운트
- 테라폼 맥
- 볼륨 연결
- AWS
- 리눅스
- Mac Terraform
- xfs_quota
- 테라폼 캐시
- 디스크 성능테스트
- EBS 최적화
- 컨테이너 터미널 로그아웃
- 컨테이너 터미널
- /etc/fstab 뜻
- 볼륨추가
- Authenticator
- Terrafrom
- docker 상태
- 리눅스 시간대
- epxress-generator
- EBS
- 텔레메트리란
- AWS EBS
- EC2
- MFA 분실
- /etc/fstab 설정
- 테라폼 자동완성
- Today
- Total
I got IT
Telemetry 란? 본문
Telemetry란 ?
DevOps 에서 안정적인 운영 환경을 관리하기 위해서는 전사 시스템에서 어떤 일이 일어나는지 어떤 상태인지 확인할 수 있어야 합니다.
IT 시스템 내부의 모든 것은 관리자 하에 통제되어야 합니다.

통제를 위해서는 기본적으로 시스템에 대한 관측이 필요하고 원격으로 데이터를 수집하고 측정하는 기술 또는 과정을 Telemetry라고 합니다.
최근 MSA, 컨테이너, 클라우드 등 새로운 기술을 이용한 서비스를 도입하면서 시스템 복잡성이 점차 증가하며 관리의 어려움 때문에 Telemetry 의 중요성이 대두되고 있습니다. 따라서 이러한 Telemetry를 통해 Observability를 확보하는 것 IT 비즈니스의 핵심 요소 중 하나가 되었습니다.
Telemetry의 목표
IT 시스템에서 텔레메트리의 목표는 다음과 같습니다
1. 성능 모니터링:
IT 시스템의 성능을 모니터링하고, 리소스 사용량, 처리량, 응답 시간 등과 같은 핵심 성능 지표를 추적합니다. 이를 통해 시스템의 성능 문제를 조기에 감지하고, 병목 현상이나 성능 저하를 식별하여 조치를 취할 수 있습니다.
2. 장애 진단 및 문제 해결:
데이터를 분석하여 잠재적인 문제를 식별하고, 시스템 장애의 원인을 파악합니다. 이를 통해 신속한 대응 조치를 취하고 장애 복구 시간을 단축할 수 있습니다.
3.용량 계획:
IT 시스템의 리소스 사용량을 모니터링하고, 성능 트렌드를 분석하여 향후 용량 요구 사항을 예측합니다. 이를 통해 용량 계획을 수립하여 리소스의 효율적인 할당과 확장을 관리할 수 있습니다.
4. 보안 감시:
IT 시스템의 보안 상태를 모니터링하고, 이상 행위나 침입 시도 등의 보안 위협을 탐지합니다. 이를 통해 신속한 대응 조치를 취하고 보안 사고를 예방할 수 있습니다.
5. 사용자 경험 개선:
텔레메트리 데이터를 분석하여 사용자의 동작 패턴, 선호도, 응답 시간 등을 이해하고 개선할 수 있습니다. 이를 통해 사용자의 만족도를 높이고, 서비스 품질을 개선할 수 있습니다.
텔레메트리는 IT 운영 및 관리에 필수적인 요소로서, 시스템의 상태와 동작을 실시간으로 모니터링하고 분석하여 효율성과 안정성을 향상시키는 데 기여합니다.
Telemetry 의 핵심 요소
Monitoring
시스템 및 인프라의 상태와 동작에 대한 데이터를 수집하고 감시합니다. 모니터링에서 핵심적으로 수집해야 할 데이터는 대표적으로 Metrics, Log, Trace 입니다.
- Metrics: CPU 사용량, 디스크I/O 속도, 메모리 사용량, 디스크 사용량 등 전반적인 서버의 상태를 수집합니다.
- Log: 프로세스나 서비스에서 발생하는 로그를 수집합니다. 일반적으로 OS에서 생성되는 syslog나 웹서버의 경우 apache, nginx등 프로세스에서 발생하는 앱로그 등을 수집합니다.
주요한 모니터링 도구로는 AWS의 CloudWatch, OSS로는 Prometheus 등이 있습니다.
- Trace: 트레이스는 독립된 컴포넌트 간의 데이터 송수신에 대한 추적 정보입니다. 예를 들면 한 유저가 특정 웹사이트에 접속하는 경우, 요청이 어느 컴포넌트에 도착했는지, 어느 컴포넌트로 부터 데이터를 모아 웹페이지의 화면을 생성하는지 등을 살펴볼 수 있습니다. 현대 MSA 구조에서 컴포넌트가 복잡해지면서 성능 개선 및 디버깅을 위해 사용됩니다.

Logging
수집 단계에서 수집한 데이터들을 적재합니다. 이를 로깅이라하며 로깅된 데이터를 분석하거나 시각화 하여 유의미한 정보를 도출해냅니다.

AWS 에서는 로깅 엔드포인트를 CloudWatch Logs나 S3로 지정하여 AWS Athena, AWS Opensearch 에서 분석 및 시각화할 수 있습니다.

오픈소스의 대표적인 ELK 스택은 수집대상 Agent를 통한 지표 수집부터 로그를 인덱싱화 하여 분석 및 시각화 가능합니다.
Tracing
각 작업의 실행 경로와 시간을 추적하여 성능 문제를 식별하고 디버깅하는 데 사용됩니다. Tracing은 트랜잭션이 비교적 복잡한 분산시스템에서 더 중요시됩니다. 주요한 tracing 도구로는 Jaeger, Zipkin, OpenTelemetry, AWS의 경우 X-Ray등이 있습니다.

아래는 JAEGER를 사용해 특정 웹사이트의 GET / 요청을 처리할때 시간별 컴포넌트의 작동순서 및 소요시간에 대한 예시입니다.

'DevOps' 카테고리의 다른 글
DevOps 처음 이라면 (0) | 2023.06.16 |
---|---|
ELK 스택이란 ? (0) | 2023.05.13 |
DevOps 엔지니어의 역할 (1) | 2023.05.09 |
DevOps란 ? (0) | 2023.05.08 |