infra
Platform

모듈 맵

가용성·용량 관리 — 약속한 만큼 떠 있고, 모자라기 전에 늘린다

0 / 67 완료

펼치기
0 / 67 완료0%

IT 서비스·프로젝트 관리 · 26 / 67

4단계 · 서비스 운영 통제SLA·변경·CMDB·연속성

가용성·용량 관리 — 약속한 만큼 떠 있고, 모자라기 전에 늘린다

서비스가 약속된 시간 동안 동작하도록 보장하는 가용성 관리(가용성 계산·단일장애점·이중화)와, 수요 증가를 예측해 자원이 모자라기 전에 대비하는 용량 관리를 SLA·비용 균형 관점에서 정리합니다

🚨INCIDENT ALERT
HIGH

같은 쇼핑몰, 두 번의 다운.

3월. 새벽 2시에 결제 서버가 멈췄습니다. 당직자가 알아채고 재시작하기까지 1시간. 다행히 한밤중이라 주문은 거의 없었지만, 사후 회의에서 누구도 "우리가 약속한 가용성이 얼마였는지" 답하지 못했습니다. 그냥 "어쩌다 한 번 그런 거죠"로 끝났습니다.

11월. 블랙프라이데이 정오, 평소 5배 트래픽이 몰리자 주문 서비스가 응답하지 않습니다. 서버는 살아 있는데 느린 겁니다. 부랴부랴 서버를 늘리려 했지만, 이미지 빌드·승인·반영에 40분이 걸렸고 그 사이 매출이 빠져나갔습니다. 회의에서 누군가 물었습니다. "이 정도 트래픽이 올 줄 정말 몰랐나요?"

두 사건의 공통점은 기술 실패가 아니라 약속과 예측의 부재입니다. 첫 번째는 "얼마나 떠 있기로 했는가"(가용성)를 정하지 않았고, 두 번째는 "얼마나 몰릴지"(용량)를 내다보지 않았습니다. 이 모듈은 이 두 가지 — 약속한 만큼 떠 있게 만드는 가용성 관리와, 모자라기 전에 늘리는 용량 관리 — 를 SLA와 비용의 균형 위에서 다룹니다.

이번 챕터에서 배울 것
  • 1가용성을 가동/(가동+중단) 비율로 계산하고, 99%·99.9%·99.95%가 월 단위로 얼마의 다운타임을 허용하는지 환산할 수 있다
  • 2단일장애점(SPOF)을 식별하고, 이중화(redundancy)·HA가 왜 SPOF 제거에서 출발하는지 설명할 수 있다
  • 3MTBF·MTTR과 가용성의 관계를 식으로 이해하고, 가용성을 올리는 두 갈래(덜 고장·빨리 복구)를 구분할 수 있다
  • 4수요 예측·성능 임계·확장(scale up/out)을 연결해 "모자라기 전에 늘리는" 용량 계획의 흐름을 설명할 수 있다
  • 5가용성 목표와 용량 계획이 모두 "비용 대비 약속"이라는 점을 이해하고, 산출물(가용성 목표표·용량 계획표)을 작성할 수 있다

가용성 — "얼마나 떠 있기로 했는가"를 숫자로

💡개념

가용성은 약속이고, 약속은 숫자다

서비스를 운영할 때 "우리 시스템은 안정적입니다"는 약속이 아닙니다. 측정할 수 없으면 지킬 수도, 어겼는지 따질 수도 없기 때문입니다. **가용성(Availability)**은 이 막연한 '안정'을 숫자로 바꾼 약속입니다.

가용성은 정해진 기간 동안 서비스가 정상 동작한 시간의 비율입니다.

TEXT
가용성(%) = 가동 시간 / (가동 시간 + 중단 시간) × 100

예를 들어 한 달(720시간) 중 누적 3.6시간이 중단되었다면, 가용성은 (720 − 3.6) / 720 = 0.995, 즉 99.5%입니다. 이 숫자가 곧 고객과의 약속, 즉 SLA(서비스 수준 합의)의 핵심 항목이 됩니다.

여기서 함정은 "9의 개수"가 늘어날수록 허용 다운타임이 급격히 줄어든다는 점입니다. 99%와 99.9%는 한 글자 차이로 보이지만, 허용되는 멈춤 시간은 10배 차이 납니다. 그래서 가용성 목표는 "높을수록 좋다"가 아니라 "이 서비스에 그만한 돈을 쓸 가치가 있는가"의 문제입니다.

💡개념

가용성 목표별 허용 다운타임 — 9 하나의 무게

아래는 같은 가용성 목표가 월(30일=43,200분)·연 단위로 얼마의 다운타임을 허용하는지 환산한 표입니다. 이 표는 가용성 관리의 산출물 1번입니다 — 목표를 정할 때 "그래서 한 달에 몇 분까지 멈춰도 되는가"를 모두가 같은 숫자로 보게 합니다.

가용성 목표허용 다운타임(월, 30일 기준)허용 다운타임(연)통상적 쓰임새
99%약 7시간 18분약 3.65일내부 도구, 비핵심 배치
99.9% (three nines)약 43분 49초약 8시간 46분일반 사내·고객 웹서비스
99.95%약 21분 54초약 4시간 23분결제·주문 등 매출 직결 서비스
99.99% (four nines)약 4분 23초약 52분 36초금융 코어, 미션 크리티컬
99.999% (five nines)약 26초약 5분 15초통신 교환기 등 극한 영역

읽는 법: 목표를 한 칸 올릴 때마다 허용 다운타임은 대략 10분의 1로 줄어들고, 그만큼 이중화·자동화·인력 비용은 급격히 커집니다. 99.99%를 약속한다는 것은 "한 달에 단 4분만 멈춘다"는 뜻이며, 사람이 알아채고 손으로 복구하는 방식으로는 사실상 불가능합니다(자동 페일오버가 필수). 그래서 가용성 목표는 기술 결정이 아니라 비용·매출을 따지는 경영 결정에 가깝습니다.

가용성 목표 99%부터 99.999%까지 월 허용 다운타임을 막대 길이로 비교하고, 하단에 scale up(수직)과 scale out(수평) 확장 방식의 SPOF 차이를 정리한 다이어그램확대

그림: "9 하나 더"는 허용 다운타임을 10분의 1로 줄이는 비싼 약속이고, scale out은 용량과 가용성(SPOF 완화)에 함께 기여한다.

가용성을 결정하는 것 — SPOF·이중화, 그리고 MTBF·MTTR

💡개념

단일장애점(SPOF) — 가용성의 천장을 정하는 한 점

가용성을 떨어뜨리는 가장 흔한 원인은 **단일장애점(SPOF, Single Point Of Failure)**입니다. SPOF는 "그 하나가 죽으면 서비스 전체가 죽는" 구성요소입니다.

웹 서버를 2대로 늘리고 로드밸런서를 붙여도, 그 뒤의 DB가 1대뿐이면 DB가 SPOF입니다. 앞단을 아무리 두껍게 만들어도 서비스 전체의 가용성은 그 DB 한 대의 가용성에 묶입니다. 사슬의 강도는 가장 약한 고리가 정하듯, 가용성의 천장은 가장 약한 SPOF가 정합니다.

SPOF를 없애는 방법이 **이중화(Redundancy)**입니다. 같은 역할을 하는 구성요소를 둘 이상 두어, 하나가 죽어도 다른 하나가 받아내게 만듭니다. 그리고 "장애를 감지해 자동으로 살아 있는 쪽으로 넘기는" 구조까지 갖춘 것을 **HA(High Availability, 고가용성)**라고 부릅니다.

  • 이중화: 같은 것을 둘 이상 둔다(DB 복제본, 전원 이중화).
  • 페일오버(Failover): 주(active)가 죽으면 예비(standby)로 자동 전환한다.
  • HA: 이중화 + 자동 감지·전환으로 "장애가 나도 사용자가 거의 모르게" 만든다.

핵심 순서는 항상 SPOF를 찾는 것이 먼저입니다. 어디가 약한 고리인지 모른 채 "서버를 더 사자"는 돈만 쓰고 가용성은 그대로일 수 있습니다.

단일장애점(SPOF)과 이중화/HA 비교 — 왼쪽은 로드밸런서 뒤에 Web 서버를 2대로 이중화해도 그 뒤 DB가 1대뿐이면 DB가 SPOF가 되어, 앞단을 아무리 두껍게 만들어도 DB 한 대가 죽으면 서비스 전체가 다운되는 구조. 오른쪽은 DB를 Primary/Standby로 이중화하고 주가 죽으면 예비로 자동 전환(페일오버)하는 HA 구조. 이중화(같은 역할을 둘 이상)→페일오버(주 죽으면 예비로 자동 전환)→HA(감지+전환으로 사용자가 거의 모르게)의 순서이며, 항상 SPOF(약한 고리) 찾기가 먼저다확대

💡개념

MTBF·MTTR — 가용성을 올리는 두 개의 손잡이

가용성은 두 개의 시간으로 분해됩니다.

  • MTBF(Mean Time Between Failures, 평균 무고장 시간): 한 번 고장 난 뒤 다음 고장까지 평균 얼마나 버티는가. 클수록 좋다(덜 고장 난다).
  • MTTR(Mean Time To Repair, 평균 복구 시간): 고장 났을 때 정상으로 되돌리기까지 평균 얼마나 걸리는가. 작을수록 좋다(빨리 복구한다).

둘의 관계로 가용성을 다시 쓸 수 있습니다.

TEXT
가용성 = MTBF / (MTBF + MTTR)

예: MTBF 200시간, MTTR 2시간이면 200/(200+2) ≈ 0.990, 즉 99%입니다. 여기서 MTTR을 2시간에서 0.2시간(12분)으로 줄이면 200/200.2 ≈ 0.999, 즉 99.9%로 올라갑니다. 똑같이 고장 나도 빨리 복구하면 가용성이 올라갑니다.

이것이 현장에서 중요한 이유: MTBF를 늘리는 일(더 안 고장 나게)은 부품·설계·테스트에 큰 투자가 들지만, MTTR을 줄이는 일(이중화·자동 페일오버·복구 자동화·런북)은 상대적으로 빠르게 효과를 냅니다. 그래서 가용성을 단기간에 끌어올려야 할 때, 운영자는 보통 MTTR을 먼저 공략합니다.

손잡이방향대표 수단특징
MTBF(무고장)키운다품질 좋은 부품, 부하 여유, 변경 통제효과 크지만 느리고 비쌈
MTTR(복구)줄인다이중화·자동 페일오버, 복구 자동화, 런북·모니터링빠르게 가용성 상승

MTBF·MTTR — 가용성을 올리는 두 개의 손잡이. 타임라인에서 정상 운영 구간(MTBF, 고장과 고장 사이 평균 시간, 클수록 좋음)과 복구 구간(MTTR, 복구까지 평균 시간, 작을수록 좋음)이 번갈아 나타난다. 가용성 = MTBF/(MTBF+MTTR)로, 예를 들어 MTBF 200h·MTTR 2h면 약 99.0%지만 MTTR을 0.2h(12분)로 줄이면 약 99.9%로 오른다. MTBF를 키우는 일(품질 좋은 부품·부하 여유·변경 통제)은 효과는 크지만 느리고 비싸고, MTTR을 줄이는 일(이중화·자동 페일오버·복구 자동화·런북)은 빠르게 가용성을 올리므로, 단기간에 가용성을 끌어올려야 하면 보통 MTTR을 먼저 공략한다확대

그림: 가용성 = MTBF/(MTBF+MTTR) — MTBF는 키우고 MTTR은 줄인다. 단기에는 MTTR(빨리 복구)을 먼저 공략한다.

가용성 문제, 어디를 손봐야 하는가
특정 한 대가 죽으면 서비스 전체가 멈춘다SPOF 제거 — 이중화그 지점을 둘 이상으로(복제본+페일오버). 더 큰 1대는 답이 아님
장애 빈도는 낮은데, 한 번 나면 복구가 오래 걸린다MTTR 단축자동 페일오버·복구 자동화·런북·알람으로 감지~복구 시간 압축
자잘한 고장이 너무 잦다MTBF 개선근본원인(문제관리)·부하 여유·변경 통제로 고장 자체를 줄임
가용성 목표를 99.99%로 올려야 한다사람 손 → 자동화 전환월 4분 다운타임은 수동 복구로 불가. 자동 감지·전환 필수
가용성은 충분한데 트래픽 몰릴 때 느리다가용성 아닌 용량 문제SPOF가 아니라 자원 부족 → 용량 관리로(scale up/out)

용량 관리 — "모자라기 전에 늘린다"

💡개념

용량 관리는 미래의 수요에 자원을 맞추는 일

가용성이 "약속한 만큼 떠 있는가"라면, **용량 관리(Capacity Management)**는 "수요만큼 받아낼 자원이 있는가"입니다. 서비스가 살아 있어도(가용성 OK) 트래픽이 자원을 넘어서면 느려지거나 거부되고, 결국 사용자에게는 장애처럼 보입니다. 블랙프라이데이에 멈춘 주문 서비스가 그 예입니다.

용량 관리의 목표는 한 문장입니다: 자원이 모자라기 전에, 그러나 너무 일찍 과하게 사지는 않으면서, 수요에 맞춰 자원을 준비한다. 모자라면 장애·매출 손실, 너무 많으면 놀고 있는 자원에 대한 낭비 — 그 사이의 균형을 잡는 일입니다.

흐름은 보통 이렇게 돕니다.

  • 수요 예측(Demand): 비즈니스 이벤트(세일·프로모션·신규 고객 유입)와 추세를 근거로 "앞으로 얼마나 쓸지"를 내다본다.
  • 성능 임계(Threshold): "이 수치를 넘으면 위험"이라는 선을 미리 정한다(예: CPU 70%, 응답시간 500ms). 100%에서 터지기 전에, 여유를 둔 선에서 신호를 받는다.
  • 확장 결정(Scaling): 임계에 다가가면 자원을 늘린다 — 위로(scale up) 또는 옆으로(scale out).
  • 비용 균형(Cost): 늘리는 데는 돈이 든다. 항상 과하게 두는 대신, 예측·자동 확장으로 "필요할 때 필요한 만큼"에 가깝게 맞춘다.
💡개념

scale up vs scale out — 위로 키울까, 옆으로 늘릴까

자원을 늘리는 방법은 크게 두 가지이고, 둘은 성격이 다릅니다.

구분scale up(수직 확장)scale out(수평 확장)
방식한 대의 사양을 키움(CPU·메모리↑)같은 역할의 대수를 늘림
SPOF여전히 1대 → SPOF 남음여러 대 → SPOF 완화
한계한 대의 물리 한계까지만사실상 무제한(설계만 받쳐주면)
난이도단순(끄고 사양 변경)로드밸런싱·상태 공유 설계 필요
잘 맞는 곳DB처럼 분산이 어려운 단일 자원웹·API처럼 무상태(stateless) 서버

중요한 연결: scale out은 용량을 늘리면서 동시에 가용성(SPOF 완화)에도 기여합니다. 그래서 가용성과 용량은 따로 노는 주제가 아니라, 같은 아키텍처 결정의 두 얼굴인 경우가 많습니다. 다만 scale out은 "여러 대가 같은 데이터를 일관되게 보게" 만드는 설계가 따라야 하고, scale up은 단순하지만 한 대의 천장과 SPOF가 남습니다. 용량 계획은 비용·아키텍처 제약에 맞춰 둘을 섞습니다.

scale up(수직 확장)과 scale out(수평 확장) 비교 — scale up은 한 대의 사양을 키우는(2 core→16 core, CPU·메모리↑) 방식으로 여전히 1대라 SPOF가 남고 한 대의 물리 한계까지만 가능하지만 단순하며 DB처럼 분산이 어려운 단일 자원에 맞다. scale out은 같은 역할의 서버 대수를 늘리는 방식으로 여러 대라 SPOF가 완화되고 사실상 무제한 확장이 가능하지만 로드밸런싱·상태 공유 설계가 필요하며 웹·API 같은 무상태(stateless) 서버에 맞다. scale out은 용량을 늘리면서 동시에 가용성(SPOF 완화)에도 기여하므로 가용성과 용량은 같은 아키텍처 결정의 두 얼굴이며, 용량 계획은 비용·제약에 맞춰 둘을 섞는다확대

직접 해보기 — 가용성 환산과 용량 계획표 작성

1가용성 계산하고 목표와 비교하기

종이나 메모장에 직접 계산해 보세요. 계산기만 있으면 됩니다.

TEXT
[상황]
- 주문 서비스의 SLA 목표: 월 가용성 99.9%
- 지난달 실측: 한 번 장애, MTBF 360시간, MTTR 3시간
- 한 달 = 720시간 = 43,200분

[풀 것]
1. 실측 가용성 = 360 / (360 + 3) = ? (%로)
2. 99.9% 목표의 월 허용 다운타임 = 43,200 × 0.001 = ? 분
3. 이번 달 실제 다운타임(MTTR 3시간 = 180분)은 목표를 지켰는가?
4. 지키지 못했다면, MTTR을 몇 분까지 줄였어야 했는가?

힌트: 목표 다운타임(분)을 먼저 구하고, 실제 다운타임과 비교하세요. SLA를 어겼다면 "덜 고장(MTBF↑)"보다 "빨리 복구(MTTR↓)"가 더 빠른 처방이라는 점을 떠올리면 됩니다.

가용성 = MTBF / (MTBF + MTTR)
2용량 계획표 한 장 채우기

다음 항목으로 주문 서비스의 **용량 계획표(산출물 2번)**를 작성해 보세요. 빈칸을 자기 가정으로 채우면 됩니다.

TEXT
[용량 계획 항목]
- 대상 자원        : 예) 주문 API 서버
- 현재 용량        : 예) 4대 (각 CPU 4코어)
- 측정 지표        : 예) CPU 사용률, 평균 응답시간
- 성능 임계(경고/위험): 예) CPU 70% / 85%
- 수요 예측 근거    : 예) 다음 분기 가입자 +30%, 블프 정오 평소 5배
- 확장 방식        : 예) scale out (무상태 서버라 대수 증설)
- 확장 트리거      : 예) 5분 평균 CPU 70% 초과 시 +2대
- 예상 비용        : 예) 1대당 월 X만 원 × 증설 대수
- 검토 주기        : 예) 분기 1회 + 대형 이벤트 직전
수요 예측 → 임계 → 확장 방식 → 비용
🔍실행 후 확인할 것
  • 실측 가용성 = 360/363 ≈ 0.99174 → 약 99.17%. 목표 99.9%에 미달했다
  • 99.9%의 월 허용 다운타임 = 43,200 × 0.001 = 43.2분. 실제는 180분이었으니 약 4배 초과 — SLA 위반
  • SLA를 지키려면 한 번 장애 시 MTTR을 약 43분 이내로 줄였어야 한다(자동 페일오버·복구 자동화가 답). 고장 횟수를 줄이는 것보다 복구 시간 단축이 더 직접적인 처방
  • 용량 계획표의 핵심은 "임계(70/85%)를 100%보다 낮게 잡아 여유를 두는 것" — 터지기 전에 신호를 받아야 모자라기 전에 늘릴 수 있다
  • 확장 트리거를 미리 정해두면, 블랙프라이데이에 "지금 늘릴까 말까"를 회의로 결정하지 않고 자동/사전 합의된 기준으로 움직일 수 있다
  • 핵심 감각: 가용성은 "약속한 시간만큼 떠 있게", 용량은 "약속한 부하만큼 받아내게" — 둘 다 사후 대응이 아니라 사전 약속·예측의 문제다

현장에서 자주 보는 함정

증상: (1) "가용성을 올리겠다"며 웹 서버를 2배로 늘렸는데 SLA 위반이 계속된다. (2) 평소 CPU는 30%로 한가한데, 프로모션만 시작하면 응답이 느려지고 타임아웃이 난다.

원인:

  • (1) 가용성 문제와 용량 문제를 혼동했습니다. 웹 서버를 늘려도 그 뒤 DB가 SPOF로 남아 있으면 가용성의 천장은 그대로입니다. 늘려야 할 곳은 약한 고리(SPOF)이지, 이미 충분한 앞단이 아닙니다.
  • (2) 평균값에 속았습니다. **평소 평균 CPU 30%**는 "여유 있다"가 아니라 "피크를 못 보고 있다"는 신호일 수 있습니다. 이벤트 정오의 순간 피크는 100%를 치고 있는데, 하루 평균으로 뭉개면 안 보입니다. 용량은 평균이 아니라 피크와 추세로 계획해야 합니다.

해결 방향(이 트랙·인접 모듈에서 깊어짐):

  • 먼저 SPOF를 그려서 찾는다 — 구성도에서 "이게 죽으면 다 죽나?"를 지점마다 묻는다. 가용성은 그 약한 고리부터.
  • 가용성이 부족하면 이중화·MTTR 단축, 용량이 부족하면 scale up/out — 둘을 먼저 구분한다.
  • 용량은 피크·추세 기반으로 예측하고, 임계(70/85%)를 여유 있게 잡아 모자라기 전에 신호를 받는다.
  • 확장 트리거와 비용을 계획표로 미리 합의해, 이벤트 당일 즉흥 결정에 의존하지 않는다.

심화 — 가용성과 용량을 무너뜨리는 것은 조달과 감사다

💡개념

심화: 장부상 이중화와 예산의 시간 — 계산이 맞아도 현실이 진다

가용성 계산과 용량 계획을 배우고 나면 숫자는 다룰 수 있게 됩니다. 그런데 한국 기업·공공 현장에서 이 두 관리가 실패하는 지점은 대부분 수식 바깥에 있습니다 — 조직의 돈이 움직이는 속도와, 지표를 읽는 사람의 인센티브입니다.

  • 장부상 이중화: 구성도에는 Active-Standby가 그려져 있고 감리 산출물에도 "HA 구성 완료"가 찍혀 있는데, 도입 후 페일오버를 한 번도 실제로 전환해 본 적 없는 시스템이 현장에 많습니다. standby는 복제가 끊긴 채 몇 달을 방치되기도 합니다 — 살아 있는지 확인하는 사람이 없고, 확인하다 사고 나면 책임만 생기기 때문입니다. 이중화의 실효성은 구성도가 아니라 마지막 전환 테스트 일자로 증명됩니다. "HA 있습니다"라는 보고에는 "마지막으로 넘겨 본 게 언제입니까"가 정답 질문입니다.
  • 증설의 리드타임은 기술이 아니라 조달: 온프레미스 중심의 공공·금융 환경에서 서버 증설은 품의→예산 확보→발주→납품→검수→반입 절차로 3~6개월이 걸립니다. 용량 계획의 "적정 시점"이란 결국 이 리드타임을 거꾸로 계산한 시점입니다 — 피크 6개월 전에 품의가 올라가 있어야 합니다. 클라우드로 옮기면 기술 리드타임은 분 단위가 되지만, 비용 승인 절차가 그대로면 auto-scaling을 꺼 둔 클라우드라는 기묘한 상태가 됩니다. 실제로 "예산 초과가 무서워 자동 확장 금지" 정책을 가진 조직이 드물지 않습니다.
  • 유휴율 감사의 압력: 감사·경영진이 "평균 CPU 사용률 20%면 과투자"라고 지적하는 순간, 조직은 피크 대비 여유를 낭비로 재분류하게 됩니다. 평균 사용률은 용량의 건전성 지표가 아니라는 것을 아는 관리자는, 심의 자료를 평균이 아니라 피크 사용률·피크 시점·초과 시 매출 영향으로 구성해 여유 용량을 방어합니다. 여유를 지키는 것도 용량 관리의 일입니다.
  • 규모·성숙도별 차이: 트래픽 변동이 크고 무상태 설계가 된 서비스 조직은 자동 확장이 답이지만, 연 단위 예산으로 도는 온프레미스 조직에서는 "정확한 예측 + 조기 품의"가 유일한 무기입니다. 같은 용량 관리라도 조직의 돈이 흐르는 주기에 따라 전혀 다른 기술이 됩니다.

상황: SM 운영팀이 연초 용량 계획에서 "4분기 대형 프로모션 트래픽 피크 대비 API 서버 8대 증설(예산 1.2억)"을 품의했습니다. 발주사 예산 심의 회의록에는 이렇게 남았습니다 — "현재 평균 CPU 사용률 23%로 기존 자원 여유 충분. 증설 사유 불인정, 4분기 실적 확인 후 재검토." 11월 프로모션 정오, 트래픽이 평시 6배로 치솟아 주문 서비스가 90분간 사실상 중단됐고, 추정 매출 손실은 반려된 증설 예산의 몇 배였습니다. 장애 다음 날 올라간 긴급 증설 품의는 이틀 만에 결재가 났습니다.

원인: 두 개의 실패가 겹쳤습니다. 첫째, 심의 기준이 평균 사용률이었습니다 — 평시 23%는 피크 대비 여유와 무관한 숫자인데, 재무 관점에서는 "놀고 있는 자원"으로 읽힙니다. 둘째, 운영팀의 품의서가 그 오독을 방어하지 못했습니다. 계획서에 피크 예측 근거(작년 동일 프로모션 5.2배, 올해 마케팅 예산 1.5배)와 **미증설 시 시나리오(예상 중단 시간 × 분당 매출)**가 없었고, "8대 전부 아니면 0대"라는 단일안이라 심의자가 고를 중간 선택지도 없었습니다. 조직은 장애가 눈에 보인 뒤에야 돈을 움직였습니다 — 예방 예산은 심의를 거치고, 사후 수습 예산은 결재만 거칩니다.

진단: 반려 회의록과 장애 타임라인을 나란히 놓으면 구조가 보입니다. 심의 근거(평균 23%)와 장애 원인(피크 600%)이 서로 다른 지표를 보고 있었다는 것, 그리고 반려에서 장애까지 9개월 동안 아무도 재상정하지 않았다는 것 — 즉 반려가 "보류"가 아니라 "종결"로 처리된 프로세스 공백이 있었습니다.

해결: 사후 회고에서 용량 품의의 형식 자체를 바꿨습니다. ① 심의 자료의 표준 지표를 평균 사용률에서 피크 사용률·피크 배수·초과 시 영향액으로 교체하고 발주사와 합의, ② 증설안을 전량/부분/임차(단기 클라우드) 3안 비교로 제출해 심의자가 0이 아닌 선택을 하게 함, ③ 반려된 용량 품의는 분기마다 최신 추세 데이터로 자동 재상정하는 규칙을 운영 협약에 추가, ④ 프로모션 일정이 확정되면 마케팅→운영으로 수요 사전 통보를 의무화(이벤트·모니터링 관리 임계 검토와 연동). 다음 해 같은 프로모션은 사전 증설 4대 + 단기 임차로 무중단 통과했습니다. 용량 관리의 절반은 예측이고, 나머지 절반은 그 예측을 결재 문서로 이기게 만드는 일입니다.

💼
실무 맥락
현업 패턴

가용성·용량은 운영(SM) 담당자와 프로젝트·서비스 관리자가 발주사·협력사와 가장 자주 부딪히는 숫자입니다. SLA 협상 테이블에서 "99.9%로 합시다"는 한마디가 곧 "월 43분까지만 멈출 수 있고, 그걸 지키려면 이중화·자동화에 이만큼 든다"는 비용 약속이라는 것을 아는 관리자와, 분위기로 "최대한 안정적으로"라고 적는 관리자는 결과가 완전히 다릅니다.

이런 자리에서 당신은 직접 서버를 이중화하기보다, "이 서비스는 가용성 몇 %가 적정한가, 그 비용은 매출에 비해 타당한가, 다가올 이벤트에 용량은 충분한가" 를 판단하고 협력사에 요구사항으로 내립니다. 협력사 엔지니어가 "서버 늘리면 됩니다"라고 할 때, "그건 용량 문제 답이지 SPOF는 그대로 아닌가요?"라고 되물을 수 있는 관리자는 잘못된 보고에 속지 않습니다.

그래서 이 모듈의 산출물 두 가지 — 가용성 목표·허용 다운타임 표용량 계획표 — 는 단순 연습이 아니라, 실무에서 SLA 합의서·운영 이관 문서·증설 품의에 그대로 들어가는 양식입니다. 숫자로 약속하고 숫자로 검증하는 습관이 관리 직무의 신뢰를 만듭니다.


실전 랩으로 손에 익히기: 가용성·용량 관리 실습 — 가용성 지표·SLA 연계, 용량 계획, 병목·SPOF 대응을 설계합니다.

관련 모듈로 더 깊이:

다음 모듈에서는 평상시의 가용성·용량을 넘어, 재해처럼 큰 사고가 났을 때도 서비스를 이어가기 위한 서비스 연속성·DR(재해복구) — RTO·RPO와 백업·복구 전략 — 를 다룹니다.

지식 확인

퀴즈 — 8문제

Q1

월 가용성 목표를 99.9%로 약속했다. 한 달(30일 기준)에 '허용되는 누적 다운타임'에 가장 가까운 값은?

Q2

어떤 서비스의 평균 무고장 시간(MTBF)이 200시간, 평균 복구 시간(MTTR)이 2시간이다. 이 서비스의 가용성에 가장 가까운 값은?

Q3

웹 서버를 2대로 늘리고 로드밸런서를 붙였는데도, 그 뒤의 DB가 1대뿐이라 DB가 죽으면 서비스 전체가 멈춘다. 이 DB는 무엇이라고 부르며, 가장 알맞은 대응은?

Q4

트래픽이 늘어나 자원이 부족해질 때, 'scale out'에 해당하는 것은?

Q5

가용성을 끌어올리는 '두 손잡이'가 MTBF와 MTTR이라고 한다. 가용성 = MTBF / (MTBF + MTTR) 식에서 각각을 어떻게 다뤄야 하나?

Q6

용량 관리(Capacity Management)를 '자원이 부족해진 뒤 대응'이 아니라 '미래 수요에 미리 맞추는' 선제 활동으로 보는 이유는?

Q7

[심화] 구성도에는 Active-Standby 이중화가 그려져 있고 감리 산출물에도 'HA 구성 완료'로 적혀 있다. 이 이중화가 실제로 작동한다고 믿을 수 있는 가장 확실한 근거는?

Q8

[심화] 연초 용량 계획서의 '피크 대비 8대 증설'이 '평균 CPU 사용률 23%'를 근거로 반려됐다가, 4분기 프로모션에 서비스가 90분 멈췄다. 같은 실패를 되풀이하지 않기 위한 가장 근본적인 대응은?

0 / 8 답변

🧪 실습으로 확인하기

가용성·용량 관리 — 약속한 만큼 떠 있고, 모자라기 전에 늘린다

중급

가용성을 가동/(가동+중단)·MTBF/MTTR로 계산해 SLA 목표와 비용에 연결하고, 수요를 피크·추세로 예측해 임계·확장 트리거로 장애 전에 증설하며, SPOF를 찾아 이중화로 가용성 천장을 올리면서 가용성 문제와 용량 문제(scale up/out)를 구분하는 판단형 실습이다.

55📋 3단계💻 직접 환경
실습 시작하기 →

학습 마무리

내 말로 정리하고 다음으로

핵심 판단 기준과 현업 적용 예시를 짧게 적어두면 복습할 때 바로 맥락을 되살릴 수 있습니다.

이것도 배워보세요