M365Con 2027 – 무료 온라인 컨퍼런스 · 11–22 Jan 2027 · 120 sessions→ m365con.net

블로그 · Mirko Peters

Azure Resource Graph의 Kusto Query Language: 초보자 가이드

By ·

Azure Resource Graph에서 Kusto Query Language(KQL)를 익히세요. 간단한 문법, 파이프라인 필터, 파이프 및 쿼리를 배워 클라우드 환경을 관리할 수 있습니다.

Automatically translated with AI from the original post. Read the English original

Cover: Azure Resource Graph - Simply Explained

Azure Resource Graph에서 Kusto Query Language(KQL)를 익히면 클라우드 관리자는 포털에서 수동으로 클릭하지 않고도, 여러 구독에 걸친 클라우드 인벤토리, 보안 위험, 거버넌스 준수 현황을 깔끔하고 빠르게 쿼리로 확인할 수 있습니다.

핵심 요약

  • KQL 쿼리는 레시피처럼 읽히며, 파이프 문자(|)로 순차적인 데이터 처리 단계를 연결합니다.
  • 기본 테이블 'resources'에는 여러 Azure 구독을 동시에 쿼리하는 데 필요한 대부분의 정보가 들어 있습니다.
  • project 및 extend 연산자를 사용하면 복잡한 출력을 정리하고 중첩된 속성 값을 불필요한 코드 없이 추출할 수 있습니다.
  • Resource Graph는 안전장치로서 기본적으로 결과를 1,000개 레코드로 제한하며, 대규모 환경에서는 페이징 토큰이 필요합니다.
  • Azure Resource Graph에서 익힌 KQL 기술은 Log Analytics 및 Azure Data Explorer에 그대로 적용됩니다.

Azure Resource Graph에서 KQL 이해하기

Kusto Query Language(KQL)라는 약어를 처음 접하면 다소 어렵게 느껴질 수 있습니다. 하지만 기술 용어를 걷어내고 보면, 클라우드 인프라를 직관적으로 쿼리할 수 있도록 설계된 매우 친숙하고 영어에 가까운 문법임을 알 수 있습니다. 복잡한 애플리케이션이나 무거운 스크립트를 작성하는 것과 달리, KQL은 질문을 던지고 구조화된 데이터를 가져오는 데 집중합니다.

Azure Resource Graph에서 던지는 모든 질문은 KQL을 기반으로 합니다. Azure Data Explorer나 Log Analytics를 사용해 보셨다면 이 문법이 바로 익숙하게 느껴질 것입니다. 처음부터 시작하더라도 학습 곡선은 놀랍도록 완만합니다. 일상적인 클라우드 관리에 필요한 KQL의 핵심만 한 번에 익힐 수 있습니다.

KQL 쿼리의 구조

KQL 쿼리는 단계별 레시피처럼 읽힙니다. 이렇게 읽기 쉬운 비결은 개별 명령을 구분하는 파이프 문자(|)에 있습니다. 기본 데이터 테이블에서 시작한 뒤, 파이프로 이어지는 후속 명령으로 결과를 좁히거나, 필터링하거나, 형태를 바꿉니다.

KQL 쿼리를 위에서 아래로 읽으면 거의 일상 영어처럼 들립니다. 예를 들어 작성할 수 있는 가장 간단하면서도 유용한 쿼리를 살펴보겠습니다.

resources | summarize count

이 명령을 소리 내어 읽으면 다음과 같습니다. 기본 resources 테이블의 모든 항목을 가져와서 개수를 세어 달라는 뜻입니다. 시스템은 클라우드 환경 전체 규모를 나타내는 하나의 매우 유용한 숫자로 응답합니다.

클라우드 관리자를 위한 필수 연산자

자산 개수 세기에 익숙해지면 데이터를 필터링하고 형식을 지정하고 싶어질 것입니다. 거의 모든 관리 쿼리에서 핵심 역할을 하는 기본 연산자는 다음과 같습니다.

  • where: 특정 조건에 따라 데이터 집합을 필터링합니다. 예를 들어 쿼리를 resources | where type == "Microsoft.Compute/virtualMachines"로 바꾸면 개수가 가상 머신으로만 제한됩니다.
  • project: 최종 출력에 표시할 열을 선택합니다. 방대한 원시 JSON 데이터 대신 리소스 이름, 위치, 구독 ID만 표시할 수 있습니다.
  • order by: 결과를 알파벳순 또는 숫자순으로 정렬하여, 무작위 데이터 덤프를 깔끔하고 훑어보기 쉬운 표로 바꿔 줍니다.
  • extend: 임시 사용자 지정 열을 만들어, 깊이 중첩된 구성 값을 추출하고 짧고 재사용 가능한 레이블을 붙일 수 있습니다.

흔히 발생하는 KQL 실수 피하기

KQL은 일부 측면에서는 관대하지만, 대소문자에는 엄격한 규칙이 적용됩니다. 대소문자를 구분하지 않는 일치 연산자(=~처럼 등호와 물결표를 함께 쓰는 연산자)는 리소스 형식 같은 문자열 값을 검색할 때 대소문자를 무시합니다. 그러나 속성 이름은 전혀 다릅니다. 속성 이름의 철자가 틀리거나 대소문자가 잘못되면 KQL은 명확한 구문 오류를 표시하지 않고, 조용히 빈 값을 반환합니다. 그러면 논리에는 존재하지 않는 버그를 찾느라 시간을 낭비하게 됩니다.

기본 범위를 넘어 테이블 활용하기

resources 테이블은 일상적인 관리 점검의 대부분을 처리하지만, 더 깊은 거버넌스 작업을 위한 전문 테이블도 있습니다. 보안 상태를 감사하거나, 정책 할당을 검토하거나, 관리 그룹, 구독, 리소스 그룹과 같은 조직 컨테이너를 점검해야 할 때는 KQL 쿼리를 이러한 전용 테이블에 직접 지정할 수 있습니다.

KQL은 Microsoft 생태계 전반에서 사용되는 공통 쿼리 언어이므로, 이러한 패턴을 익히면 즉각적인 커리어 상승 효과를 얻을 수 있습니다. 사용되지 않는 네트워크 보안 그룹을 정리하거나 태그가 없는 가상 머신을 찾기 위해 오늘 작성하는 쿼리는, Microsoft Defender에서 보안 경고를 작성하거나 Log Analytics에서 운영 대시보드를 구축할 때도 똑같이 유용합니다.

결론 및 다음 단계

Kusto Query Language를 배우면 Azure Resource Graph는 알기 어려운 백엔드 엔진에서 매일 사용하는 가장 유용한 클라우드 관리 도구로 바뀝니다. 번거로운 포털 클릭과 취약한 스크립트 작성을 간결하고 사람이 읽기 쉬운 쿼리로 대체하면, 여러 구독으로 구성된 환경을 완전하게 파악할 수 있습니다.

클라우드 관리 워크플로를 더 단순하게 만드는 방법을 더 깊이 알아보려면 전체 에피소드를 들어보세요. 조직에서 Azure Resource Graph를 효과적으로 활용하기 위한 전문가의 통찰, 실제 예시, 실습 안내를 얻을 수 있습니다.

자주 묻는 질문

KQL이란 무엇이며, Azure Resource Graph에서 왜 사용하나요?

KQL은 Kusto Query Language의 약자입니다. Resource Graph에서 Azure 환경에 질문을 던지는 데 사용하는 가볍고 직관적인 쿼리 언어입니다. 읽기 쉬운 파이프(|) 구분 구문을 사용해 수천 개의 클라우드 리소스를 즉시 필터링, 정렬, 그룹화할 수 있습니다.

KQL로 리소스 형식별로 필터링하려면 어떻게 하나요?

초기 테이블 선언 뒤에 'where' 절을 추가하면 됩니다. 예를 들어 'resources | where type =~ "microsoft.keyvault/vaults"'를 작성하면 Azure Key Vault만 반환됩니다.

KQL 쿼리가 오류 대신 빈 값을 반환하는 이유는 무엇인가요?

KQL에서 속성 이름은 대소문자를 구분합니다. 속성 이름의 대소문자가 잘못되면 Azure Resource Graph는 구문 오류를 표시하지 않고 조용히 빈 값을 반환하므로 디버깅이 까다로워집니다.

Azure Resource Graph의 1,000개 레코드 제한이란 무엇인가요?

기본적으로 리소스 그래프 쿼리는 실수로 대량의 데이터를 가져오는 것을 막기 위해 최대 1,000개의 레코드를 반환합니다. 환경에 리소스가 수천 개 있다면 연속 토큰(continuation token)을 사용해 이 제한을 우회하거나 페이지를 넘겨 가며 결과를 조회할 수 있습니다.

Entities in this article

Azure Resource Graph Kusto Query Language (KQL) Log Analytics Azure Data Explorer Agent skill JSON Semantic model

Related articles

RSS