SLI란 무엇인가
SLI(Service Level Indicator)는 서비스의 상태를 정량적으로 나타내는 실제 측정 지표를 의미합니다. 쉽게 말해 ‘이 서비스가 지금 얼마나 잘 동작하고 있는가’를 숫자로 표현한 값입니다. 예를 들어 응답 성공률, 응답 지연 시간, 처리량 등이 대표적인 SLI입니다. SLI는 그 자체로는 목표가 아니라, SLO(Service Level Objective)라는 목표치를 세우기 위한 ‘측정 재료’라는 점이 중요합니다. 흔히 건강검진에 비유하면 이해하기 쉽습니다. 혈압, 혈당 수치가 SLI라면, ‘혈압을 120 이하로 유지한다’는 목표가 SLO에 해당합니다. 수치 없이는 목표를 세울 수 없듯, SLI 없이는 SLO도 존재할 수 없습니다.
SLI, SLO, SLA의 관계와 측정 예시
세 개념은 종종 혼동되지만 역할이 명확히 다릅니다.
- SLI: 실제 측정값 (예: 최근 5분간 HTTP 200 응답 비율이 99.95%)
- SLO: 내부적으로 세운 목표값 (예: 월간 가용성 99.9% 이상 유지)
- SLA: 고객과의 계약상 약속 (예: 99.9% 미만 시 환불 조항 적용)
실제 SLI를 정의할 때는 보통 다음과 같은 비율 공식을 사용합니다.
SLI = 좋은 이벤트 수 / 전체 이벤트 수 * 100
예를 들어 API 서버가 하루 100만 건의 요청을 처리했고 그중 999건이 5xx 에러였다면, 성공률 기반 SLI는 약 99.9%가 됩니다. 이 수치를 매 시간, 매일 누적해서 추적하면 서비스 품질의 추세를 파악할 수 있고, 목표치인 SLO와 비교해 얼마나 여유(에러 버짓)가 남아있는지도 계산할 수 있습니다.
실무에서 SLI를 활용하는 이유
SLI를 도입하는 가장 큰 이유는 ‘감이 아니라 데이터로’ 서비스 상태를 판단하기 위해서입니다. 장애가 발생했을 때 ‘느린 것 같다’는 주관적 표현 대신, ‘지연시간 SLI가 200ms에서 800ms로 상승했다’처럼 구체적으로 소통할 수 있습니다. 또한 SLI는 알림(Alert) 설계의 기준이 됩니다. 무의미하게 CPU 사용률 하나로 알림을 울리는 대신, 사용자 경험과 직결된 SLI(응답 성공률, 지연시간)를 기준으로 알림을 설정하면 불필요한 알림 피로도를 줄이고 실제 장애에 빠르게 대응할 수 있습니다. 결국 좋은 SLI를 선정하는 능력은 서비스 신뢰성 엔지니어링(SRE)의 출발점이며, 이는 곧 사용자가 체감하는 품질을 시스템 관점에서 번역하는 작업이라고 할 수 있습니다.