Athena를 사용하여 Amazon CloudWatch Logs에서 과거 Security Lake 데이터 쿼리하기
개요
보안 로그 관리를 Amazon CloudWatch Unified Data Store (unified data store)로 마이그레이션하면, 향후 운영 및 보안 텔레메트리를 위한 현대적이고 통합된 수신 대상을 확보할 수 있습니다. 하지만 마이그레이션 이전에 Amazon Security Lake에 축적한 과거 보안 데이터 — AWS CloudTrail 이벤트, Amazon Virtual Private Cloud (Amazon VPC) Flow Logs, AWS Security Hub findings 및 기타 레코드 — 는 사라지지 않습니다. 데이터는 Security Lake의 Amazon S3 기반 구조에 이미 저장되고 파티셔닝된 상태 그대로 유지됩니다.
이 가이드에서는 Amazon Athena를 단일 쿼리 콘솔로 사용하여 과거 Security Lake 데이터와 새로운 CloudWatch unified data store 로그를 모두 조회하는 방법을 설명합니다 — 데이터를 내보내거나 복사하거나 중복 저장할 필요 없이 가능합니다. 각 데이터 스토어를 독립적으로 쿼리하거나, UNION ALL을 사용하여 양쪽 결과를 결합해 크로스 플랫폼 가시성을 확보할 수 있습니다.
신규 로그 이벤트는 기본 플랫폼인 CloudWatch unified data store로 유입됩니다. 과거 이벤트는 Security Lake에 그대로 남아 있습니다. Athena는 단일 콘솔에서 양쪽을 모두 쿼리합니다.

| 마이그레이션 단계 | 각 단계별 설명 |
|---|---|
| Phase 1 — Security Lake 단독 | VPC Flow Logs 및 기타 보안 데이터 소스가 Security Lake에만 기록되며, Amazon S3에 저장되고 AWS Glue Data Catalog를 통해 쿼리 가능한 OCSF 형식 레코드의 과거 아카이브를 구축합니다. |
| Phase 2 — Security Lake와 CloudWatch 이중 수집 | Security Lake와 CloudWatch가 동시에 데이터를 수신합니다. 이 검증 기간은 최소 24시간을 권장하며, 팀이 CloudWatch로 완전히 전환하기 전에 두 플랫폼 간 로그 수집 및 일관성을 확인할 수 있는 시간을 제공합니다. 더 많은 검증 시간이 필요한 경우, 두 서비스를 병렬로 운영하는 데 드는 잠재적 비용을 검토하세요. |
| Phase 3 — CloudWatch 전용 | 데이터 소스가 CloudWatch에만 기록됩니다. 모든 과거 Security Lake 데이터는 보존되고 접근 가능한 상태로 유지되며 — Athena를 사용하면 단일 콘솔에서 두 데이터 스토어를 독립적으로 또는 UNION ALL을 사용하여 결합 쿼리할 수 있습니다. |
Security Lake와 Amazon CloudWatch unified data store는 모두 Open Cybersecurity Schema Framework (OCSF)로 데이터를 정규화합니다. 따라서 src_endpoint.ip, api.operation, actor.user.name 같은 필드 이름이 두 소스에서 일관됩니다. 이러한 일관성 덕분에 크로스 소스 쿼리가 간단해집니다 — Security Lake 기록 데이터든 CloudWatch unified data store 최신 데이터든 동일한 필드 참조가 작동합니다.
데이터를 내보내지 않고 원래 위치에서 쿼리하는 이유
Athena cross-catalog 쿼리를 사용하면 데이터를 내보낼 필요 없이 과거 Security Lake 데이터에 직접 접근할 수 있습니다. 아래는 원래 위치에서 쿼리하는 것이 더 효율적인 접근 방식인 이유를 보여주는 이점들입니다.
| 주요 이점 | 상세 설명 |
|---|---|
| 스토리지 비용 중복 없음 | 과거 데이터는 이미 Security Lake의 Amazon S3 기반 스토어에 존재합니다. 이를 CloudWatch Logs로 내보내면 동일한 데이터를 두 번 저장하는 비용을 지불해야 합니다. 원래 위치에서 쿼리하면 이미 보유한 데이터에 대해서만 비용을 지불합니다. |
| ETL 파이프라인 구축 및 유지 관리 불필요 | 데이터를 내보내려면 파이프라인이 필요합니다: Security Lake에서 데이터를 읽고, 레코드를 변환하거나 재형식화하고, CloudWatch Logs에 기록하는 과정입니다. 이 파이프라인은 구축, 테스트, 모니터링 및 유지 관리가 필요합니다. Athena cross-catalog 쿼리를 활용하면 별도의 파이프라인이 필요 없습니다. |
| 과거 데이터의 체계적 구조 유지 | Security Lake는 계정, Region, 날짜별로 데이터를 저장하고 파티셔닝합니다 — 이는 과거 분석에 매우 적합한 구조입니다. 해당 데이터를 CloudWatch Logs로 이동하면 이 조직 구조가 깨지고 재파티셔닝이나 재인덱싱이 필요할 수 있습니다. |
| 새 데이터의 자연스러운 흐름 | 마이그레이션이 완료되면 CloudWatch가 새 로그 이벤트의 기본 수신 대상이 됩니다. 두 파이프라인을 동시에 운영하거나 복잡한 라우팅 레이어를 유지할 필요가 없습니다. |
| Athena가 양쪽을 효율적으로 연결 | Security Lake는 기본 AWS Glue Data Catalog (AwsDataCatalog)에 테이블을 등록합니다. CloudWatch는 Amazon S3 Tables catalog (s3tablescatalog/aws-cloudwatch)를 사용합니다. Athena는 완전 정규화된 catalog 경로를 사용하여 단일 SQL 쿼리에서 양쪽을 참조할 수 있습니다 — 데이터 이동이 필요 없습니다. |
이벤트 조사, 위협 헌팅, 컴플라이언스 감사를 위해 과거 Security Lake 데이터에 대한 완전한 접근을 유지하면서, 새로운 CloudWatch unified data store 데이터가 지속적인 모 니터링의 주요 소스로 유입됩니다.
작동 방식
두 데이터 스토어가 어떻게 함께 동작하는지 이해하면 쿼리를 더 쉽게 구성할 수 있습니다.
아키텍처
- Security Lake →
"awsdatacatalog"."<database>"."<table>" - CloudWatch unified data store →
"s3tablescatalog/aws-cloudwatch"."logs"."<table>"
Athena는 단일 SQL 문에서 여러 Glue catalog에 걸쳐 쿼리하는 것을 지원합니다. 각 소스를 완전 정규화된 catalog 경로로 참조하면, 동일한 Athena 콘솔에서 Security Lake와 CloudWatch unified data store를 독립적으로 쿼리할 수 있습니다 — 또는 통합 뷰가 필요할 때 UNION ALL로 결과를 결합할 수 있습니다.
두 소스 모두 OCSF로 데이터를 정규화하므로, 필드 이름, 유형, 구조가 양쪽에서 일관됩니다 — 어떤 데이터 스토어를 대상으로 하든 쿼리가 직관적이고 신뢰할 수 있습니다.
