로그 모니터링 비용 2026, 수집·보관·조회 비용 줄이는 운영 기준

로그 모니터링 비용은 서버가 늘어난 뒤에야 보이는 비용 폭탄에 가깝다.
처음에는 장애 대응을 위해 모든 로그를 보내지만, 몇 달 뒤에는 수집량, 인덱싱, 보관, 쿼리, 전송비가 한꺼번에 청구서에 찍힌다.
2026년에 로그 모니터링 비용을 줄이려면 도구 가격표보다 어떤 로그를 hot 데이터로 둘지 먼저 정해야 한다.
이 글은 AWS, OpenTelemetry, Grafana Loki, Datadog, Google Cloud 자료를 바탕으로 로그 비용을 운영 기준으로 나눠 본다.
- 로그 모니터링 비용은 수집 GB, 인덱싱 비율, 보관 기간, 쿼리 스캔량, 네트워크 전송비로 나눠야 줄일 수 있다.
- 장애 대응에 필요한 로그와 감사 보관용 로그를 같은 저장소와 같은 보관 기간으로 두면 비용 통제가 어렵다.
- OpenTelemetry Collector 같은 중간 계층에서 필드 정리, 샘플링, 라우팅, 마스킹 기준을 먼저 만들면 도구 교체 리스크가 줄어든다.
- 비용 절감만 보고 로그를 버리면 사고 조사와 보안 감사에서 더 큰 비용을 낼 수 있으므로 보류 기준도 같이 둬야 한다.
이 글이 필요한 사람
- 쿠버네티스와 서버리스 전환 뒤 로그 수집량이 갑자기 늘어난 플랫폼 팀
- Datadog, CloudWatch, Loki, Elastic 같은 로그 도구의 월 비용을 설명해야 하는 FinOps 담당자
- 보안 감사와 장애 대응 때문에 로그를 줄이기 어렵지만 예산 상한도 필요한 SRE 팀
- 멀티클라우드와 외부 SaaS로 로그를 보내며 네트워크 전송비까지 같이 보는 인프라 책임자
- 개인정보와 결제 로그를 다루면서 마스킹, 보관, 접근 권한을 비용표에 넣어야 하는 보안 담당자
로그 모니터링 비용을 만드는 6개 축
로그 비용은 한 줄의 가격표가 아니라 데이터 생애주기마다 붙는 비용의 합계다.
| 비용 축 | 주요 원인 | 먼저 볼 지표 | 줄이는 기준 | 보류 신호 |
|---|---|---|---|---|
| 수집 | 애플리케이션, 프록시, DB, 보안 장비가 같은 이벤트를 반복 전송한다. | 일별 GB, 이벤트 수, 서비스별 비중 | debug와 healthcheck를 기본 제외한다. | 장애 원인 추적 로그까지 사라진다. |
| 인덱싱 | 모든 필드를 검색 가능 상태로 만들면 hot 비용이 커진다. | indexed ratio, 고카디널리티 필드 | 검색 필드와 보관 필드를 분리한다. | 고객 ID를 라벨로 남긴다. |
| 보관 | 감사 요구 때문에 모든 로그를 장기 hot 저장소에 둔다. | retention days, archive restore 빈도 | hot, warm, archive 기간을 나눈다. | 복구 절차 없이 cold로 보낸다. |
| 조회 | 대시보드와 알림 쿼리가 넓은 기간을 계속 스캔한다. | query scan GB, scheduled query 수 | 알림용 지표와 원문 로그를 분리한다. | 사고 때 필요한 상세 쿼리가 느리다. |
| 전송 | 외부 SaaS로 공용 인터넷 경로를 통해 대량 로그를 보낸다. | egress GB, 리전, 전송 경로 | PrivateLink와 리전 근접성을 검토한다. | 전송비가 수집비보다 커진다. |
| 보안 | 개인정보 탐지와 마스킹이 별도 스캔 비용을 만든다. | PII scan GB, 정책 위반 건수 | 민감 필드는 수집 전에 제거한다. | 마스킹 없이 비용만 줄인다. |
비용 축을 나누면 도구를 바꾸지 않아도 당장 손댈 수 있는 지점이 보인다.
공식 문서에서 먼저 읽어야 할 비용 힌트
AWS CloudWatch Logs는 EC2, CloudTrail, Route 53 같은 여러 출처의 로그를 중앙에서 저장하고 검색할 수 있다고 설명한다.
같은 문서는 Standard와 Infrequent Access 로그 클래스를 구분하므로 모든 로그를 같은 등급에 둘 필요가 없다는 힌트를 준다.
CloudWatch 가격 문서는 Live Tail, 데이터 보호 스캔, 로그 수집 같은 사용량 항목이 따로 계산될 수 있음을 보여준다.
Datadog 문서는 로그 수집과 인덱싱을 분리하는 구조를 설명하므로 수집량과 검색 가능 로그를 별도로 설계해야 한다.
Grafana Loki 문서는 로그 본문 전체가 아니라 라벨 메타데이터 중심으로 인덱싱하는 구조를 강조한다.
OpenTelemetry 문서는 Collector가 기존 로그를 수집하고 변환하며 다른 출력 형식으로 내보낼 수 있다고 설명한다.
수집량부터 줄이는 설계
로그 모니터링 비용을 줄일 때 첫 단계는 가격 협상이 아니라 버려도 되는 로그를 구분하는 일이다.
- debug 로그: 운영 환경 기본값은 off로 두고, 장애 티켓과 만료 시간을 붙여 일시적으로 켠다.
- healthcheck 로그: 정상 응답은 카운터 지표로 남기고 실패나 지연만 로그로 보낸다.
- 반복 오류: 같은 스택트레이스가 초당 수백 번 찍히면 원문 전송 전에 집계하거나 샘플링한다.
- 개인정보 필드: 이메일, 전화번호, 토큰, 세션 쿠키는 수집 전에 제거하거나 해시 처리한다.
- 대용량 payload: 요청 본문 전체 대신 요청 ID, 사용자 영향, 오류 코드, 크기만 남긴다.
이 단계에서 중요한 기준은 로그를 줄이는 것이 아니라 사고 조사에 필요한 최소 단서를 남기는 것이다.
인덱싱과 아카이브를 분리하기
인덱싱 비용은 검색 속도를 사는 비용이므로 모든 로그에 같은 검색성을 부여하면 청구서가 커진다.
장애 대응용 hot 로그는 최근 며칠이나 몇 주만 빠르게 검색되면 충분한 경우가 많다.
감사와 법적 보관용 로그는 원문 보존이 더 중요하므로 저렴한 장기 저장소와 복구 절차를 함께 설계한다.
Loki의 라벨 문서는 고카디널리티 값은 라벨보다 structured metadata로 다루라는 방향을 제시한다.
- 라벨에는 환경, 서비스명, 네임스페이스처럼 값 종류가 제한된 필드를 둔다.
- 사용자 ID, 주문 ID, trace ID처럼 값이 계속 늘어나는 필드는 인덱스 폭증 위험이 있다.
- 검색이 꼭 필요한 고카디널리티 값은 보존 기간과 쿼리 범위를 짧게 제한한다.
- 원문 로그 아카이브는 복구 테스트와 접근 권한 기록 없이는 비용 절감으로 인정하지 않는다.
플랫폼별 선택 포인트
도구별 가격표를 한 줄로 비교하기보다 어떤 비용 축을 잘 통제하는지 봐야 한다.
- CloudWatch Logs: AWS 내부 서비스 로그와 가까운 운영에는 자연스럽지만 클래스, 쿼리, 데이터 보호 비용을 같이 봐야 한다.
- Google Cloud Logging: 로그 버킷, 라우팅, API 관리가 핵심이므로 프로젝트와 폴더 단위 권한 설계가 중요하다.
- Datadog Logs: 수집, 처리, 아카이브, 탐색 흐름이 강하지만 인덱싱 비율과 전송비를 따로 검토해야 한다.
- Grafana Loki: 라벨 중심 인덱싱으로 비용을 낮출 수 있지만 라벨 설계를 잘못하면 쿼리와 운영 부담이 커진다.
- Elastic: 풍부한 검색과 분석 흐름이 강하지만 필드 구조화, 보관 계층, 스토리지 설계를 먼저 잡아야 한다.
도구 선택의 결론은 가격표가 아니라 우리 팀의 장애 대응 방식과 보안 감사 요구에서 나온다.
실전 순서: 30일 기준선 측정
- 서비스별 일별 로그 GB와 이벤트 수를 30일 동안 저장한다.
- 심각도별 비중을 나누고 debug, info, warn, error 로그의 실제 조회 빈도를 확인한다.
- 알림에 쓰는 로그와 사고 조사에 쓰는 로그를 분리한다.
- 사용자 ID, 요청 ID, trace ID 같은 고카디널리티 필드가 인덱스에 들어가는지 확인한다.
- 보관 기간을 hot, warm, archive로 나누고 복구 시간 목표를 적는다.
- 외부 SaaS 전송 경로의 리전, 공용 인터넷, PrivateLink 가능 여부를 확인한다.
- 마스킹 전후 로그 샘플을 보안팀과 함께 검토하고 누락된 감사 필드를 확인한다.
- 파일럿 정책을 한 서비스에 적용한 뒤 장애 티켓 해결 시간이 나빠졌는지 비교한다.
이 순서를 거치면 로그 모니터링 비용을 줄여도 되는 지점과 줄이면 안 되는 지점이 분리된다.
실무 시나리오 1: 쿠버네티스 로그 폭증
쿠버네티스 전환 뒤 로그 비용이 늘었다면 노드 수보다 파드 재시작과 사이드카 로그를 먼저 봐야 한다.
- 각 파드가 stdout에 같은 오류를 반복 출력하면 수집량이 배포 횟수와 함께 증폭된다.
- Ingress, service mesh, 애플리케이션이 같은 요청을 각각 남기면 이벤트 하나가 세 줄 이상으로 늘어난다.
- 네임스페이스와 서비스명은 라벨로 적합하지만 pod UID와 request ID는 라벨 후보에서 제외한다.
- 정상 healthcheck는 metric으로 바꾸고 4xx, 5xx, 지연 임계값 초과만 로그로 남긴다.
이 조건에서는 로그 도구 교체보다 수집 전 필터와 라벨 전략이 먼저다.
실무 시나리오 2: 결제 서비스 개인정보 로그
결제 서비스는 비용을 줄인다는 이유로 로그를 과하게 삭제하면 사고 조사와 감사 대응이 위험해진다.
- 카드번호, 토큰, 세션 쿠키, 이메일 원문은 수집 전에 제거하거나 마스킹한다.
- 주문 ID와 trace ID는 사고 연결에 필요하지만 검색 보관 기간을 짧게 둘 수 있다.
- 결제 승인 실패 로그는 비율과 오류 코드 집계 지표를 만들고 원문은 제한된 기간만 hot으로 둔다.
- 감사 보관 로그는 접근 권한, 복구 요청자, 복구 사유가 남는 저장소에 둔다.
이 조건에서는 개인정보 스캔 비용과 마스킹 정책을 예산 항목으로 올려야 한다.
실무 시나리오 3: 멀티클라우드 전송비
Datadog의 전송비 가이드는 클라우드 밖으로 로그를 보낼 때 데이터 전송비가 큰 항목이 될 수 있다고 설명한다.
로그 SaaS를 쓰는 팀은 수집비만 보지 말고 리전, 프라이빗 링크, NAT, 인터넷 경로를 함께 확인해야 한다.
- 로그 발생 리전과 수집 리전이 다르면 네트워크 전송비와 지연 시간이 함께 생긴다.
- PrivateLink 같은 사설 연결은 모든 사이트와 리전에 열려 있지 않을 수 있으므로 도입 전 확인이 필요하다.
- 멀티클라우드 로그를 한곳에 모을 때는 원문 전체보다 보안 이벤트와 에러 로그 우선순위를 둔다.
- 아카이브는 원본 클라우드 저장소에 남기고 검색용 요약만 외부로 보내는 구조도 비교한다.
이 조건에서는 로그 모니터링 비용의 병목이 저장소가 아니라 네트워크가 될 수 있다.
비용·보안·운영 체크리스트
| 체크 항목 | 담당자 | 통과 기준 | 실패 시 조치 |
|---|---|---|---|
| 수집 정책 | SRE | 서비스별 로그 GB와 심각도 비중이 기록된다. | debug 기본값과 healthcheck 전송을 조정한다. |
| 인덱스 정책 | 플랫폼 팀 | 검색 필드와 보관 필드가 분리된다. | 고카디널리티 필드를 라벨에서 제거한다. |
| 보관 정책 | 보안팀 | hot, warm, archive 기간과 복구 절차가 있다. | 감사 요구와 복구 시간을 다시 합의한다. |
| 쿼리 정책 | 운영팀 | 알림 쿼리가 넓은 기간을 반복 스캔하지 않는다. | 지표화와 사전 집계를 먼저 만든다. |
| 전송 정책 | 인프라 팀 | 리전과 사설 연결 가능성을 확인했다. | 수집 리전과 저장 위치를 다시 잡는다. |
| 마스킹 정책 | 보안팀 | 민감 필드가 수집 전에 제거된다. | 배포 차단 기준과 예외 승인자를 둔다. |
OpenTelemetry Collector 정책 스켈레톤
아래 예시는 실제 운영 설정이 아니라 로그 비용 정책을 코드 리뷰 대상으로 만들기 위한 스켈레톤이다.
# otel-log-cost-policy.yaml
# 목적: 로그 모니터링 비용을 장애 대응 범위 안에서 통제한다.
receivers:
filelog/app:
include:
- /var/log/app/*.log
operators:
- type: json_parser
parse_from: body
processors:
transform/remove_noise:
log_statements:
- context: log
statements:
- delete_key(attributes, "debug_payload")
- delete_key(attributes, "session_cookie")
- set(attributes["cost_class"], "hot") where severity_number >= SEVERITY_NUMBER_WARN
- set(attributes["cost_class"], "archive") where severity_number < SEVERITY_NUMBER_WARN
filter/drop_healthcheck:
logs:
log_record:
- 'attributes["path"] == "/health" and severity_number < SEVERITY_NUMBER_WARN'
batch:
send_batch_size: 2048
exporters:
otlp/hot_monitoring:
endpoint: ${HOT_LOG_BACKEND_ENDPOINT}
s3/archive:
region: ap-northeast-2
bucket: ${LOG_ARCHIVE_BUCKET}
service:
pipelines:
logs/hot:
receivers: [filelog/app]
processors: [transform/remove_noise, filter/drop_healthcheck, batch]
exporters: [otlp/hot_monitoring]
logs/archive:
receivers: [filelog/app]
processors: [transform/remove_noise, batch]
exporters: [s3/archive]
아래 Python 예시는 실제 과금 API를 호출하지 않고 로그 비용 검토 입력이 충분한지 확인하는 사전 점검 스켈레톤이다.
# log_cost_preflight.py
# 실제 과금 계산기가 아니라 월별 로그 비용 검토에 필요한 입력 누락을 찾는 스켈레톤이다.
REQUIRED = {
"daily_ingest_gb", "indexed_ratio", "retention_days", "query_scan_gb",
"egress_gb", "pii_scan_enabled", "owner", "rollback_plan"
}
def review_log_cost(case):
missing = sorted(key for key in REQUIRED if key not in case or case.get(key) in (None, ""))
if missing:
return {"decision": "hold", "reason": f"missing:{missing}"}
if case["indexed_ratio"] > 0.4 and case["daily_ingest_gb"] > 100:
return {"decision": "redesign", "reason": "too_much_hot_indexing"}
if case["retention_days"] > 90 and case["archive_policy"] != "cold_storage":
return {"decision": "redesign", "reason": "long_retention_without_archive"}
if case["pii_scan_enabled"] is False and case.get("contains_user_data"):
return {"decision": "hold", "reason": "pii_gate_missing"}
if case["egress_gb"] > case["daily_ingest_gb"] * 0.3:
return {"decision": "review_network", "reason": "egress_may_dominate"}
return {"decision": "pilot_allow", "reason": "bounded_log_cost_risk"}
도입을 보류해야 하는 신호
- 장애 대응 로그와 감사 보관 로그를 같은 인덱스와 같은 보관 기간에 둔다.
- 로그 비용 보고서에 수집량만 있고 쿼리 스캔량과 전송량이 없다.
- 고객 ID, 주문 ID, trace ID를 무조건 라벨이나 인덱스 필드로 올린다.
- 개인정보 마스킹이 애플리케이션 밖에서만 처리되고 수집 전 차단 기준이 없다.
- 비용 절감을 위해 error 로그까지 샘플링하지만 장애 복구 검증은 하지 않았다.
- 외부 SaaS로 대량 로그를 보내면서 리전과 PrivateLink 가능성을 확인하지 않았다.
- 아카이브 복구 테스트 없이 보관 등급만 낮췄다.
이 신호가 두 개 이상이면 도구 구매보다 로그 생애주기 설계를 먼저 고쳐야 한다.
최종 판단: 로그 비용은 데이터 파이프라인 비용이다
로그 모니터링 비용을 줄이는 핵심은 어떤 도구가 싼지보다 어떤 데이터를 hot 경로에 태울지 정하는 것이다.
수집 전 필터, 낮은 카디널리티 라벨, 짧은 hot 보관, 장기 아카이브, 사설 전송 경로가 같은 표에 있어야 한다.
보안팀과 운영팀은 비용 절감률보다 사고 조사에 필요한 단서가 남는지 먼저 합의해야 한다.
가장 안전한 시작점은 한 서비스에 30일 기준선을 만들고 필터 적용 전후의 비용과 장애 해결 시간을 함께 비교하는 것이다.
함께 보면 좋은 글
자주 묻는 질문
로그 모니터링 비용은 어디서 가장 많이 늘어나나요?
대부분은 수집량, 인덱싱 비율, 장기 hot 보관, 넓은 쿼리 스캔, 외부 전송비에서 늘어난다.
debug 로그를 모두 끄면 비용 문제가 해결되나요?
아니다.
debug 로그를 줄이는 것은 시작점일 뿐이며 인덱스, 보관, 쿼리, 전송 경로를 같이 봐야 한다.
Loki를 쓰면 로그 비용이 항상 낮아지나요?
아니다.
라벨 설계를 잘못하면 쿼리 성능과 운영 부담이 커지므로 낮은 카디널리티 전략이 필요하다.
Datadog이나 CloudWatch 같은 SaaS를 쓰면 무엇부터 봐야 하나요?
수집 GB, 인덱싱 정책, 보관 기간, 데이터 보호 스캔, 네트워크 전송비를 분리해서 봐야 한다.
보안 로그도 비용 절감 대상인가요?
대상은 맞지만 원문 삭제보다 마스킹, 접근권한, 보관 계층, 복구 절차를 먼저 검토해야 한다.
로그 비용 절감 파일럿은 얼마나 해보면 되나요?
최소 30일 기준선을 만들고 장애 티켓 해결 시간, 알림 정확도, 감사 복구 가능성을 같이 비교하는 편이 안전하다.
출처와 확인일
- AWS Docs — What is Amazon CloudWatch Logs? (확인일: 2026-06-29)
- AWS Pricing — Amazon CloudWatch Pricing (확인일: 2026-06-29)
- OpenTelemetry — Logs signal and Collector concepts (확인일: 2026-06-29)
- Grafana Loki — Grafana Loki documentation (확인일: 2026-06-29)
- Grafana Loki — Understand labels (확인일: 2026-06-29)
- Datadog Docs — Log Management (확인일: 2026-06-29)
- Datadog Docs — Reduce data transfer fees for logs (확인일: 2026-06-29)
- Google Cloud — Cloud Logging documentation (확인일: 2026-06-29)
이 글은 공개 기술 문서와 벤더 자료를 바탕으로 한 일반 정보이며 실제 가격과 기능은 리전, 계약, 사용량, 보안 요구에 따라 달라질 수 있다.
구매와 운영 결정 전에는 공식 가격표, 보안 정책, 로그 보관 의무, 장애 대응 절차, 법무 검토를 함께 확인해야 한다.




댓글
댓글 쓰기