아카이브 검색 (Archive Search)
Archive Search를 사용하면 장기 오브젝트 스토리지 아카이브에서 로그를 사전 재수화(rehydration) 없이 직접 쿼리할 수 있어요. 인덱싱 보존 기간을 넘어선 로그를 즉시 접근해야 하는 조사, 감사, 트러블슈팅에 적합하죠.
출처: 문서
본문
개요
Archive Search는 Rehydration과 달리, 백그라운드 배치 작업으로 도는 것이 아니라 데이터를 스캔하면서 결과를 실시간으로 스트리밍해요. 스캔 자체에 대해서만 비용이 청구되고(첫 100,000개 로그는 임시 보관되어 무료), 더 빠르고 비용 효율적이에요.
검색을 시작하면:
- 로그가 전용 결과 페이지로 스트리밍돼요.
- 최대 100,000개 로그가 24시간 동안 보존돼요.
- 선택적으로 검색 전이나 후에 결과를 Rehydrate해서 더 오래 보관하고 Datadog 전체에서 사용할 수 있게 만들 수 있어요.
이 기능은 다음을 통해 보관된 로그를 지원해요:
대표적인 사용 사례
외부 아카이브에 저장된 로그를 쿼리해야 할 때 Archive Search가 가장 이상적이에요. 흔한 사용 사례는 다음과 같아요:
- 인시던트 조사: 인덱싱 보존 기간을 벗어난
transaction_id,user_id,session_id와 연결된 로그를 검색해요. 예: 인덱스 보존이 15일뿐이어도 특정user_id로 3주 전 로그를 쿼리하기. - 보안 분석: IP나 사용자별 로그인 시도 등을 조사하기 위해 보관된 로그를 살펴봐요. 예: 지난 12개월 동안 특정 IP 주소의 모든 로그인 시도 가져오기.
- 규정 준수·감사 지원: 대량 데이터를 영구적으로 재인덱싱하지 않고 감사를 위해 보관된 고객·청구 로그에 접근해요. 예: 세무 감사를 위해 지난 18개월간 인보이스 관련 로그(
customer_id:12345,service:billing) 쿼리하기.
사전 요구 사항
Archive Search를 사용하기 전에:
- 외부 아카이브(Amazon S3, Azure Storage, Google Cloud Storage)를 구성해요. Log Archives를 참고해요.
- Datadog가 아카이브에서 읽을 권한이 있는지 확인해요. Cloud별 권한을 참고해요.
- Amazon S3: IAM 역할 위임
- Azure Storage: Storage Blob Data Contributor 역할이 있는 Azure AD
- Google Cloud Storage: Storage Object Viewer 역할이 있는 서비스 계정
권한
Archive Search 접근을 제어하는 권한이 두 개 있어요. 둘 다 전역 권한이고, 사용자는 검색하는 각 아카이브에 대해 logs_read_archives 권한도 필요해요.
| 권한 | 검색 모드 | 검색 & 재수화 모드 |
|---|---|---|
logs_archive_search |
✅ | ❌ |
logs_write_historical_view |
✅ | ✅ |
logs_archive_search: Archive Search를 Search 모드로만 실행할 수 있게 해줘요. 결과는 실시간으로 스트리밍되고 24시간 동안 보존돼요. 이 권한으로는 Rehydrate 옵션을 사용할 수 없어요.logs_write_historical_view: Archive Search를 Search와 Search & Rehydration 두 모드 모두에서 실행할 수 있게 해줘요.
Archive Search 결과는 조직에서 Archive Search 기능에 접근할 수 있는 모든 사용자에게 보여요. 하지만 로그 보안 필터와 Datadog에 구성된 데이터 제한 같은 제한 쿼리(restriction queries) 는 여전히 결과 페이지에서 모든 사용자에게 적용돼요. 즉 각 사용자는 조직 차원의 권한과 필터에 따라 볼 권한이 있는 로그만 볼 수 있어요.
접근 제어와 로그 보안에 대한 자세한 내용은 로그용 RBAC 설정 방법을 참고해요.
검색 시작하기
- Logs > Archive Search > New Search로 이동해요.
- 아카이브와 시간 범위를 선택해요.
user_id:abc123같은 쿼리를 입력해요.- (선택) 검색 이름을 바꿔요.
- Mode에서 수행할 검색 종류를 선택해요.
- Search를 선택하면 결과를 실시간으로 검색하고, 최대 100,000개 로그를 24시간 동안 보존해요.
- Search & Rehydration을 선택하면 전체 플랫폼 접근과 커스텀 보존을 위해 결과를 재수화해요.
- Search를 클릭해요.
로그가 실시간으로 결과 페이지로 스트리밍돼요. 진행률 표시줄이 스캔 상태를 보여주고, 언제든 검색을 취소할 수 있어요.
쿼리 미리 보기
검색을 수행하면 Datadog가 선택한 아카이브와 시간 범위에서 작은 샘플(최대 1,000개 로그)을 다운로드해요. 이 미리 보기로 쿼리 구문을 검증하고, 로그 구조를 살펴보고, 필터를 조정할 수 있어요.
참고: 미리 보기 샘플에는 쿼리와 일치하는 로그가 없을 수도 있어요. 검증과 탐색 용도로만 쓰는 거예요.
결과 보기와 보존
기본적으로 스캔에 대해서만 비용이 청구돼요. 첫 100,000개 로그는 24시간 동안 무료로 임시 저장되고 Archive Search 결과 페이지에서 바로 접근할 수 있어요. 여기서 아무 로그나 클릭해 전체 세부 정보와 컨텍스트를 볼 수 있어요. 24시간이 지나면 결과는 자동으로 만료돼요.
더 많은 데이터를 보관하거나 다른 Datadog 제품에서 로그에 접근하려면 다음 중 하나를 선택해요:
- 시작 전 Rehydrate: 100,000개 이상의 로그를 보관하고, 커스텀 보존 기간(예: 7, 15, 30일)을 설정하며, 플랫폼 전체에서 결과에 즉시 접근해요.
- 완료 후 Rehydrate: 24시간 창 안에 결과를 재수화해 보존 기간을 늘리고 Log Explorer, Dashboards, Notebooks에서 사용할 수 있게 해요.
결과 분석하기
검색을 시작하면 로그가 Archive Search 결과 페이지로 스트리밍돼요. 이 페이지에서 필터를 사용해 결과를 좁히고 특정 로그 세부 정보를 열어 조사할 수 있어요.
제한 사항
Archive Search는 보관된 로그에 접근할 수 있게 해주지만, 인덱스된 로그에 비해 분석 기능은 제한적이에요:
- 집계·분석 불가: Archive Search 결과에서 직접 집계를 실행하거나, 시각화를 만들거나, 고급 분석을 수행할 수 없어요.
- 결과 페이지 전용: Archive Search 결과는 전용 결과 페이지에서만 사용할 수 있고, Datadog 플랫폼의 다른 부분(Dashboards, Notebooks, Log Explorer 등)에서는 쿼리할 수 없어요.
전체 분석과 플랫폼 전체 가시성을 활성화하려면 검색 결과를 재수화해야 해요(검색 시작 전, 또는 완료 후 24시간 창 안에). 재수화하면 로그가 전체 집계·시각화·분석 기능과 함께 모든 Datadog 제품에서 사용 가능해져요.
검색 관리하기
Archive Search 목록 보기에서 다음을 할 수 있어요:
- 실행 중인 검색 취소: 이미 가져온 로그는 보존돼요.
- 검색 복제: 같은 매개변수로 Archive Search 생성 폼을 열어 효율적으로 재실행할 수 있어요.
검색 성능과 최적화
Archive Search는 선택한 시간 범위 내의 보관된 로그 파일을 스캔해요. 스캔 볼륨은 쿼리 중 읽은 파일의 총 크기를 의미해요. 스캔 볼륨이 크면 검색 시간과 클라우드 이그레스 비용이 모두 늘어날 수 있어요.
성능을 최적화하고 비용을 줄이려면:
- 시간 범위 좁히기: 검색을 가능한 가장 작은 창으로 제한해요.
- 스캔 한도 설정:
Logs Write Archives권한이 있는 관리자는 Settings에서 아카이브당 최대 스캔 크기를 설정할 수 있어요. - Partition 속성 사용:
service,env,status같은 저카디널리티(low-cardinality) 데이터 검색을 가속화하는 가장 효과적인 방법이에요. Datadog는 쿼리와 일치하지 않는 파티션 전체를 건너뛰어요. 아카이브당 최대 2개. - Lookup 속성 사용:
trace_id나user_id같은 고카디널리티(high-cardinality) 데이터 검색을 가속화하는 가장 효과적인 방법이에요. 아카이브당 최대 2개. - zstd 압축 사용: 아카이브는 기본적으로 zstd 압축을 사용하며, gzip보다 스캔 볼륨과 클라우드 이그레스 비용을 줄여줘요. 아카이브가 gzip이라면 Log Archives를 참고해 zstd로 전환해요.
참고: Partition 또는 Lookup 속성을 구성한 후에 보관된 로그만 가속화 검색의 혜택을 받아요. 이 구성 전에 보관된 로그는 영향을 받지 않아요.
Partition 속성으로 검색 가속화하기
아카이브에 Partition 속성을 구성하면 작성 시점에 저카디널리티 필드 값으로 로그를 그룹화할 수 있어요. service, source, env, status 같은 속성을 사용해요.
같은 파티션 값을 공유하는 로그는 스토리지에서 같은 위치에 놓여요. 검색하면 Datadog가 파티션 메타데이터에 대해 쿼리를 평가하고 일치하지 않는 파티션은 건너뛰어, 스캔하는 총 데이터를 줄여요.
이를 설정하려면 Log Archives 문서를 참고해요.
Lookup 속성으로 검색 가속화하기
아카이브에 Lookup 속성을 구성하면 스토리지 버킷에서 관련 없는 데이터 블록을 건너뛰 수 있어요. 예를 들어 trace_id나 user_id를 구성하면 스캔하는 데이터 볼륨이 크게 줄고 클라우드 제공업체의 이그레스 비용이 내려가요.
이를 설정하려면 Log Archives 문서를 참고해요.
Partition vs Lookup 속성
| Partition | Lookup |
|---|---|
| 카디널리티 | 낮음(수십~수백) |
| 대표 속성 | service, source, env, status |
| 도움되는 방식 | 스캔에서 파티션 전체를 가지치기(prune) |
| 가장 적합한 용도 | 환경/서비스별 광범위한 필터링 |
최대 검색 성능을 위해 둘을 결합해요: partition 속성이 검색 범위를 관련 데이터 세그먼트로 좁히고, lookup 속성이 그 세그먼트 안에서 특정 로그를 즉시 찾게 해줘요.
결과 재수화의 기본 한도
Logs Write Archives 권한이 있는 관리자는 팀 전체에서 Archive Search를 효율적으로 쓰도록 기본 제어를 구성할 수 있어요. Settings를 클릭해 구성해요:
- 기본 재수화 볼륨 한도: Search & Rehydration 모드에서 Archive Search당 재수화할 수 있는 기본 로그 수(백만 단위)를 정의해요. 한도에 도달하면 Archive Search가 자동으로 멈추지만, 이미 재수화된 로그는 접근 가능한 상태로 남아요. 관리자는 Archive Search 생성 중 이 한도를 재정의할 수 있게 허용할 수도 있어요.
- 재수화 보존 기간: 결과를 재수화할 때 사용할 수 있는 보존 기간을 선택해요. Datadog에서 로그를 검색 가능하게 유지할 기간을 선택할 때 드롭다운 메뉴에 선택한 기간(예: 3, 7, 15, 30, 45, 60, 90, 180일)만 표시돼요.
Search & Rehydration 모드의 Archive Search가 볼륨 한도에 도달하면 상태가 Limit reached로 바뀌고, 쿼리와 시간 범위에 일치하는 모든 로그가 재수화되지는 않았음을 나타내요. 남은 로그를 재수화하려면 더 높은 볼륨 한도로, 또는 더 좁은 쿼리·시간 범위로 새 Archive Search를 실행해요.
Cloud별 권한
Datadog는 아카이브에서 콘텐츠를 검색하려면 아카이브를 읽을 권한이 필요해요. 이 권한은 언제든 바꿀 수 있어요.
Amazon S3
아카이브에서 로그 이벤트를 재수화하기 위해 Datadog는 AWS 통합을 위해 AWS 계정에 구성한 IAM 역할을 사용해요. 아직 역할을 만들지 않았다면 다음 단계에 따라 만들어요. 이 역할이 아카이브에서 로그 이벤트를 재수화할 수 있게 하려면 IAM 정책에 다음 권한 문을 추가해요. 버킷 이름을 편집하고, 원한다면 로그 아카이브가 있는 경로를 지정해요.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DatadogUploadAndRehydrateLogArchives",
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": [
"arn:aws:s3:::<MY_BUCKET_NAME_1_/_MY_OPTIONAL_BUCKET_PATH_1>/*",
"arn:aws:s3:::<MY_BUCKET_NAME_2_/_MY_OPTIONAL_BUCKET_PATH_2>/*"
]
},
{
"Sid": "DatadogRehydrateLogArchivesListBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::<MY_BUCKET_NAME_1>",
"arn:aws:s3:::<MY_BUCKET_NAME_2>"
]
}
]
}
S3 아카이브에 역할 위임 추가하기
Datadog는 접근 권한을 부여하기 위해 역할 위임(role delegation)을 사용하도록 구성된 아카이브만 검색할 수 있어요. 위 IAM 정책을 포함하도록 Datadog IAM 역할을 수정한 후, 아카이브 구성 페이지의 각 아카이브가 올바른 AWS 계정 + 역할 조합을 갖췄는지 확인해요.
Azure Storage
Datadog는 아카이브의 스토리지 계정 범위에 Storage Blob Data Contributor 역할이 있는 Azure AD 그룹을 사용해 로그 이벤트를 검색해요. 스토리지 계정의 Access Control (IAM) 페이지에서 Datadog 통합 앱에 Storage Blob Data Contributor 역할을 할당해 Datadog 서비스 계정에 이 역할을 부여할 수 있어요.
Google Cloud Storage
아카이브에서 로그 이벤트를 검색하기 위해 Datadog는 Storage Object Viewer 역할이 있는 서비스 계정을 사용해요. Google Cloud IAM Admin 페이지에서 서비스 계정의 권한을 편집하고, 역할을 추가한 다음 Storage > Storage Object Viewer를 선택해 Datadog 서비스 계정에 이 역할을 부여할 수 있어요.