AWS CloudWatch Logs Metric Filter의 JSON 파싱 실패

HanKookKim 0 평판 포인트
2026-10-12T06:13:57.1366667+00:00

안녕하세요.

사용자 지정 애플리케이션 로그에 대해 CloudWatch Logs Metric Filter를 설정했지만, 중첩 배열(nested arrays)이 포함된 JSON 로그 패턴과 일치하지 않아 필터가 정상적으로 동작하지 않습니다.

중첩 배열이 포함된 JSON 로그를 올바르게 파싱하고 특정 필드를 기준으로 매칭하려면 CloudWatch Metric Filter 표현식을 어떻게 작성해야 하나요? 또한 JSON 필터 패턴에서 지원하는 구문과 중첩 배열 처리 시 주의해야 할 제한 사항이 궁금합니다.

감사합니다.

비즈니스용 Windows | Windows 365 비즈니스
댓글 0개 설명 없음

답변 2개

정렬 기준: 가장 유용함
  1. Jason Nguyen Tran 28,655 평판 포인트 독립 자문가
    2026-10-16T15:53:23.75+00:00

    문제가 해결되었는지 확인하기 위해 다시 연락드립니다. 추가 정보가 필요하시면 언제든지 답변해 주세요. 제공된 정보가 도움이 되었다면, 다른 커뮤니티 사용자들에게도 도움이 될 수 있도록 "Accept Answer" 를 클릭해 주시면 감사하겠습니다. 감사합니다!

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음

  2. Jason Nguyen Tran 28,655 평판 포인트 독립 자문가
    2026-10-12T06:53:13.0566667+00:00

    안녕하세요 HanKookKim

    현재 겪고 계신 문제는 복잡한 JSON 구조, 특히 중첩 배열(nested arrays)을 처리할 때 발생하는 CloudWatch Logs Metric Filters의 알려진 제한 사항과 관련이 있습니다. Metric Filter는 단순한 JSON 필드를 매칭하는 데는 효과적이지만, 깊은 배열 탐색(deep array traversal)에 대한 지원이 제한적이며 중첩 배열 요소를 대상으로 임의의 JSONPath 스타일 쿼리를 수행할 수 없습니다.

    먼저 CloudWatch Logs에서 실제 로그 구조를 확인하고, 매칭하려는 필드가 배열 내부에 있는지 아니면 일반적인 JSON 속성인지 파악하는 것을 권장합니다. 대상 값이 중첩 배열 안에 포함되어 있다면 Metric Filter만으로는 해당 값을 안정적으로 파싱하기 어려울 수 있습니다. 이런 경우에는 로그를 수집하기 전에 로그 형식을 변환하거나 평탄화(flatten)하는 방법을 고려할 수 있습니다. 또는 Metric Filter에만 의존하기보다 더 복잡한 쿼리를 지원하는 CloudWatch Logs Insights를 활용하는 것도 좋은 방법입니다.

    또한 필터 패턴의 구문을 꼼꼼히 확인해야 합니다. CloudWatch JSON 필터 패턴은 필드를 명시적으로 참조해야 하며, 모든 형태의 중첩 객체나 배열 평가를 지원하지는 않습니다. 샘플 로그 이벤트를 대상으로 필터 패턴을 테스트하면 문제가 구문에 있는지, 아니면 페이로드의 구조 자체에서 비롯되는지 판단하는 데 도움이 됩니다. 배열에 여러 값이 포함될 수 있다면 애플리케이션에서 주요 필드를 별도로 로깅하여 필터링을 더 쉽고 안정적으로 수행할 수 있는지도 검토해 보세요.

    모범 사례로는 Metric Filter는 비교적 단순한 필드를 대상으로 사용하고, 복잡한 JSON 분석은 전용 로그 분석 도구에 맡기는 것을 권장합니다. 이렇게 하면 알림 동작을 보다 예측 가능하게 유지할 수 있으며, 로그 스키마가 변경될 때 발생하는 트러블슈팅 시간도 줄일 수 있습니다.

    이 답변이 문제 해결에 도움이 되었기를 바랍니다. 유용한 답변이라고 생각하시면 "Accept Answer" 를 클릭해 주세요. 다른 사용자들도 동일한 문제를 해결하는 데 도움을 받을 수 있습니다.

    Jason

    이 대답이 도움이 되었나요?

    댓글 0개 설명 없음

답변

질문 작성자는 답변을 '승인됨'으로 표시하고, 중재자는 답변을 '추천됨'으로 표시할 수 있습니다. 이를 통해 사용자는 해당 답변이 작성자의 문제를 해결했다는 것을 알 수 있습니다.