옵저버빌리티 (Observability)
1. 옵저버빌리티 (Observability)
- 클라우드 네이티브 및 마이크로서비스(MSA) 환경에서 장애나 성능 저하가 발생했을 때, 단순한 시스템 이상 유무(모니터링)를
넘어 '왜 문제가 발생했는지' 그 원인을 추적하고 해결책을 도출하는 데 필수적인 핵심 개념
옵저버빌리티의 3대 요소 (The 3 Pillars)
메트릭 (Metrics) : 시스템의 전반적인 상태를 나타내는 수치형 데이터 (예: CPU 사용률, 메모리 점유율, 초당 요청 수)특정 임계값을 초과할 때 알림을 보내는 기준이 됩니다.
로그 (Logs) : 시스템에서 발생한 이벤트와 시간의 기록 (예: 에러 메시지, 트랜잭션 진행 상황)문제 발생 당시 무슨 일이 있었는지 세부적인 증거를 제공합니다.
추적 (Traces) : 사용자의 요청이 분산된 시스템(여러 마이크로서비스)을 거치는 전체 경로를 추적하는 데이터요청이 어느 구간에서 지연되거나 실패했는지 병목 현상을 정확히 짚어냅니다.
옵저버빌리티가 필요한 이유
복잡성 대응: 현대의 마이크로서비스 및 분산 클라우드 환경은 구조가 복잡하여 전통적인 방식으로는 장애 위치를 찾기 어렵습니다.
신속한 해결(MTTR 단축): 원인 파악 시간을 줄여 시스템 다운타임(장애 시간)을 최소화합니다.
사용자 경험(UX) 최적화: 시스템 성능 저하의 원인을 선제적으로 발견하여 안정적인 서비스를 제공합니다.
2. 테라폼
- 테라폼은 프로그램 코드를 통해 인프라 서버를 구축/운영 할 수 있게 해주는 오픈 소스 소프트웨어
핵심 장점
- 멀티 클라우드 지원: AWS, Azure, Google Cloud(GCP), 네이버 클라우드 등 다양한 클라우드 환경의 리소스를 동일한 코드 문법으로 한 번에 관리할 수 있습니다.
- 선언적 언어: '어떻게' 만들지가 아니라 '무엇을' 만들지(최종 상태)를 코드로 작성하면, 테라폼이 알아서 필요한 작업(생성, 삭제, 변경)을 파악하고 실행합니다.
- 버전 관리 및 협업: 인프라 설정 파일을 코드 파일로 저장하기 때문에 Git 같은 버전 관리 도구로 이력을 추적하고 팀원들과 쉽게 협업할 수 있습니다.
- 변경 사항 미리보기: 인프라를 실제로 적용하기 전에 어떤 부분이 변경될지 미리 확인(terraform plan)하여 실수를 방지합니다.
3.IaC(Infrastructure as Code, 코드형 인프라)
- 서버, 데이터베이스, 네트워크 등 복잡한 인프라를 웹 콘솔에서 마우스로 클릭하여 설정하는 대신, 코드로 정의하여 프로그래밍하듯 자동 배포하고 관리하는 방식
댓글
댓글이 없습니다.
