콘텐츠로 바로가기

SLIs, SLOs & Error Budgets

시스템의 신뢰성을 수치화하는 지표들과, 비즈니스 가치와 엔지니어링 속도 사이의 물리적 균형을 맞추는 오류 예산 물리학을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

신뢰성 지표 및 오류 예산(SLIs, SLOs & Error Budgets, SSE)은 "시스템이 완벽해야 한다"는 불가능한 열망을 버리고, 사용자가 만족할 수 있는 실질적인 서비스 수준을 수리적으로 정의하여 혁신의 속도를 조절하는 분산 시스템의 경제학입니다.

학습자는 서비스의 상태를 측정하는 구체적인 수치인 **서비스 수준 척도(SLI)**와, 이를 바탕으로 설정한 목표치인 **서비스 수준 목표(SLO)**의 수리적 사상을 배웁니다. 특히, SLO를 지키고 남은 '실패의 허용량'인 **오류 예산(Error Budget)**의 물리적 가동 원리와, 예산 소진 시 하드웨어 변경을 멈추고 신뢰성에 집중하는 의사결정 구조를 익힙니다. 이를 통해 막연한 안정성이 아닌, 데이터에 기반하여 '얼마나 위험을 감수할지'를 정교하게 설계하는 하이엔드 SRE 역량을 확보합니다.

2. Scope & Boundaries

In-Scope

  • SLI Definitions: 가용성, 지연 시간(Latency), 처리량, 품질 등 물리적 측정 지표 수립
  • SLO Modeling: 사용자 경험과 하드웨어 성능 사이의 합리적 수치 목표(99.9% 등) 설정
  • Error Budget Mechanics: 100%SLO100\% - SLO 공식을 통한 실패 허용량의 물리적 할당
  • Compliance Period: 일간, 주간, 월간 단위의 지표 집계 및 수리적 평가 주기
  • Consequence Dynamics: 오류 예산 소진 시 실행되는 정책(Freeze 등)의 운영 물리학

Out-of-Scope

  • 모니터링 대시보드(Grafana 등)의 UI 위젯 설정 상세 (07-05-02 영역에서 분담)
  • 구체적인 서버 성능 튜닝 코드 (09-02-XX 영역으로 위임)

Boundaries

  • SSE vs. Monitoring: 모니터링(07-05-02)이 '무슨 일이 일어나는가'를 보는 눈이라면, SSE는 '그 일이 비즈니스적으로 허용 가능한가'를 판단하는 수리적 뇌로서 구분합니다.

3. Counterexample

  • 단순히 "UP/DOWN 확인하기"라 설명하는 것은 SSE 학습이 아닙니다. 왜 **가용성 99%**와 99.99% 사이의 물리적 인프라 비용 격차가 지수적으로 발생하는지 수리 증명할 수 있어야 하며, 오류 예산이 남아있을 때 왜 의도적으로 장애를 내거나(Chaos) 배포 속도를 높이는 것이 하드웨어 최적화에 도움이 되는지 논증하지 못한다면 SSE의 철학을 이해하지 못한 것입니다.

4. Prerequisites

  • Reliability Engineering & SRE Fundamentals (Basic): SRE의 기본 철학 이해가 필수입니다. (07-00-XX 기반 역량)
  • Probability & Statistics (Recommended): 백분위수(Percentile)와 가득성 통계 이해가 권장됩니다. (04-03-02 PDS)

5. Learning Map

  1. Measuring Reality: 시스템이 내뱉는 수많은 로그 중 '고객의 고통'을 나타내는 물리적 지표(SLI)를 고릅니다.
  2. The Happiness Line: 고객이 화를 내기 직전의 최소 성능 수치(SLO)를 수리적으로 확정합니다.
  3. The Freedom of Failure: SLO를 만족하고 남은 여유 공간(Error Budget)을 물리적으로 계산합니다.
  4. Governing Speed: 남은 예산에 따라 하드웨어 배포의 가속 페달을 밟거나 브레이크를 거는 자동화된 제어 물리를 완성합니다.

6. Learning Topics

Basic

Core: SLI 지표의 물리적 선정 (Choosing SLIs)

  • Why to Learn: 의미 없는 수천 개의 지표에 매몰되지 않고, 서비스의 생사를 결정짓는 핵심 물리량을 찾기 위해서입니다.
  • What to Learn:
    • Request-driven SLIs: 가용성(성공/전체), 지연 시간(P99P99), 처리량 측정
    • Storage SLIs: 지연 시간, 사용량, 데이터 정합성 수치
    • Pipeline SLIs: 데이터 처리량, 경과 시간(FreshnessFreshness)
  • How to Learn:
    • API 게이트웨이 로그를 분석하여 '200 OK' 비율과 '500 Error' 비율을 수리적으로 추출하는 실습
    • 사용자 도메인별(로그인 vs 검색)로 어떤 물리 지표가 최우선인지 분류
  • Implement: 특정 API의 에러율과 95분위수 응답 시간을 계산하여 출력하는 MetricAggregator

Core: SLO 수치 모델링과 정당성 (Setting SLOs)

  • Why to Learn: 하드웨어 가용성 1%를 높이기 위한 막대한 비용 지출이 비즈니스적으로 타당한지 수리 분석하기 위함입니다.
  • What to Learn:
    • The Rule of Nines: 99.9% 와 99.99%가 의미하는 물리적 가동 중단 시간의 격차
    • User Expectation: 시스템의 한계가 아닌, 사용자가 느끼는 '충분함'의 수리적 정의
    • Error Window: 지표를 평가할 물리적 관찰 창(Window) 설정
  • How to Learn:
    • 99.9% SLO 설정 시, 한 달간 허용되는 물리적 다운타임이 43분임을 수리 산출하는 실습
    • 과거 장애 데이터를 바탕으로 현재 시스템 사양이 달성 가능한 최선의 SLO 도출
  • Implement: 현재 가용성 수치가 설정한 SLO를 위반(Violation)했는지 판별하는 ComplianceChecker

Practical

Core: 오류 예산의 물리적 운영 (Error Budget Dynamics)

  • Why to Learn: "장애는 피할 수 없다"는 전제하에 안정성과 변화 속도의 물리적 마찰을 해소하기 위해서입니다.
  • What to Learn:
    • Budget Calculation: 100%SLO100\% - SLO로 산출된 물리적 '실패 통장'
    • Burn Rate: 예산이 얼마나 빨리 소모되고 있는지 나타내는 수리적 기울기
    • Incident Impact: 특정 장애가 오류 예산의 몇 %를 물리적으로 깎아먹었는지 산출
  • How to Learn:
    • 10분간의 전면 장애 발생 시, 월간 오류 예산의 소진율을 계산하고 남은 배포 가능 횟수 예측 실습
    • 예산 소진 속도에 따른 자동 경고(Alert) 임계치 설정
  • Implement: 장애 발생 시간과 트래픽을 입력하면 삭감될 오류 예산을 계산해주는 BudgetManager

Advanced

Core: 신뢰성 기반 의사결정과 거버넌스 (SRE Governance)

  • Why to Learn: 데이터가 시키는 대로 조직의 하드웨어 운영 정책을 강제하여 인적 오류를 최소화하기 위함입니다.
  • What to Learn:
    • Error Budget Policy: 예산 소진 시 배포 중단(Freeze) 및 안정성 작업 강제 수순
    • Silver Bullet Fallacy: 과도한 SLO(100%)가 하드웨어 발전을 가로막는 물리적 역설
    • Shared Responsibility: 개발과 운영이 같은 지표(SLO)를 바라보는 수리적 협업 구조
  • How to Learn:
    • 오류 예산이 넉넉할 때 실험적인 기술(Experimental Tech)을 물리 인프라에 적용하는 시나리오 실습
    • SLO를 달성하지 못했을 때 수행하는 '근본 원인 분석(RCA)'과 오류 예산 복구 절차 분석
  • Implement: 모든 서비스의 예산 상태를 집계하여 배포 가부를 판단(Gate)하는 ReliabilityDashboard 기획

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
SLI 서비스의 상태를 측정하기 위해 정의된 구체적인 수리적 지표입니다. 기본 측정 기초 Indicator Metric 단순히 '로그' 아님 Industry/SRE core
SLO 특정 기간 동안 달성해야 할 SLI의 물리적 목표 수치 또는 범위입니다. 기본 합의 목표 Objective SLA SLA는 계약/법적 Industry/SRE core
Error Budget SLO를 위반하지 않으면서 허용되는 최대로 실패 가능한 서비스 수준의 물리적 여유량입니다. 실무 가중치 조절 Budget Failure Rate '낭비'가 아닌 '투자' Industry/SRE core
Burn Rate 오류 예산이 소모되는 물리적 속도로, 잠재적 SLO 위반 가능성을 예측하는 지표입니다. 심화 조기 경보 Velocity Slope 기울기가 가파르면 위험 Industry core

8. References

Primary

Secondary

  • [Site Reliability Engineering (SRE Book)] Google — Chapters on SLIs, SLOs, and Error Budgets.
  • [The Site Reliability Workbook] Google — Practical guide to SLO implementation.

Industry

  • [Google Cloud: Art of SLOs] — Hands-on modeling framework.
  • [Datadog: Guide to SLOs and Error Budgets] — Tooling perspective.

9. Final Checklist

Primary

  • '가용성'을 측정하는 SLI 수식(GoodRequests/TotalRequestsGood Requests / Total Requests)이 왜 하드웨어의 단순 생존(UptimeUptime)보다 정확한지 설명 가능한가? (P2)
  • 'SLO' 설정을 통해 시스템의 '오버 엔지니어링'을 방어하고 인프라 비용을 절감하는 수리적 원리를 기술할 수 있는 가? (P5)

Secondary

  • '오류 예산'이 남아있음에도 불구하고 개발 속도를 늦추는 행위가 왜 물리적 리소스 낭비가 되는지 소통 가능한가?
  • **번 레이트(Burn Rate)**가 급격히 상승했을 때, 장애 상황실에서 취해야 할 물리적 대응 우선순위를 논증할 수 있는 가?

Industry

  • 대규모 분산 시스템 설계 시, 지연 시간(LatencyLatency) SLO를 '평균'이 아닌 '99분위수(P99P99)'로 설정해야 하는 수리적 필연성을 제안할 수 있는 가? (SFIA)
  • 서비스 운영 중 '오류 예산 소진' 정책이 개발팀의 배포 자유도에 미치는 물리적 영향을 분석할 수 있는 가?