#DevOps

클라우드 비용 최적화를 위한 Automatic Labeling System 구축기

클라우드 비용 최적화를 위한 Automatic Labeling System 구축기
01

Summary

클라우드 비용, 범인은 누구? 왓챠가 70% 더 정밀하게 돈 새는 곳을 잡아낸 방법

AWS와 서버리스를 활용해 수동 태깅의 한계를 깨고 무중단 비용 가시성을 확보한 아키텍처 구축기

클라우드 규모가 커질수록 어떤 서비스가 비용을 유발하는지 실시간으로 추적하는 일은 거의 불가능해집니다. 왓챠 플랫폼 팀은 구성원의 수동 입력 방식에서 벗어나 정책을 완전히 자동화한 독자적인 라벨링 시스템을 고안했습니다. 비용 분석의 핵심인 '비용 배분'을 성공적으로 안착시킨 이벤트 기반 아키텍처와 생생한 수치적 성과를 만나보세요.

  • 01수동 라벨링 정책이 규모(Scale), 일관성(Consistency), 지속성(Continuity) 관점에서 실패하는 이유 분석
  • 02실시간 Event-driven 스캔과 주기적인 Schedule-driven 스캔을 조합한 하이브리드 트리거 레이어 구축
  • 03기존 태그를 지키는 Additive Only 정책과 전체 시스템 가용성을 보호하는 Fail Safe 핵심 원칙 적용
  • 04시스템 자동 가동을 통해 라벨링 커버리지를 11.9%에서 82.2%까지 극적으로 견인
  • 05단순 비용 절감을 넘어 주체적인 비용 책임 문화(Showback/Chargeback)로 나아가기 위한 클라우드 생태계 제시

RECOMMENDATION

대규모 AWS 환경에서 리소스 관리 체계가 무너졌거나, 각 부서 및 프로젝트별 정확한 정산 비용 분배에 어려움을 겪고 있는 DevOps 및 플랫폼 인프라 엔지니어에게 적극 추천합니다.

The Problem

기존의 수동 기반 리소스 라벨링 정책은 사용자 누락, 긴급 생성 시의 예외 상황, 자동화 리소스에 대한 전파 실패 및 인적 오류로 인해 정책이 유명무실해지고 비용 분석용 메타데이터가 정상 수집되지 않는 문제를 겪었습니다.

The Solution

AWS CloudTrail, S3, SNS, SQS, 그리고 Lambda를 연동하여 실시간 및 주기적 스캔 방식으로 리소스 생성을 감지하고 자동으로 규격화된 태그를 삽입하는 서버리스 기반의 'Automatic Labeling System'을 구축했습니다.

The Result

시스템 도입 이후 리소스 라벨링 커버리지 비율이 기존 11.9%에서 82.2%로 무려 70.3%p 증가하였으며, 수동 개입 없는 자동 라벨링 성공률 83.5%를 달성하여 정교한 비용 배분의 기반을 마련했습니다.

Trade-off

Amazon EBS 등 일부 리소스의 경우 생성 시점과 실제 라벨링 처리 시점 간에 지연이 발생하는 다운타임이 존재하며, 기존 수동 태그를 덮어쓰지 않는 안전 원칙으로 인해 이미 오염되었거나 오타가 난 과거 태그를 교정하지는 못하는 한계가 있습니다.

03

Key Concepts

Concept · 01

FinOps

클라우드 인프라 운영 과정에서 재무, 엔지니어링, 비즈니스를 융합하여 비용의 투명성을 확보하고 클라우드 투자의 비즈니스 가치를 극대화하려는 운영 프레임워크이자 조직적 문화입니다.

  • 왓챠가 재정 비용과 기술 운영 비용 사이의 최적의 타협점을 조율하는 중심 철학으로 채택했습니다.
  • 리소스의 맥락을 밝히는 메타데이터인 라벨링을 통해 완벽한 비용 최적화 여정을 시작하는 계기가 되었습니다.
Concept · 02

Resource Labeling (리소스 라벨링)

클라우드 리소스에 키-값 쌍 형태의 메타데이터 태그를 부착하여 리소스의 소유권(Who), 목적(Why), 환경(Where) 등 비용에 명확한 분류 기준과 맥락을 부여하는 방식입니다.

  • 사용자의 직접 입력 방식 대신 자동화 솔루션을 통해 리소스에 일관적으로 태그를 주입하는 시스템의 목적이 되었습니다.
  • Karpenter 등 다른 파이프라인에서 생성한 기존의 태그 정보를 덮어쓰지 않는 Additive Only 원칙 하에 구동됩니다.
Concept · 03

Event-Driven Serverless Architecture

특정 이벤트(리소스 생성 등) 발생 시에만 비동기적으로 함수(AWS Lambda)를 구동시켜 리소스를 필요한 만큼 사용하고 처리 결과를 즉각 전파하는 서버리스 설계 패턴입니다.

  • CloudTrail 로그를 S3에 기록한 뒤 SQS를 거쳐 Lambda가 비동기 배치 형태로 태깅 API를 실행하도록 아키텍처가 설계되었습니다.
  • 라벨링 작업 자체에 오류가 생겨도 핵심 업무 서비스 및 인프라 작동에 영향을 끼치지 않는 완벽한 격리 환경(Fail-Safe)을 만듭니다.