본문으로 건너뛰기

"data-query" 태그로 연결된 3개 게시물개의 게시물이 있습니다.

모든 태그 보기

Data Query로 조회하는 Cloud Trail과 DNS 리졸버 로그

· 약 5분
Erin (오예진)
Cloud Engineer
Tutorial new release

운영 환경에서 로그는 장애를 진단하고 보안을 점검하는 기준 데이터입니다. 다만 로그를 저장해두는 것만으로는 충분하지 않습니다. 필요한 시점에 원하는 조건으로 빠르게 조회할 수 있어야 실제 운영 문제를 분석하고 원인을 파악하는 데 활용할 수 있습니다. 특히 감사와 진단에 반복적으로 활용되는 로그는, 처음부터 저장 위치와 파일 구조, 조회 방식을 함께 고려하는 것이 중요합니다.

이번에 추가된 두 개의 튜토리얼은 Object Storage에 저장된 운영 로그를 Data CatalogData Query를 활용해 SQL로 조회하고 분석하는 방법을 다룹니다.

두 문서는 같은 데이터 분석 아키텍처를 사용하지만, 살펴보는 운영 관점은 조금 다릅니다. 하나는 사용자 활동과 리소스 변경 이력을 바탕으로 한 보안 감사와 변경 추적이고, 다른 하나는 VPC 내부의 DNS 질의 흐름을 바탕으로 한 네트워크 진단입니다. 이에 따라 분석 대상도 각각 Cloud Trail 로그DNS 리졸버 쿼리 로그가 됩니다.

운영 로그 저장 → Object Storage → Data Catalog → Data Query

즉, 분석 대상 로그는 서로 다르지만, Object Storage에 로그를 저장한 뒤 Data Catalog에서 테이블 메타데이터를 구성하고, Data Query에서 SQL로 조회하는 과정은 동일합니다.

이번 포스트에서는 각 로그가 어떤 운영 상황에서 유용한지 살펴보고, 운영 로그를 SQL 기반으로 분석하는 방법을 함께 알아보겠습니다.

Cloud Trail 로그: 리소스 변경 이력을 확인하는 기준 데이터

Cloud Trail은 카카오클라우드에서 발생한 사용자 활동과 리소스 작업 이력을 이벤트 단위로 기록합니다. 예를 들어 특정 사용자가 언제 로그인했는지, 어떤 리소스를 생성하거나 수정했는지, 어떤 서비스에서 이벤트가 발생했는지 확인할 수 있습니다. 이 로그를 Data Query와 연동하면 보안 감사나 이력 추적 시 자주 마주치는 질문에 SQL로 답할 수 있습니다.

  • 특정 날짜에 어떤 사용자가 어떤 리소스를 변경했는가?
  • 특정 서비스나 IP 주소에서 수행된 작업 이력이 있는가?
  • 특정 리소스에 대해 생성, 수정, 삭제 이벤트가 발생했는가?

Cloud Trail 로그를 Data Query를 통해 조회 튜토리얼에서는 Cloud Trail 로그를 Object Storage에 gz 형식으로 저장하고, project_event, domain_event 경로를 기준으로 Data Catalog와 Data Query 조회 환경을 구성하는 흐름을 안내합니다. 이때 date_id, hour_id 같은 파티션 컬럼을 조건으로 사용해 필요한 기간만 확인하는 방식이 중요합니다.

Cloud Trail 로그는 보안 감사나 변경 이력 추적에 활용되는 데이터이므로, 전체 로그를 한 번에 훑는 방식보다 언제, 어떤 서비스에서, 누가, 어떤 리소스에 대해라는 조건을 좁혀 조회하는 방식이 적합합니다.

DNS 리졸버 쿼리 로그: VPC 내부의 DNS 질의와 응답 확인

DNS 리졸버 쿼리 로그는 VPC 내에서 발생한 DNS 질의와 응답 정보를 기록합니다. 애플리케이션이 어떤 도메인을 조회했는지, 응답 결과가 정상인지, 특정 시간대에 실패 응답이 집중되었는지 확인할 수 있습니다. 이 로그를 Data Query로 조회하면 다음과 같은 운영 질문을 다룰 수 있습니다.

  • 특정 날짜에 가장 많이 조회된 도메인은 무엇인가?
  • NOERROR가 아닌 응답이 어느 시간대에 집중되었는가?
  • 특정 VPC에서 특정 도메인을 비정상적으로 많이 조회했는가?
  • 응답 시간이 긴 DNS 질의가 반복되고 있는가?

DNS 리졸버 쿼리 로그를 Data Query 서비스를 통해 조회 튜토리얼에서는 DNS 리졸버 쿼리 로그가 Object Storage의 KCLogs/{region-name}/{year=yyyy/month=mm/day=dd} 구조로 저장되는 점을 기준으로 테이블을 구성합니다. 이후 Data Query에서 year, month, day 파티션을 동기화하고, 도메인별 질의 수나 실패 응답 수를 집계하는 예시를 제공합니다.

DNS 로그는 네트워크 장애 분석뿐 아니라 내부 서비스의 외부 의존성, 예상하지 못한 도메인 질의, 반복적인 실패 응답을 확인하는 데도 유용합니다. Cloud Trail이 사용자와 리소스 작업의 이력을 보여준다면, DNS 리졸버 쿼리 로그는 VPC 내부에서 애플리케이션이 어떤 이름 해석 흐름을 만들고 있는지 보여주는 데이터라고 볼 수 있습니다.

두 튜토리얼이 같은 패턴을 사용하는 이유

앞에서 설명한 것처럼 Cloud Trail 로그와 DNS 리졸버 쿼리 로그는 성격이 다르지만, 운영자가 두 로그를 다루는 방식에는 공통점이 있습니다.

먼저 로그가 Object Storage에 저장됩니다. 그다음 파일 경로와 파티션 구조를 기준으로 Data Catalog에 메타데이터를 구성합니다. 마지막으로 Data Query에서 SQL을 사용해 특정 기간, 서비스, 사용자, 도메인, 응답 코드 같은 조건으로 조회합니다.

이 공통 패턴을 만들어두면 분석 대상이 바뀌더라도 저장 위치, 메타데이터 구성, SQL 조회라는 흐름을 그대로 가져갈 수 있습니다.

단계Cloud Trail 로그DNS 리졸버 쿼리 로그
저장 위치Object StorageObject Storage
주요 경로trail/project_event, trail/domain_eventKCLogs/{region-name}/{year=yyyy/month=mm/day=dd}
주요 파티션date_id, hour_idyear, month, day
주요 분석 관점사용자 활동, 리소스 변경, 서비스 이벤트도메인 질의, DNS 응답 코드, VPC별 질의 패턴
조회 도구Data QueryData Query

이 구조는 운영 로그 분석을 일관된 방식으로 관리하는 데 도움이 됩니다. 별도 도구마다 다른 조회 언어와 저장 구조를 학습하기보다, Object Storage와 Data Catalog, Data Query를 기준으로 조회 흐름을 표준화할 수 있기 때문입니다.

운영 로그 분석을 시작하는 방법

운영 로그를 장기간 보관하고 필요한 시점에 조회해야 한다면, 두 튜토리얼을 함께 살펴보는 것이 좋습니다. 예를 들어 특정 시간대에 장애가 발생했을 때 Cloud Trail 로그로 리소스 변경 이력을 확인하고, DNS 리졸버 쿼리 로그로 같은 시간대의 도메인 질의 실패나 응답 지연을 함께 볼 수 있습니다. 서로 다른 성격의 로그를 같은 방식으로 조회할 수 있으면, 개별 이벤트를 더 넓은 운영 맥락에서 해석하는 데 도움이 됩니다.

카카오클라우드 기술문서에서는 실제 운영 상황을 가정한 다양한 튜토리얼을 제공합니다. 아래 문서에서 운영 로그를 저장하고, 조회 가능한 형태로 구성한 뒤, 필요한 조건으로 분석하는 과정을 단계별로 확인할 수 있습니다.

👉 Cloud Trail 로그를 Data Query를 통해 조회
👉 DNS 리졸버 쿼리 로그를 Data Query 서비스를 통해 조회

Kafka 기반 실시간 데이터 파이프라인 구축하기

· 약 3분
Erin (오예진)
Cloud Engineer
Tutorial new release

서비스에서 발생하는 로그, 사용자 이벤트, 트랜잭션 정보. 이런 데이터는 저장도 중요하지만, 빠르게 분석할 수 있어야 진짜 ‘의미 있는 흐름’이라고 할 수 있습니다.

이번에 소개해 드리는 Kafka 기반 실시간 데이터 파이프라인 튜토리얼 시리즈는, 바로 이 '데이터의 흐름'을 카카오클라우드에서 어떻게 구현할 수 있는지를 직접 따라 해볼 수 있는 실습형 튜토리얼입니다.

이 시리즈는 총 3편으로 구성되어 있으며, 실시간 메시지 수신부터 저장, 분석까지의 전 과정을 단계적으로 안내합니다.
Kafka와 Object Storage, Data Catalog, Data Query를 연결하여, 데이터가 흐르는 전체 구조를 이해하고 직접 구현해볼 수 있는 구조로 설계되었습니다.

architect 실시간 데이터 파이프라인 구축 아키텍처

1편: Kafka 메시지를 수신하는 구조 만들기

첫 번째 튜토리얼에서 Kafka 클러스터를 생성하고, 토픽을 통해 메시지를 송수신하는 환경을 구성합니다. Kafka 토픽을 생성하고, 프로듀서(Producer)와 컨슈머(Consumer)를 구성한 뒤, 메시지를 송수신하며 실시간 데이터 수집 기반을 마련합니다.
이 과정은 이벤트 기반 시스템의 기본 구조를 이해하고, 메시지 흐름의 시작점을 만드는 데 초점을 맞추고 있습니다.

👉 Kafka를 통한 메시지 처리 튜토리얼 보기

2편: 수신한 메시지를 Object Storage에 저장하기

두 번째 튜토리얼에서는 Kafka로 수신한 메시지를 주기적으로 수집하여 Object Storage에 저장하는 흐름을 다룹니다. 메시지를 일정 간격으로 모아 하나의 파일로 저장하고, 저장된 파일은 이후 분석을 위한 데이터 소스로 활용됩니다.
이 과정에서는 스트리밍과 배치의 경계, 그리고 파일 포맷과 구조를 어떻게 설계해야 하는지도 함께 고민해볼 수 있습니다.

👉 Kafka 데이터의 Object Storage 적재 튜토리얼 보기

3편: Data Catalog와 Data Query를 통한 실시간 분석

마지막 튜토리얼에서는 Object Storage에 저장된 데이터를 Data Catalog에 등록하고, Data Query를 통해 SQL 기반 분석을 수행할 수 있는 환경을 구성합니다. Catalog에 등록된 테이블은 파티션 기반으로 관리되며, 정기적인 동기화 설정을 통해 새로운 데이터를 자동으로 반영할 수 있습니다.
Kafka로 수집한 실시간 데이터를 별도의 복잡한 파이프라인 없이 바로 분석할 수 있는 구조로 전환하는 것이 이 단계에서 가장 중요한 부분입니다.

👉 Data Catalog와 Data Query를 이용한 Kafka 메시지 분석 튜토리얼 보기


이번 실시간 데이터 파이프라인 튜토리얼 시리즈는 단순한 코드 예제가 아니라, 운영 환경에서 그대로 활용할 수 있는 아키텍처와 설정을 바탕으로 작성되었습니다. Kafka 메시지를 수신하고, Object Storage에 저장하고, Data Catalog와 Data Query로 분석까지 연결하는 전 과정을 직접 따라 해보며, 실시간 서비스, 모니터링 시스템, 이벤트 기반 통계 파이프라인 설계에 필요한 감을 빠르게 익힐 수 있습니다.

Kafka 기반 실시간 데이터 파이프라인을 처음 설계하시거나, 기존 파이프라인을 카카오클라우드에서 확장하고자 하신다면 이 튜토리얼이 좋은 레퍼런스가 될 것입니다.

🖥️ 지금 바로 실습해 보세요!
Kakfa 기반 실시간 데이터 파이프라인 튜토리얼 시리즈 한눈에 보기

카카오클라우드 Data Query, 정식 GA 버전 출시

· 약 3분
Chloe (이다예슬)
Service Manager
data-query

카카오클라우드의 서버리스 대화형 쿼리 서비스, Data Query가 드디어 GA(General Availability) 버전으로 정식 출시되었습니다. 이번 GA는 내부 베타 테스트와 프리뷰 단계에서 수많은 고객 사례를 통해, 실제 고객 환경에서 안정적으로 활용할 수 있도록 기능·성능·요금 체계 전반이 다듬어졌다고 할 수 있습니다.

Data Query는 별도의 인프라 관리 없이, Object Storage에 저장된 데이터를 SQL 기반으로 바로 조회할 수 있는 서버리스 쿼리 엔진입니다. 사용자는 데이터 웨어하우스를 직접 구축하거나 복잡한 클러스터 운영을 고민하지 않고, 단일 쿼리로 대규모 데이터를 탐색할 수 있습니다.

요금 체계의 단순화와 투명성

GA 버전에서는 데이터 스캔 기반 종량 과금 모델이 적용되었습니다. 쿼리 실행 시 스캔된 데이터 양을 기준으로 TiB당 5,850원이 과금되며, 메타데이터 조회나 DDL 문(CREATE, DROP, SHOW TABLE) 실행에는 비용이 발생하지 않습니다.

특히 이번 버전에서 눈에 띄는 변화는 실패 쿼리와 취소된 쿼리에 대한 과금 정책이 명확해졌다는 점입니다. 사용자가 직접 쿼리를 취소한 경우에는 취소 시점까지 스캔된 데이터만 과금되고, 시스템 타임아웃이 발생했을 때는 타임아웃 직전까지의 스캔량 기준으로 요금이 부과됩니다. 이러한 과금 정책으로 인해 실제 운영자 입장에서는 불필요한 요금이 발생하지 않도록 보장해주고, 안전하게 실험적인 쿼리나 대규모 탐색 작업을 시도할 수 있죠.

또한 Data Query는 Object Storage와 함께 사용할 때 가장 효율적인데요. 데이터를 별도로 복제하거나 이동하지 않고도 그대로 쿼리할 수 있어, 표준 Object Storage 요금 외에 추가 오버헤드가 발생하지 않습니다. 결과적으로, 운영자는 데이터 분석의 유연성을 확보하면서도 불필요한 비용을 줄일 수 있습니다.

실제 사례: 데이터 레이크 기반 로그 분석

Data Query는 Object Storage와 밀접하게 연동하여 데이터 규모가 커지더라도 동일한 방식으로 분석을 수행할 수 있습니다. 지난 베타 서비스 단계에서 가장 많이 언급된 사례 중 하나는 서비스 로그 분석입니다. 한 고객사는 수십 TB 단위의 서비스 로그를 Object Storage에 저장해 두고, Data Query를 통해 실시간에 가까운 형태로 트래픽 이상 패턴을 탐색했습니다. 기존 방식대로라면 로그를 수집·적재한 뒤 별도의 분석 시스템에 적재하는 과정이 필요했지만, 이번 GA 버전의 Data Query에서는 별도 ETL 없이 바로 SQL 쿼리만으로 결과를 확인할 수 있게 되었습니다.

예를 들어, 특정 시간대에 집중적으로 발생한 에러 코드의 분포를 빠르게 확인하거나, 사용자 세그먼트별 API 응답 시간을 즉시 분석하는 방식입니다. 이러한 활용은 데이터 레이크 아키텍처에서 서버리스 쿼리 서비스의 가치를 잘 보여주는 사례라 할 수 있습니다.

실제 운영에 가까워진 데이터 분석

Data Query GA 출시는 카카오클라우드가 데이터 플랫폼 영역으로 확장해 나가는 중요한 출발점입니다. 이제는 쿼리 전용 클러스터를 따로 구축하거나 관리하지 않아도, Object Storage에 저장된 데이터를 바로 탐색할 수 있습니다. 특히 복잡한 과금 구조가 아닌 예측 가능한 비용 모델을 제공함으로써 실제 서비스 운영 현장에서 안정성과 효율성을 높일 수 있습니다. 이번 GA 이후에는 다양한 데이터 원본을 추가로 지원하며 활용 범위를 지속적으로 넓혀갈 예정이며, IAM Role 연계, 보다 정교한 쿼리 최적화 등 추가 기능이 순차적으로 제공될 예정입니다.

데이터 분석은 이제 특정 전담팀만의 역할이 아닙니다. 운영자, 개발자, 기획자 등 다양한 사용자들이 Data Query를 통해 필요한 데이터를 즉시 탐색하고, 빠르게 의사결정을 내릴 수 있는 환경이 마련되었습니다.
GA 버전으로 선보이는 Data Query, 지금 직접 사용해 보시고 변화된 데이터 분석 경험을 확인해 보시기 바랍니다.

Data Query 서비스의 더 자세한 내용을 확인하고 싶으신가요?
👉 Data Query 문서 보기