Amazon Web Services 한국 블로그

Amazon CloudWatch Logs, 자동화된 패턴 분석 및 이상 탐지 기능 제공

운영 또는 비즈니스 관련 인사이트를 얻기 위해 로그 데이터를 검색하는 것은 사막에서 바늘 찾기처럼 느껴질 때가 많습니다. 일반적으로 개별 로그 레코드를 수동으로 필터링하고 검토해야 합니다. 이를 지원하기 위해 수십 년간 축적된 Amazon 및 AWS 운영 데이터로 훈련된 고급 기계 학습(ML) 알고리즘을 사용하여 로그 레코드 간의 패턴을 자동으로 인식 및 클러스터링하고, 주목할 만한 콘텐츠와 트렌드를 추출하며, 이상 징후를 알려주는 새로운 기능이 Amazon CloudWatch에 추가되었습니다.

구체적으로 살펴보면, CloudWatch는 이제 다음과 같은 기능을 제공합니다.

  • Logs Insights(로그 인사이트) 페이지의 Patterns(패턴) 탭을 통해, 쿼리 결과에서 반복되는 패턴을 찾아 자세히 분석할 수 있습니다. 이렇게 하면 원하는 내용을 더 쉽게 찾고 로그에서 새롭거나 예상치 못한 콘텐츠를 자세히 살펴볼 수 있습니다.
  • Logs Insights(로그 인사이트) 페이지의 시간 간격 선택기에 있는 Compare(비교) 버튼을 사용하면 선택한 시간 범위의 쿼리 결과를 이전 기간(예: 전날, 전주 또는 전월)과 빠르게 비교할 수 있습니다. 이렇게 하면 이전의 안정적인 시나리오와 비교해 무엇이 변경되었는지 확인하는 데 시간이 덜 걸립니다.
  • 탐색 창의 Logs(로그) 섹션에 있는 Log Anomalies(로그 이상) 페이지에는 수집 중 처리되는 동안에 로그에서 발견된 이상 항목이 자동으로 표시됩니다.

일반적인 문제 해결 과정을 통해 이러한 기능이 실제로 어떻게 작동하는지 살펴보겠습니다. 애플리케이션 로그를 검토하여 주요 패턴을 찾고, 두 기간을 비교하여 변경된 내용을 파악하고, 마지막으로 이상 징후를 감지하는 것이 문제를 발견하는 데 어떻게 도움이 되는지 살펴보겠습니다.

로그에서 반복되는 패턴 찾기
CloudWatch 콘솔에서, 탐색 창의 로그 섹션에서 Logs Insights를 선택합니다. 먼저, 쿼리하려는 로그 그룹을 선택했습니다. 이 예에서는 검사하려는 Lambda 함수의 로그 그룹을 선택하고 쿼리 실행을 선택합니다.

패턴 탭에는 해당 로그 그룹에서 발견된 패턴이 표시됩니다. 패턴 중 하나가 오류인 것 같습니다. 이 패턴을 선택하여 쿼리에 필터로 간단히 추가하고, 이 패턴이 포함된 로그를 자세히 살펴볼 수 있습니다. 지금은 돋보기 아이콘을 선택하여 패턴을 분석합니다.

콘솔 스크린샷.

패턴 검사 창에는 선택한 기간 동안 패턴이 발생한 횟수를 보여주는 히스토그램이 표시됩니다. 히스토그램 다음에는 로그의 샘플이 제공됩니다.

콘솔 스크린샷.

패턴의 변수 부분(예: 숫자)이 ‘토큰’으로 추출되었습니다. 토큰 값 탭을 선택하여 토큰 값을 표시합니다. 토큰 값을 선택하여 쿼리에 필터로 간단히 추가하고, 이 특정 값을 가진 이 패턴이 포함된 로그를 자세히 살펴볼 수 있습니다.

콘솔 스크린샷.

또한 관련 패턴 탭에서 일반적으로 분석 중인 패턴과 동시에 발생하는 다른 로그를 볼 수 있습니다. 예를 들어 항상 추가적인 세부 정보를 보여주는 DEBUG 로그와 함께 작성되는 ERROR 로그를 보면 이 관계를 확인할 수 있습니다.

이전 기간의 로그와 비교
무슨 일이 일어나고 있는지 보다 잘 이해하기 위해 시간 간격 선택기에서 비교 버튼을 선택합니다. 그러면 결과를 이전 기간과 비교하도록 쿼리가 업데이트됩니다. 예를 들어 전날을 선택하면 어제와 비교하여 어떤 변화가 있었는지 확인할 수 있습니다.

콘솔 스크린샷.

패턴 탭에서 오류 수가 실제로 10% 감소했다는 것을 알 수 있습니다. 따라서 현재 상황은 그리 나쁘지 않을 수도 있습니다.

심각도 유형이 ERROR인 패턴의 돋보기 아이콘을 선택하면 두 기간의 전체 비교를 볼 수 있습니다. 이 그래프에서, 선택한 시간 범위(1시간) 내에서 두 기간(이 경우 현재와 어제)에 발생한 패턴이 서로 겹칩니다.

콘솔 스크린샷.

오류는 줄어들고 있지만 여전히 존재합니다. 이러한 오류를 줄이기 위해 애플리케이션을 약간 변경합니다. 잠시 후 로그를 비교하러 돌아왔는데 이전 기간에는 없었던 새로운 ERROR 패턴이 발견되었습니다.

콘솔 스크린샷.

업데이트로 인해 문제가 발생했을 수 있으므로 이전 버전의 애플리케이션으로 롤백합니다. 이 사용 사례에서 허용되는 오류 수가 많기 때문에 우선은 그대로 유지하겠습니다.

로그에서 이상 탐지
로그를 비교하면서 발견한 오류가 줄어들어 안심이 됩니다. 하지만 예상치 못한 문제가 발생하고 있는지 어떻게 알 수 있을까요? CloudWatch Logs의 이상 탐지 기능은 수집 중에 처리되고 로그 그룹 수준에서 활성화될 수 있으므로 로그에서 예상치 못한 패턴을 찾아냅니다.

탐색 창에서 로그 그룹을 선택하고 필터를 입력하면 이전에 보았던 것과 동일한 로그 그룹이 표시됩니다. 이상 탐지 열에서 구성을 선택하고 평가 빈도에서 5분을 선택합니다. 원하는 경우 더 긴 간격(최대 60분)을 사용하고 패턴을 추가하여 이상 탐지를 위해 특정 로그 이벤트만 처리할 수 있습니다.

이 로그 그룹에 대해 이상 탐지를 활성화한 후에는 들어오는 로그가 기간별 기준에 따라 지속적으로 평가됩니다. 몇 분 정도 기다린 후 발견된 내용을 보기 위해, 탐색 창의 로그 섹션에서 로그 이상 항목을 선택합니다.

콘솔 스크린샷.

추적할 필요가 없는 이상 항목을 숨겨 이 보기를 더 단순하게 표시할 수 있습니다. 여기서는 이전과 비슷한 방식으로 해당 패턴을 검사하기 위해 이상 항목 중 하나를 선택합니다.

콘솔 스크린샷.

이 추가 확인을 통해, 애플리케이션에 시급히 해결해야 할 문제가 없다고 확신하게 되었습니다. 이러한 새로운 기능을 사용하여 수집한 모든 인사이트를 바탕으로, 이제 로그의 오류에 집중하여 해결 방법을 파악할 수 있습니다.

알아야 할 사항
Amazon CloudWatch 자동 로그 패턴 분석은 현재 중국(베이징), 중국(닝샤) 및 이스라엘(텔아비브) 리전을 제외하고 Amazon CloudWatch Logs가 제공되는 모든 상용 AWS 리전에서 사용할 수 있습니다.

패턴 및 비교 쿼리 기능은 기존 Logs Insights 쿼리 비용에 따라 요금이 청구됩니다. 1시간 기간을 다른 1시간 기간과 비교하는 것은 2시간 동안 단일 쿼리를 실행하는 것과 같습니다. 이상 탐지는 로그 수집 요금에 포함되며 이 기능에 대한 추가 비용은 없습니다. 자세한 내용은 CloudWatch 요금을 참조하세요.

CloudWatch 자동 로그 패턴 분석을 통해 로그를 분석하는 방법을 간소화합니다.

Danilo