가용성·SLA 다운타임 계산기 쉽게 이해하기 — 개념과 원리
서비스 수준 협약(SLA)이나 내부 신뢰성 목표는 보통 99.9%(이른바 '쓰리 나인')처럼 가용성 백분율로 표시합니다. 숫자로는 거의 같아 보여도 허용되는 장애 시간은 크게 다릅니다. 이 계산기는 가용성 수치를 연·월·주·일 단위의 최대 허용 다운타임으로 바꾸어 줍니다.
계산 방법
허용 다운타임 = 기간 길이 × (1 − 가용성 ÷ 100)
- 1년은 365.25일 × 24 × 60 = 525,960분입니다(윤년을 평균한 값).
- 1개월은 평균 길이인 30.44일(365.25 ÷ 12)로 계산합니다.
- 1주는 7일, 1일은 1,440분입니다.
60분 이상이면 시간과 분으로, 그보다 작으면 소수 둘째 자리까지 분으로 표시합니다.
원리
가용성은 서비스를 쓸 수 있는 시간의 비율이므로, 그 나머지인 1 − A가 멈춰도 되는 시간의 비율입니다. 이 비율에 어떤 기간을 곱하면 그 기간의 다운타임 한도가 됩니다. 9가 하나 늘 때마다 한도는 10분의 1로 줄어듭니다. 99%는 1년에 약 3.65일, 99.9%는 약 8.77시간, 99.99%는 약 52.6분, 99.999%는 약 5.26분입니다. 이 한도를 오류 예산이라고 부르며, 목표를 어기기 전까지 배포·점검·장애에 쓸 수 있는 시간으로 관리합니다.
예제 풀이
- 입력값은 가용성 99.9%이므로 1 − 0.999 = 0.001입니다.
- 1년은 525,960 × 0.001 = 525.96분 = 8시간 45.96분이며 8 h 46 min으로 표시됩니다.
- 1개월은 30.44 × 1,440 × 0.001 = 43.83분입니다.
- 1주는 10,080 × 0.001 = 10.08분입니다.
- 1일은 1,440 × 0.001 = 1.44분입니다.
결과 해석
흔히 겪는 장애를 월 한도 안에 발견하고 원인을 찾아 복구할 수 있는지 따져 보십시오. 한 달 43분이라면 복구가 한 번만 늦어져도 예산을 다 쓸 수 있습니다. 서로 의존하는 구성 요소가 직렬로 연결되면 가용성을 곱합니다. 99.9%짜리 두 개가 이어지면 전체는 약 99.8%가 됩니다. 반대로 병렬 이중화는 1 − 0.001² = 99.9999%까지 올라가지만, 이는 두 장애가 완전히 독립적일 때의 이야기이며 실제로는 그렇지 않은 경우가 많습니다.
흔한 실수
- 모든 장애가 SLA에 포함된다고 생각하는 경우(계획 점검을 제외하거나 월 단위로만 따지는 계약이 많습니다)
- 의존하는 외부 서비스보다 높은 가용성을 약속하는 경우
- 응답 지연이나 일부 사용자 오류 같은 부분 장애를 무시하는 경우
자주 묻는 질문
99.99%는 1년에 얼마나 멈출 수 있나요?
1년에 약 52.6분, 평균적인 한 달에 약 4.4분입니다.
월 단위와 연 단위 중 어느 쪽으로 관리하는 것이 좋나요?
월 단위는 문제를 빨리 드러내지만, 긴 장애 한 번으로 그달 목표를 어길 수 있습니다. 연 단위는 그 반대입니다.
SLA, SLO, SLI는 어떻게 다른가요?
SLI는 측정 지표, SLO는 내부 목표, SLA는 위약 조건이 붙는 외부 계약이며, SLA는 보통 SLO보다 느슨하게 정합니다.
출처: B. Beyer, C. Jones, J. Petoff, N. R. Murphy 편, Site Reliability Engineering, O'Reilly Media, 2016