CloudWatch Logs Insights, 어디까지는 “갓”이고 어디서부터는 “한계”일까? (실전 기준 7가지)
AWS를 쓰다 보면 언젠가 한 번은 이런 순간이 옵니다.
“장애 났다. 로그 봐야 한다.” 그리고 거의 자동 반사처럼 CloudWatch Logs Insights를 엽니다.
막상 써보면 정말 편합니다. 콘솔에서 바로 쿼리 날리고, 그래프까지 뽑히니까요.
그런데 어느 순간부터 이런 느낌도 듭니다. “편한데… 뭔가 아쉽다?”
이 글은 그 ‘아쉬움’의 정체를 딱 정리해드립니다. 앞으로 로그 분석 환경을 설계할 때, 언제 Logs Insights를 쓰고 언제 다른 도구로 넘어갈지 기준이 생길 거예요.
CloudWatch Logs Insights란? “상시 모니터링”이 아니라 “현장 조사” 도구
CloudWatch Logs Insights는 CloudWatch Logs에 쌓인 로그를 쿼리로 검색·집계하는 서비스입니다.
SQL 비슷한 전용 쿼리 언어로 필터링/집계를 빠르게 할 수 있죠.
가장 중요한 관점은 이겁니다.
Logs Insights는 로그 그룹을 지정
그리고 필요할 때만 쿼리를 실행합니다
즉, 대시보드에 상시 떠 있는 관제 도구라기보다,
사건 터졌을 때 들고 뛰는 “로그 탐정의 확대경”에 가깝습니다.
Logs Insights로 “진짜 강력하게” 할 수 있는 3가지 (이것만 알아도 반은 먹고 들어감)
1) 장애 순간, 에러 로그만 빠르게 추려내기 (필터링)
“에러만 보여줘. 지금 당장.” 이 요구에 가장 빠르게 답합니다.
filter @message like /ERROR/특정 서비스/엔드포인트/사용자 ID 같은 키워드로도 즉시 좁힐 수 있어요.
운영에서 가장 많이 쓰는 패턴입니다.
2) ‘얼마나 터졌는지’ 숫자로 만들기 (집계)
로그를 읽는 걸로 끝나면, 결국 감으로 싸우게 됩니다.
Logs Insights는 바로 건수 집계로 “팩트”를 만들어줍니다.
stats count(*) by @logStream이렇게 하면 어느 인스턴스/컨테이너에서 유독 로그가 많이 나오는지 한눈에 보입니다.
“한 대만 미쳐 날뛰는 중” 같은 상황을 잡을 때 특히 유용하죠.
3) “언제부터 이상해졌지?”를 그래프로 보기 (시계열 트렌드)
장애 분석의 절반은 이 질문입니다.
정상 → 비정상으로 바뀐 ‘변곡점’을 찾는 것.
Logs Insights는 시간 축으로 발생량이 튀는 순간을 금방 드러냅니다.
평소 분당 10건이던 에러가 갑자기 분당 100건이 되는 순간, 바로 보이니까요.
Logs Insights에 기대하면 실망하는 4가지 (한계 명확히 알면 돈/시간 절약됨)
1) 실시간 모니터링/자동 감시는 구조적으로 약함
Logs Insights 쿼리는 기본적으로 수동 실행입니다.
“대시보드에 상시 띄워두고 자동 갱신하며 감시” 용도로 쓰기엔 결이 달라요.
로그로 알람을 만들고 싶다면 보통은 이렇게 갑니다.
CloudWatch Logs 메트릭 필터로 로그를 메트릭으로 뽑고
그 메트릭에 CloudWatch Alarm을 겁니다
정리: Logs Insights = 알람 도구가 아니라 조사 도구입니다.
2) 장기간·대량 로그 분석에 불리 + 비용이 ‘스캔량’ 기반
Logs Insights는 쿼리할 때 스캔한 데이터 양만큼 과금됩니다.
짧은 구간/적당한 양은 빠르고 싸게 끝나지만,
“지난 6개월 전체 로그 싹 분석” 같은 순간부터는 속도와 비용이 같이 부담됩니다.
CloudWatch 비용 자체도 보통 수집(ingestion), 저장(storage), 분석(analysis) 3가지로 커지는데, 그중 특히 수집이 큰 비중을 차지하는 경우가 많습니다. 한 사례로, Lambda 실행 비용은 연 $205인데 로그 비용이 연 $10,000이 나온 경우도 보고됩니다(CloudToggle, 2026).
즉, “필요할 때만 스캔”이 아닌 “정기적으로 많이 스캔”하는 순간, 비용은 생각보다 쉽게 폭발합니다.
3) JOIN 같은 ‘데이터 결합형 분석’이 안 됨
로그 그룹 A와 B를 JOIN 해서 상관관계 분석
RDS/CSV/외부 데이터와 대조 분석
이런 “분석 플랫폼스러운” 패턴은 Logs Insights 영역이 아닙니다.
같은 로그 그룹 안에서 requestId/traceId로 추적하는 수준은 가능하지만, 관계형 JOIN과는 다릅니다.
4) 결과를 자동으로 축적/적재하는 파이프라인이 없음
CSV 다운로드는 되지만,
“매일 이 쿼리 돌려서 결과를 누적”
“분석 결과를 데이터 레이크에 자동 저장”
같은 정기 리포트/추세 축적은 기본 기능으로는 약합니다.
이 단계로 가면 S3 + Athena, OpenSearch, DW/BI 쪽으로 역할 분담하는 게 보통 더 깔끔합니다.
언제 Logs Insights를 쓰면 최고의 선택이 될까? (실전 체크리스트)
“필요할 때 꺼내 쓰는” 조사 상황이면 1등
배포 이후 특정 API에서 에러 급증
5xx 알람이 울렸는데 원인이 안 보임
특정 사용자/요청 ID 기반으로 트레이싱 필요
“어느 시점부터” 문제가 시작됐는지 확인 필요
이럴 때 Logs Insights는 가장 빠른 첫 삽입니다.
콘솔에서 바로 파고들 수 있으니까요.
언제부터는 다른 도구를 고민해야 할까? (전환 신호 4개)
아래 중 하나라도 해당되면 Logs Insights를 “주력”으로 쓰기 어렵습니다.
상시 모니터링이 목적이다 → Metrics/Alarm, APM(Datadog, New Relic 등)
정기 리포트가 필요하다 → Athena/QuickSight/BI
장기 트렌드/대용량 분석이 핵심이다 → S3 데이터 레이크 + Athena/DW
여러 데이터 소스 결합 분석이 필요하다 → OpenSearch, DW, BigQuery 등
Logs Insights는 이때 “주력 플랫폼”이 아니라,
옆에서 민첩하게 파고드는 보조 조사 도구로 두는 게 가장 아름다운 포지션입니다.
결론: Logs Insights는 ‘플랫폼’이 아니라 ‘도구’로 보면 답이 보인다
Logs Insights는 필터링/집계/시계열 확인까지는 정말 강력합니다.
하지만 실시간 감시, 대용량·장기 분석, JOIN, 결과 축적 자동화는 한계가 뚜렷합니다.
그래서 Logs Insights의 정체는 “항상 켜두는 관제”가 아니라 “사건 터졌을 때의 확대경”입니다.
다음 행동(바로 적용)
지금 운영 중인 로그 분석 요구를 “조사/모니터링/리포트/분석플랫폼”으로 분류해보세요.
알람이 목표라면 Logs Insights 대신 메트릭 필터 + Alarm부터 설계하세요.
한 달에 한 번이라도 “장기 분석”을 한다면, 스캔 비용을 고려해 S3 + Athena 전환을 검토하세요.
이 글이 도움 됐다면, 댓글로 지금 상황을 알려주세요.
“우리 팀은 Logs Insights로 어디까지 하고, 뭘 더 붙여야 할지” 함께 기준을 잡아드릴게요.
참고
AWS CloudWatch Features (로그 클래스: Standard / Logs-IA 등) : https://aws.amazon.com/cloudwatch/features/
CloudWatch Logs 비용 구조(수집/저장/분석) 사례 : https://www.cloudtoggle.com/blog-en/cloudwatch-logs-cost/
원문 아이디어 참고: Serverworks 엔지니어 블로그(Logs Insights 가능한 일/불가능한 일 정리)

