SRE
[SRE] SRE 기본: SLI, SLA, SLO
테런
2025. 5. 29. 15:31
SLI (Service Level Indicator)
사용자의 관점에서 서비스 품질을 측정할 수 있는 ‘정량적’ 지표
"무엇을 측정할 것인가?"에 대한 답. SLI는 SLO 달성 여부를 판단하는 기준 데이터입니다.
* API 서버: 성공적인 HTTP 응답률 (예: 200, 204)
* 웹사이트: P95 응답 시간
* 스토리지: 데이터 손실률 (0이어야 함)
* 메시지 큐: 메시지 지연 시간, 실패율
* CDN: 캐시 히트율
사용자 경험에 직접적으로 영향을 주는 것만 SLI로 삼는 것이 좋습니다. 내부 메트릭(e.g., CPU 사용률)은 보조 지표이지 직접적인 SLI가 아닙니다.
SLO (Service Level Objective)
SLI에 기반한 ‘목표 수치’, 서비스의 기대 신뢰성 수준을 정의
"어디까지가 성공인가?"에 대한 기준. SRE는 SLO를 기준으로 배포 여부, 장애 대응, 오류 허용량 관리 등을 판단합니다.
* 한 달 동안 API 요청의 99.9%가 500ms 이내에 응답해야 한다.
* 주간 기준으로 HTTP 오류율은 0.1% 이하
너무 높은 SLO(예: 100%)는 현실적이지 않으며 개발과 배포 속도를 제한할 수 있습니다. 너무 낮으면 신뢰성 부족으로 이어져 사용자 불만이 발생합니다.
SLA (Service Level Agreement)
SLO를 기반으로 만든 고객과의 ‘계약서’
고객과 체결한 법적 효력을 지닌 서비스 보장 수준. SLA 미달 시, 보상금, 크레딧 지급 등의 금전적 페널티가 발생할 수 있습니다.
* 월간 가용성이 99.95% 미만일 경우, 해당 기간 요금의 10%를 크레딧으로 보상
* 1시간 이상 장애 발생 시, 서비스 비용 환불
SLA는 대부분 SLO보다 보수적으로 설정됩니다. SLA는 주로 B2B 서비스나 엔터프라이즈 계약에서 강조됩니다.
Error Budget
SLO 미달을 허용할 수 있는 '실패의 여유 공간'
SLO를 100%가 아닌 ‘99.9%’ 등으로 설정하는 이유. Budget이 소진되었는지 여부는 새로운 기능 출시 속도를 조절하는 기준이 됩니다.
* 월간 가용성 SLO = 99.9%
* 한 달 총 시간 = 43,200분
* 허용 다운타임 = 43.2분 → Error Budget
Error Budget이 남아 있다면 ➝ 배포 OK
Error Budget 초과 ➝ 릴리스 중단, 원인 분석 및 안정화
Percentile
응답 시간 측정에서 자주 사용되는 지표 (예: P95 = 상위 95% 요청의 응답 시간이 이 시간 이내여야 한다는 의미)
가용성 (Availability)
서비스가 정상 동작한 시간 / 전체 시간
주로 SLA나 SLO의 핵심 지표
* 99% ("Two Nines") ➝ 약 7시간 18분 (월간)
* 99.9% ("Three Nines") ➝ 약 43분 49초 (월간)
* 99.99% ➝ 약 4분 23초 (월간)
* 99.999% ➝ 약 26초 (월간)
Monitoring vs Observability
Monitoring은 사전 정의된 메트릭을 수집. 주로 알려진 문제를 감지
* CPU, Memory, 오류율
Observability는 시스템 내부 상태를 추론할 수 있도록 설계. 알려지지 않은 문제 탐지
* Trace, 로그, 히스토리 기반 문제 파악
Reliability vs Availability
Reliability는 일정 시간 동안 지속적으로 동작하는 능력
* 오류율, 연속적인 장애 없는 시간
Availability는 요청 시 항상 응답 가능한 상태
* 전체 시간 대비 동작 시간