복합 SLA란?
요즘 시스템은 로드 밸런서, 데이터베이스, 외부 API, CDN 등 수많은 구성 요소가 맞물려 돌아갑니다. 각 요소는 99.9%처럼 가동률(%)로 표현되는 자체 SLA(서비스 수준 협약)를 가지고 있죠. 복합(통합) SLA는 이 요소들을 모두 연결했을 때 시스템 전체가 실제로 보장하는 가용성을 말합니다. 이 계산기는 개별 구성 요소의 가동률을 하나의 엔드투엔드 가용성 수치로 합산하고, 이를 일·월·연 단위의 구체적인 다운타임으로 환산해 줍니다.
직렬 vs. 병렬 구조
구성 요소를 어떻게 연결하느냐에 따라 결과는 크게 달라집니다. 직렬(의존 체인) 구조에서는 요청이 성공하려면 모든 요소가 정상이어야 하므로 가용률을 서로 곱하게 됩니다. 직렬 가용성은 $$A_{\text{total}} = \text{A}_1 \times \text{A}_2 \times \text{A}_3 \times \text{A}_4$$ 따라서 전체 값은 항상 가장 약한 고리보다 낮아집니다. 반면 병렬(이중화) 구조에서는 경로 중 하나만 살아 있어도 시스템이 동작하므로 장애 확률끼리 곱합니다. 병렬 가용성은 $$A_{\text{total}} = 1 - \left(1-\text{A}_1\right)\left(1-\text{A}_2\right)\left(1-\text{A}_3\right)\left(1-\text{A}_4\right)$$ 이렇게 이중화를 적용하면 어떤 단일 요소보다도 가용성이 높아집니다.
사용 방법
먼저 구조(직렬/병렬)를 선택한 뒤 각 구성 요소의 가동률(%)을 입력하세요(예: 99.95). 최대 4개까지 입력할 수 있으며, 더 적은 수만 합산하려면 선택 입력란을 비워 두면 됩니다. 결과에는 복합 가용성과 함께 주요 기간별 예상 다운타임이 표시됩니다.
계산 예시
앱이 각각 99.9%인 직렬 구성 요소 3개에 의존한다고 가정해 봅시다. 소수로 바꿔 계산하면 $$0.999 \times 0.999 \times 0.999 = 0.997002999$$ 즉 99.7003%가 됩니다. 이는 약 0.2997%의 다운타임으로, 연간 약 26.26시간에 해당합니다. "쓰리 나인(99.9%)" 서비스를 직렬로 세 개 쌓아도 전체 결과는 "투 나인(99%)" 수준에 그치는 셈이죠. 이중화가 왜 중요한지 분명하게 보여주는 대목입니다.
자주 묻는 질문
직렬 결과가 왜 입력값보다 낮나요? 의존하는 요소가 하나 늘어날 때마다 장애 가능성이 더해지기 때문입니다. 1보다 작은 값을 곱하면 전체 값은 항상 줄어듭니다.
병렬 구성이 정말 그렇게 가용성을 높여 주나요? 네. 장애가 서로 완전히 독립적이라는 전제하에, 독립된 99% 경로 두 개는 \(1 - (0.01 \times 0.01) = 99.99\%\)가 됩니다.
99.9%는 시간으로 따지면 얼마인가요? 연간 약 8.77시간, 월간으로는 약 43.8분의 다운타임에 해당합니다.