DevOps LGTM 스택 도입기

이번 글에서는 Observability 도구로써 LGTM 스택을 채택하고 적용한 경험에 대해 이야기합니다. LGTM 스택은 시스템 모니터링, 로그 관리, 대시 보드 제공, 분산 추적을 위한 도구들로 구성되어 있으며, 서비스의 성능과 안정성을 확보하는 데 중요합니다. 저희 팀은 AWS EKS 위에서 MSA 구조의 수십여개의 서비스를 운영 중입니다. 서비스 개수가 증가하면서 서비스 간의 통신 구조가 복잡해져 애플리케이션에서 문제 발생 시 문제점을 찾는 것이 어려워졌습니다. 그래서 여러 도구들을 사용하고 있었지만 운영 비용이 증가했습니다. 그러던 중 LGTM 스택을 도입하게 되었고, Metrics, Logs, Traces의 관점에서 이를 적용해보았습니다. 특히 Logs와 Traces는 Loki와 Tempo를 사용하여 처리하고 있습니다. Loki를 사용하면 로그 검색용으로 사용할 수 있으며, Loki의 라벨 관련 기능을 사용하면 쿼리 성능을 개선할 수 있습니다. Tempo는 상대적으로 가벼운 Object Storage를 사용해 트레이스 데이터를 저장합니다. 다만, 트레이스 데이터를 추적하기 위해서는 서비스 개발자들이 서비스에 트레이스 생성을 위한 작업을 해야 합니다. 핀 다의 백엔드는 주로 Spring Boot로 구성되어 있는데, Spring Cloud Sleuth나 Micrometer를 이용하여 트레이스를 생성하고 있습니다. 이를 통해 서비스 상태를 파악하고 대시 보드를 생성하는데 도움을 받고 있습니다.