SLI, SLO, SLA란 무엇인가
서비스 신뢰도를 이야기할 때 가장 많이 헷갈리는 세 가지 개념이 SLI, SLO, SLA입니다. 이 셋은 서로 독립된 개념이 아니라, 하나의 지표에서 시작해 목표를 세우고 계약으로 확장되는 계층 구조를 가집니다.
SLI(Service Level Indicator)는 실제로 측정하는 지표 그 자체입니다. 예를 들어 ‘요청 성공률’, ‘응답 지연 시간(p99 latency)’, ‘가용성(uptime)’ 같은 것들이 SLI에 해당합니다. 즉 시스템의 상태를 숫자로 보여주는 원시 데이터입니다.
SLO(Service Level Objective)는 이 SLI에 대해 팀이 내부적으로 정한 목표치입니다. 예를 들어 ‘월간 가용성 99.9% 유지’, ‘응답 시간 300ms 이하를 99% 요청에서 보장’ 같은 것이 SLO입니다.
SLA(Service Level Agreement)는 SLO를 바탕으로 고객과 맺는 공식적인 계약입니다. SLA를 지키지 못하면 보통 환불이나 크레딧 지급 등 계약상 페널티가 따릅니다.
피자 배달로 이해하는 세 지표의 관계
이해를 돕기 위해 피자 배달 서비스를 예로 들어보겠습니다.
- SLI: ‘주문 후 배달까지 걸린 시간’을 실제로 측정한 값 (예: 평균 28분)
- SLO: 회사 내부 목표 ‘90%의 주문을 30분 이내에 배달한다’
- SLA: 고객과의 약속 ’30분 초과 시 피자 무료 제공’
즉 SLI는 온도계처럼 현재 상태를 보여주는 측정값이고, SLO는 팀이 스스로 정한 기준선이며, SLA는 그 기준을 어겼을 때 책임이 따르는 대외적 약속입니다. 보통 SLA는 SLO보다 느슨하게 설정하는데, 이는 내부 목표를 지키지 못했다고 바로 고객과의 계약 위반으로 이어지지 않도록 여유를 두기 위해서입니다.
실무에서 이 개념이 중요한 이유
SRE(Site Reliability Engineering) 문화에서는 SLO를 기반으로 ‘에러 버짓(Error Budget)’이라는 개념을 사용합니다. 예를 들어 SLO가 99.9%라면, 남은 0.1%는 허용 가능한 장애 여유분입니다. 이 버짓이 남아있으면 새로운 기능 배포에 집중하고, 버짓을 소진하면 안정성 작업에 우선순위를 둡니다.
이렇게 SLI로 현실을 측정하고, SLO로 내부 목표를 정하고, SLA로 대외적 신뢰를 보장하는 구조를 갖추면, ‘느낌상 서비스가 안정적이다’가 아니라 데이터에 기반해 신뢰도를 판단하고 개선할 수 있습니다. 결국 세 개념을 명확히 구분하는 것은 단순한 용어 정리가 아니라, 장애 대응 우선순위와 개발 리소스 배분을 결정하는 실질적인 기준이 됩니다.