SLA/SLO 정의 프로세스

‍최정민·2024년 7월 5일
0
post-thumbnail

SLA/SLO란

SLA

서비스 수준 계약(SLA)은 공급 업체가 고객에게 제공하기로 약속한 서비스 수준을 명시하는 아웃소싱 및 기술 공급 업체 계약입니다. 이 계약에는 가동 시간, 납품 시간, 응답 시간 및 해결 시간 등의 지표가 포함되어 있습니다. 또한 SLA는 추가 지원 또는 가격 할인 등 요구 사항이 충족되지 않았을 경우의 조치가 설명되어 있습니다.

Amazon S3 SLA

Cloud SQL Service Level Agreement SLA  |  Google Cloud

SLO

서비스 레벨 목표(SLO)는 시스템에서 기대하는 가용성에 대한 목표로, 일정 기간 동안의 백분율로 표시됩니다. 즉 SLO는 SLA를 충족하기 위해 달성해야 하는 목표라고 할 수 있습니다.


SLA 구성요소

  • 계약 개요
    • 계약에 대한 간략한 요약
  • 보장 가동률
    • 보장하는 가동률과 이를 계산하는 방법
  • 보상
    • 계약에 명시된 가동률을 지키지 못하였을 때 소비자가 받는 보상
  • 제외 사항
    • 가동률에 영향을 주지 않는 사항

가동률 계산 방식 정의

💡 가동률 계산을 위해서는 DownTime과 정의와 가동률 계산식을 정의해야 합니다.

1) DownTime에 대한 정의

  • DownTime에 대한 정의는 많은 SaaS회사들이 보수적으로 설정합니다.
    • DownTime에 대한 정의를 서비스 전체가 아닌 주요 프로세스로 설정

    • 간헐적인 장애는 DownTime 인정X

      Example

    • Azure mysql, AWS RDS - 1분 간 DB Server에 날린 모든 request가 오류를 반환할 때 해당 1분을 DownTime으로 인정

    • AWS EKS 클러스터의 Kubernetes 엔드 포인트에 대한 모든 요청이 5분 간격 동안 실패함을 의미함.

2) 가동률 계산 식에 대한 정의

  • 보통 일반적인 가동률 계산 식 (Maximum Available Time - Downtime / Maximum Available Time) * 100
  • Maximum Available
    • 보통 사용한 시간으로 계산. 하지만 청구 기간으로 보기도 함 (AWS, GCP 안 쓴 시간도 포함, 1달)

Untitled


SLA/SLO 정의 프로세스

SLA

서비스의 SLA를 정의하기 위한 프로세스를 두가지로 나누어 정리해보았습니다.

  • Top-Down Process
  • Buttom-Up Process

1) Top-Down process

  1. 서비스 오픈 전의 매트릭과 예상되는 오류량등을 고려해 보증 가용률을 먼저 설정
  2. 보증 가용률을 맞출 수 있는 적절한 DownTime, 제외 사항 설정
  • Ex)
    • Mayf Company의 DeviceManager
      1. 마케팅을 효과와 어플리케이션의 안정성 등을 고려해 99.9%로 보증 가용률 설정

      2. DeviceManager의 경우 AWS EKS 위에서 운영됩니다. AWS가 제공하는 EKS의 SLA가 99.9%이기에 AWS EKS장애를 SLA에 포함한다면, 99.9%를 보증할 수 없습니다.

        그렇기에 AWS EKS장애를 포함한 Mayf Company이 컨트롤하지 못하는 원인으로 인한 장애는 제외 사항으로 지정합니다.

      3. 패치 횟수가 많은 경우 99.9%를 보증하기 힘들기에 예정된 서비스 다운은 제외 사항으로 지정합니다.

      4. 제외 사항을 포함해도 99.9%는 월 허용 가동 중지 시간(오류 예산)이 21분밖에 되지 않기에 DownTime에 대한 계산 단위를 5분으로 하고, 정의를 5분 간 Device정보 요청에대한 모든 요청이 실패하였을 때 해당 5분을 Downtime으로 정의한다.

        이 경우 연속되지 않은 요청 실패는 Downtime에 포함되지 않고, 비록 연속되었을지라도 Device정보 요청에 대한 프로세스가 아니거나 5분 미만일 경우는 Downtime에 포함되지 않아 99.95% 가용률을 달성하는데 수월하다.

2) Buttom-Up process

  1. 서비스에 적절한 DownTime과 제외 사항을 먼저 설정
  2. 서비스 오픈 전의 메트릭과 예상되는 Downtime(제외 사항 고려)을 고려하여 보증 가용률을 설정
  • Ex)
    • Mayf Company의 DeviceManager
      1. Downtime을 1분이상의 Device와 관련된 모든 요청에 대한 실패로 설정합니다.
      2. 예정된 서비스 다운은 제외 사항으로 지정합니다.
      3. 가이드에 나와있지 않는 비정상적인 사용자의 행위를 제외 사항으로 설정합니다.
      4. 이 경우 Downtime이 1분이상의 관련된 모든 요청에 대한 실패이기에 이전 예시보다는 Downtime이 증가, 이론 상 AWS EKS의 월간 보장 가용률을 넘을 수 없기에 99.9%로 보증 가용률 설정

3) 유의 사항

  • 서비스 오픈부터 너무 높은 보증 가용률을 설정하기보다는 낮은 보증 가용률을 설정으로 오류예산을 늘려 오픈 초기 많은 패치와 예측하지 못한 상황에 대비하는 것이 좋습니다
    (오류 예산이란 : 계약 상의 부정적인 결과 없이, 서비스에 장애가 발생할 수 있는 최대 시간)
    • 대부분의 오픈초기 서비스는 99.9%를 보증 가용률로 설정함.

SLO

일반적으로 SLA에서 명시된 보증 가용률보다 SLO를 높게 설정합니다.

SLA는 고객에게 제공이 되는 계약이고, 이를 준수하지 못할 시 보상을 해야하기에 보통의 경우에 여유있게 설정을 합니다.

그에 반면에 SLO는 내부 목표로 많이 사용이 됩니다.

SLA에 명시된 보증 가용률보다 타이트하게 SLO를 설정하여, 고객에게 보상을 해야 하는 가용률 보다 높은 가용률을 유지하는 것이 하는 것이 일반적입니다.

이는 SLA 미준수로 인한 보상 확률을 줄입니다. 또한 추후 SLA 보증 가용률을 증가 시킬 수 있는 가능성을 열어주기도 합니다.

  • EX) SLA의 보증 가용률 99.9% / SLO 99.95%

완성된 SLA 예시

본 Mayf Company 서비스 수준 약정(이하 본 SLA)은 Mayf Company 서비스(이하 본 서비스)를 사용하는 각 계정에 적용됩니다. 본 SLA는 서비스 이용약관의 일부를 구성하고 본 SLA에 규정되지 않은 내용은 서비스 이용약관에 따르며, 상충되는 내용이 있을 경우에는 본 SLA가 우선합니다.

본 SLA에서 포함되는 서비스

  • DeviceManager

서비스 약정

회사는 본 서비스에 대해 아래 설명된 월 가동률을 보장하기 위해 상업적으로 합당한 노력을 기울일 것입니다. 서비스 약정을 충족하지 않는 경우 아래에 설명된 대로 서비스 라이선스를 받으실 수 있습니다.

서비스 라이선스

서비스 라이선스는 청구 주기 동안 서비스의 가동률이 보장된 수준 미만일 경우 아래 표에 나와있는 범위에 따라 사용자가 해당 서비스에 지불한 월 요금의 백분율로 계산됩니다.

월 가동률이 미달 되지 않은 다른 서비스에 대해서는 별도의 보상이 제공되지 않습니다.

월 가동률서비스 라이선스 백분율
99.0% 이상 ~ 99.9% 미만5%
95.0% 이상 ~ 99.0% 미만10%
99.5% 미만20%

발급 받은 서비스 라이선스는 가동률이 미달 된 서비스 외에 서비스에 대해서는 사용이 불가능합니다.

또한 서비스 라이선스는 타 계정으로 양도 혹은 환불이 불가능합니다. 즉 당사와 별도의 계약을 맺지 않는 이상 월 보장 가동률을 지키지 못하였을 때, 사용자가 받을 수 있는 유일한 보상 방법은 본 SLA약관에 따라 서비스 라이선스를 수령하는 것 입니다.

서비스 라이선스 요청 및 발급 절차

서비스 라이선스를 발급 받기 위해서는 고객센터에 아래 내용이 기재된 요청서를 제출해야 합니다. 서비스 라이선스 요청 유효 기간은 장애 발생 후 60일입니다.

  • SLA 미 준수로 인한 서비스 라이선스 신청이라는 제목 문구
  • 서비스 장애의 내용, 서비스 장애의 날짜와 시간
  • SLA 미 준수의 원인이 된 장애가 기록된 증빙 자료
    • 로그(기밀 및 민감 정보 마스킹 필요)
    • 사진 및 문서

당사는 해당 요청 검토 후 보상 지급 여부를 결정합니다. 필요한 경우, 추가 문서 또는 증거가 요청될 수 있습니다.

보상 승인 시 승인 시기로부터 다음 청구 주기 내로 서비스 라이선스를 발행합니다.

요청서 상에 위에서 요구한 내용이 기재되어있지 않은 경우 해당 요청서는 유효하지 않습니다.

장애 발생 후 60일 지나서 접수된 요청서는 유효하지 않습니다.

SLA 제외 사항

아래에 명시되어 있는 상황은 SLA에서 보장하는 월 가동률에 영향을 주지 않습니다.

  • 자연 재해, 전쟁, 산업 사고, 법적 규제 등 당사의 합리적인 통제를 벗어난 요인으로 발생한 장애 (당사의 서비스가 클라우드 서비스에 의존하는 경우 클라우드 장애에도 해당이 됩니다)
  • 사용자의 작위 또는 부작위로 인한 장애
  • 사용자의 장비 및 소프트웨어 문제
  • 예정된 공지에 따른 작업 및 유지 보수에 의한 장애

정의

  • “장애” 란 서비스의 주요 기능이 사용 불가능 한 경우 입니다.
    • 주요 기능은 서비스 별로 상이합니다.
  • “다운 타임”이란 장애가 지속된 시간으로 분 단위로 측정합니다.
    • 1분 미만의 장애에 대해서는 측정 되지 않습니다.
  • "월 가동률”은 100%에서 서비스의 사용 시간 대비 다운 타임 (장애 시간)의 백분율을 차감하여 계산됩니다. Untitled
    • 제외사항으로 인해 직간접적으로 일어나는 장애는 포함되지 않습니다.
    • 당사의 타 서비스 장애로 인해 영향을 받을 경우, 장애가 난 서비스에 대해서만 계산이 적용된다.
profile
DevOps Engineer

0개의 댓글