Amazon Web Services 한국 블로그
CloudWatch Logs Insights – 빠른 대화형 로그 분석 기능 출시 (서울 리전 포함)
다양한 AWS 서비스로 부터 엄청난 로그가 만들어집니다. 당장 몇 가지 예만 들더라도 VPC 플로우 로그, Route 53 로그, Lambda 로그, CloudTrail 로그(AWS API 호출에 대한 로그), RDS 로그, IoT 로그, ECS 로그, API Gateway 로그 및 S3 서버 액세스 로그, EC2 인스턴스 로그(CloudWatch 에이전트 사용시) 등이 떠오릅니다. EC2 인스턴스에서 실행되는 서비스(Apache, Tomcat, NGINX 및 기타 유사 서비스)들에서도 로그가 생성되며 애플리케이션 코드도 마찬가지일 것입니다.
이러한 로그 안에는 애플리케이션 및 AWS 리소스의 동작을 파악하고, 개선 영역을 식별하고, 작동 문제를 해결하는 데 사용될 수 있는 데이터 요소, 패턴, 추세 및 유용한 정보가 포함되어 있습니다. 하지만 항상 그러하듯 특이사항도 있습니다. 형식 및 데이터 요소의 범위가 방대하고 원시 로그의 크기가 매우 크기 때문에 분석이 어려울 수 있습니다. 개별 AWS 고객이 매일 100테라바이트 이상의 로그 파일을 일상적으로 생성하는 상황에서 find
및 grep
같은 구식 도구는 더 이상 충분하지 않습니다!
신규 CloudWatch Logs Insights 서비스
새로운 CloudWatch Logs Insights는 이러한 상황에 도움을 줄 수 있습니다! 클라우드 규모에서 작동하도록 설계된 완전관리형 서비스로, 설치나 유지 관리가 필요하지 않습니다. 엄청난 양의 로그를 몇 초 안에 처리하며 고속의 대화형 쿼리 및 시각화 기능을 제공합니다. 모든 로그 형식을 처리하고 JSON 로그의 필드를 자동으로 검색할 수 있습니다. 예상하시겠지만, 탁월한 유연성을 제공하는 이 서비스는 앞으로 로그 탐색에 가장 많이 사용되는 도구 중 하나가 될 것입니다.
CloudWatch Logs Insights에는 정교한 임시 쿼리 언어가 원하는 이벤트 필드를 가져오고, 조건을 기반으로 필터링하고, 백분위수 및 시계열 집계를 포함하는 집계 통계를 계산하고, 원하는 파일로 정렬하고, 쿼리에서 반환되는 이벤트 수를 제한하는 명령과 함께 포함되어 있습니다. 정규식을 사용하여 이벤트 필드에서 데이터를 추출하고 쿼리를 사용하여 추가 처리할 수 있는 하나 이상의 임시 필드를 생성할 수 있습니다. 선 및 누적 영역 차트를 사용하여 쿼리 결과를 시각화하고 CloudWatch 대시보드에 쿼리를 추가할 수 있습니다. 풍부한 샘플 쿼리 세트를 사용하여 시작할 수도 있습니다.
Insights의 작동 방식
시작하려면 CloudWatch 콘솔을 열고 Insights를 클릭합니다.
메뉴에서 대상 로그 그룹을 선택합니다.
쿼리를 입력하거나 샘플 중 하나를 선택할 수 있습니다.
보시다시피 다양한 로그 유형에 사용할 수 있는 샘플 쿼리가 제공됩니다. 첫 번째 샘플 쿼리를 선택하고 [Run query]를 클릭하면 로그가 스캔되고 몇 초 안에 결과가 표시됩니다.
쿼리에 필터를 추가하고 다시 실행할 수 있습니다. 이 예에서는 EC2 API 호출을 집중적으로 검토하기 위해 파이프( | )와 filter
명령을 사용하겠습니다.
절대 또는 상대 시간 범위로 필터링할 수 있습니다.
시각화를 생성할 수도 있습니다. 다음은 지난 30분간의 Amazon RDS 메모리 사용량 지표를 1분 구간으로 그룹화한 단순한 예제입니다.
CloudWatch Logs Insights는 이벤트의 모든 필드를 검색하고 선택한 로그에서 나타나는 비율을 알려줍니다.
이 정보를 사용하여 대화형으로 쿼리를 작성할 수 있습니다.
집계를 수행하지 않는 쿼리의 경우 이벤트를 확장하고 모든 필드를 표시할 수 있습니다.
쿼리 언어는 6가지 유형의 명령을 지원합니다.
-
fields
– 하나 이상의 로그 필드를 검색합니다.abs
,sqrt
,strlen
,trim
등의 함수를 사용할 수도 있습니다. -
filter
– 부울 연산자, 비교 연산자 및 정규식을 사용하여 작성된 하나 이상의 조건을 기준으로 로그 필드를 검색합니다. -
stats
– 로그 필드에 대한 지정된 시간 간격의 집계 통계(예:sum
,avg
,count
,min
,max
및percentile
)를 계산합니다(시간 간격은 선택적by
수정자를 사용하여 지정함). -
sort
– 로그 이벤트를 오름차순 또는 내림차순으로 정렬합니다. -
limit
– 쿼리에서 반환되는 로그 인벤트의 수를 제한합니다. -
parse
– 이벤트 필드에서 데이터를 추출하고 쿼리로 추가 처리할 수 있는 하나 이상의 임시 필드를 생성합니다.
또한 이 언어는 풍부한 산술 및 비교 연산자, 숫자 함수, 문자열 함수, 날짜/시간 함수 및 집계 함수 세트를 지원합니다.
늘 그렇듯이 비교적 단순한 일부 기능과 장점을 보여드렸습니다. 다음은 직접 체험해 볼 수 있는 몇 가지 기능입니다.
Add to Dashboard – 유용한 정보를 담은 쿼리를 생성한 후 [Add to Dashboard]를 클릭하고 기존 대시보드를 선택하거나 새 대시보드를 생성합니다.
Copy Query Results – CloudWatch Logs Insights를 사용하여 문제를 검색한 후 [Action] 메뉴를 클릭하고 [Copy query results]를 선택합니다.
이제 문제 해결을 위한 티켓팅 시스템에 결과를 붙여넣을 수 있습니다.
API 및 CLI 액세스 – 콘솔 액세스에 더해 AWS CLI(명령줄 인터페이스) 및 AWS SDK를 통해 이 기능에 액세스할 수 있습니다.
CloudWatch 통합 – 글루 코드를 작성해 쿼리를 실행하고 결과를 사용하여 사용자 지정 지표를 게시할 수 있습니다. 그런 다음 지표를 시각화하고 경보를 설정하는 등의 작업을 수행하여 문제 해결 과정을 단순화하고 가속화할 수 있습니다.
지금 이용 가능
CloudWatch Logs Insights는 미국 동부(버지니아 북부), 미국 동부(오하이오), 미국 서부(캘리포니아 북부), 미국 서부(오레곤), 캐나다(중부), EU(아일랜드), EU(프랑크푸르트), EU(런던), EU(파리), 아시아 태평양(도쿄), 아시아 태평양(뭄바이), 아시아 태평양(서울), 아시아 태평양(시드니) 및 남아메리카(상파울루) 리전에서 지금 이용 가능하며 오늘부터 사용을 시작할 수 있습니다.
요금은 수집된 후 각 쿼리에 대해 스캔된 로그 데이터 양을 기준으로 부과됩니다. 미국 동부(버지니아 북부)의 요금은 GB당 0.005 USD이고 다른 리전의 요금도 이와 유사합니다.
– Jeff;
이 글은 AWS News Blog에 게재된 New – Amazon CloudWatch Logs Insights – Fast, Interactive Log Analytics의 한국어 번역으로 신능선님이 감수하였습니다.