SLI, SLO, SLA


개념

서비스 신뢰성을 측정하고 관리하기 위한 핵심 지표들로, 각각의 관계는 SLI → SLO → SLA 순으로 계층적으로 구성된다.

SLI (Service Level Indicator)

  • 서비스 수준을 측정하는 구체적인 지표
  • 서비스의 품질을 정량화한 측정값
  • 예시:
    • 가용성: 성공한 요청 수 / 전체 요청 수
    • 응답 시간: 500ms 이하로 응답한 요청의 비율
    • 처리량: 초당 처리된 요청 수
    • 에러율: 실패한 요청 수 / 전체 요청 수

SLO (Service Level Objective)

  • SLI를 기반으로 설정한 목표값
  • 서비스가 달성해야 하는 신뢰성 목표
  • 예시:
    • 월간 가용성 99.9% 이상
    • 95%의 요청이 200ms 이내 응답
    • API 에러율 0.1% 미만
  • SLO를 위반하면 에러 예산(Error Budget)이 소진되며, 새 기능 개발보다 안정성 개선에 집중해야 함

SLA (Service Level Agreement)

  • 고객과의 법적 계약으로 명시된 서비스 수준 약속
  • SLO보다 여유있게 설정 (일반적으로 SLO보다 낮은 목표)
  • SLA 위반 시 보상이나 환불 조항 포함
  • 예시:
    • 월간 가용성 99.5% 보장, 미달 시 크레딧 제공
    • 응답 시간 1초 이내 95% 보장

관계

실제 측정 → SLI (예: 99.95% 가용성)
         ↓
내부 목표 → SLO (예: 99.9% 이상)
         ↓
고객 약속 → SLA (예: 99.5% 보장)

SLA 는 SLO 보다 여유있게 설정하여 SLO 내에서 문제를 해결할 수 있는 버퍼를 확보한다. 이를 통해 SLA 위반 전에 내부적으로 대응할 수 있는 시간을 벌 수 있다.

AWS 로 DMZ 구성


gql.api.example.com R53 CloudFront R53(Public Hosted Zone 을 타고 감) ALB(Ingress) EKS Node Group EKS Pod

References