본문 바로가기

성능·가용성·신뢰성·복구성·확장성

서비스가 한 달 대부분 접속 가능해도 결제 도중 자주 실패하면 믿기 어렵다. 반대로 오랫동안 고장 없이 일하다 한 번 장애가 났을 때 복구에 며칠이 걸릴 수도 있다. 운영 품질은 사용할 수 있었는지와 고장 없이 임무를 수행했는지를 구분해 측정해야 한다.

켜져 있는 것과 믿고 맡길 수 있는 것은 다르다

서비스가 한 달 내내 거의 접속 가능해도 결제 도중 자주 실패하면 믿고 쓰기 어렵다. 반대로 오랫동안 고장 없이 돌다가 한 번 장애가 났을 때 복구에 며칠이 걸릴 수도 있다. 그래서 운영 품질은 사용할 수 있었는지와 고장 없이 임무를 끝냈는지를 구분해 측정해야 한다.

먼저 되짚기: 성능축과 부분실패

지연은 한 작업에 걸리는 시간, 대역폭은 보낼 수 있는 용량, 처리량은 실제로 끝낸 작업량으로 서로 구분된다. 부분실패는 시스템 전체가 아니라 일부 노드나 통신만 실패할 수 있다는 뜻이다. 운영 품질은 정상 부하만 보지 않고 이런 실패가 얼마나 자주 나는지, 어떻게 복구되는지, 사용자 임무에 어떤 영향을 주는지까지 함께 본다.

복구·확장을 말하기 전에 성능과 가용·신뢰의 경계를 고정한다

성능은 정한 부하에서 응답시간과 처리량 목표를 만족하는 정도다. 가용성은 필요한 시점에 서비스를 제공할 수 있는 정도이고, 신뢰성은 정한 조건과 기간 동안 고장 없이 임무를 수행할 가능성이다. 그래서 짧은 장애가 자주 나면 월간 가용성은 높아도 긴 연속 임무의 신뢰성은 낮을 수 있다.

다시 연결하기: 실패의 빈도에서 복구·확장으로

가용성과 신뢰성은 고장과 임무 실패가 시간상 어떻게 나타나는지를 본다. 이와 별도로 복구성은 실패 뒤 얼마나 빨리 업무를 되찾는지를, 확장성은 부하가 늘 때 자원을 늘려 품질목표를 유지하는지를 본다.

성능·가용성·신뢰성·복구성·확장성

성능은 주어진 자원과 부하에서 응답시간과 처리량 목표를 만족하는 정도다. 가용성(availability)은 필요한 시점에 시스템이 요구된 서비스를 제공할 수 있는 정도이며, 신뢰성(reliability)은 정한 조건과 기간 동안 요구 기능을 고장 없이 수행할 가능성이다. 복구성은 실패 뒤 목표시간과 허용손실 안에서 서비스를 되찾는 능력이고, 확장성은 부하가 늘 때 자원을 늘려 목표 품질을 유지하는 능력이다. 가용성은 고장 빈도와 복구시간의 영향을 함께 받는 반면, 신뢰성은 연속 임무가 실패할 가능성에 초점을 둔다.

같은 장애를 두 관점으로 보기

짧은 장애가 자주 나더라도 자동 복구가 빠르면 월간 가용성은 높을 수 있다. 그러나 30분 동안 끊기지 않아야 하는 시험 제출 업무에서는 자주 끊긴다는 것 자체가 신뢰성 문제다. 사용자가 몰릴 때 자원을 늘려도 응답시간이 유지되는지는 성능과 확장성의 문제이고, 장애 뒤 언제까지 어떤 데이터 상태로 돌아오는지는 복구성의 문제다. 그래서 목표를 적을 때는 서비스 시간과 부하, 허용 중단, 임무 길이를 정하고, 복구시간과 데이터 손실 허용치도 함께 적는다.

백분율만 높이면 되는가

계획정지를 분모에서 임의로 빼거나, 핵심 기능 일부가 고장 났는데 접속만 되는 시간을 정상으로 세면 가용성이 부풀려진다. 월간 평균은 중요한 업무시간에 몰린 장애를 가릴 수 있다. 서버 수가 늘었다는 사실만으로 확장성과 복구성을 입증할 수도 없다. 그래서 측정 범위와 부하, 정상 판정조건, 관찰 기간을 명시하고, 실제 부하시험과 장애전환·복구시험으로 목표를 검증한다.

부하와 실패를 서로 다른 질문으로 읽는다

부하·실패에서 묻는 질문해당 속성
정상·혼잡 부하의 응답시간·처리량은?성능
자원 증가 뒤 같은 목표를 유지하는가?확장성
고장 중 필요한 시점에 서비스가 가능한가?가용성
정한 임무 동안 무고장으로 수행하는가?신뢰성
고장 뒤 언제·어떤 데이터로 되찾는가?복구성
빠른 복구도 중단된 임무를 지우지 않는다

상자 안의 대상과 화살표의 조건을 함께 읽으세요. 좁은 화면에서는 같은 관계를 세로로 재배치한 도식을 보여 줍니다.

빠른 복구도 중단된 임무를 지우지 않는다고장 뒤 5분 안에 재개해도 30분 연속 제출 임무는 중단될 수 있다. 월간 720시간 중 72분 중단은 약 99.83%로 99.9% 목표의 허용 43.2분을 넘고, 관측한 1000세션 중 8세션이 중단됐다면 무중단 완료비율은 992/1000=99.2%다. 가용성·임무 신뢰성·복구성은 각각 판단한다.fault → mission: 임무 실패fault → recovery: 복구시간recovery → available: 재개available → window: 시간 합계임무 실패복구시간재개시간 합계고장 발생: 짧은 장애가 반복됨고장 발생짧은 장애가 반복됨30분 임무 중단: 1000세션 중 8세션 중단 992/1000 = 99.2%30분 임무 중단1000세션 중 8세션 중단992/1000 = 99.2%자동 복구: 각 장애 뒤 5분 이내자동 복구각 장애 뒤 5분 이내서비스 다시 제공: 사용 가능 시간은 늘어남서비스 다시 제공사용 가능 시간은 늘어남720시간 창의 가용성: 중단 72분 = 1.2시간 약 99.83% < 목표 99.9%720시간 창의 가용성중단 72분 = 1.2시간약 99.83% < 목표 99.9%
빠른 복구도 중단된 임무를 지우지 않는다고장 뒤 5분 안에 재개해도 30분 연속 제출 임무는 중단될 수 있다. 월간 720시간 중 72분 중단은 약 99.83%로 99.9% 목표의 허용 43.2분을 넘고, 관측한 1000세션 중 8세션이 중단됐다면 무중단 완료비율은 992/1000=99.2%다. 가용성·임무 신뢰성·복구성은 각각 판단한다.fault → mission: 임무 실패fault → recovery: 복구시간recovery → available: 재개available → window: 시간 합계임무 실패복구시간재개시간 합계고장 발생: 짧은 장애가 반복됨고장 발생짧은 장애가 반복됨30분 임무 중단: 1000세션 중 8세션 중단 992/1000 = 99.2%30분 임무 중단1000세션 중 8세션중단992/1000 = 99.2%자동 복구: 각 장애 뒤 5분 이내자동 복구각 장애 뒤 5분 이내서비스 다시 제공: 사용 가능 시간은 늘어남서비스 다시 제공사용 가능 시간은늘어남720시간 창의 가용성: 중단 72분 = 1.2시간 약 99.83% < 목표 99.9%720시간 창의가용성중단 72분 = 1.2시간약 99.83% < 목표99.9%

고장 뒤 5분 안에 재개해도 30분 연속 제출 임무는 중단될 수 있다. 월간 720시간 중 72분 중단은 약 99.83%로 99.9% 목표의 허용 43.2분을 넘고, 관측한 1000세션 중 8세션이 중단됐다면 무중단 완료비율은 992/1000=99.2%다. 가용성·임무 신뢰성·복구성은 각각 판단한다.

그림은 같은 장애를 세 속성으로 나누어 판단한다. 월간 720시간 중 72분 중단은 가용성 약 99.83%로, 99.9% 목표가 허용하는 43.2분을 넘는다. 1000세션 중 8세션이 중단됐다면 30분 임무의 무중단 완료비율은 992/1000=99.2%다. 고장 뒤 5분 안에 재개했다는 복구성 결과는 이 두 판단과 따로 본다.

이처럼 같은 구조가 여러 속성에 영향을 주더라도 묻는 질문과 확인 방법은 다르다. 자동 재시작은 복구시간을 줄여 가용성을 높일 수 있지만, 사용자의 30분 제출 임무가 매번 중단된다면 신뢰성 문제는 그대로 남는다.

운영 품질 다섯 가지를 한 표로 구분한다

속성핵심 질문조건과 대표 척도대표 검증
성능현재 부하를 얼마나 빠르고 많이 처리하나사용자·요청 혼합, 응답시간 분포, 처리량부하·스트레스 시험
가용성필요한 시점에 서비스를 쓸 수 있나서비스 시간, 정상 판정 기준, 사용 가능 시간 비율장애 주입과 관찰
신뢰성정한 임무를 중단 없이 끝낼 수 있나임무 길이·조건, 실패 빈도·확률장시간·반복 임무 시험
복구성실패 뒤 얼마나 빨리 어느 상태로 돌아오나목표 복구시간, 허용 데이터 손실전환·복원·업무재개 시험
확장성부하 증가에 자원을 늘려 목표를 유지하나부하 배수, 자원 배수, 성능·비용 변화단계적 확장 시험

“서버가 살아 있다”를 정상으로 세면 핵심 거래가 실패하는 시간까지 가용시간에 잘못 넣을 수 있다. 그래서 업무별 정상 판정과 관찰기간, 중요시간대를 먼저 정의한다.

중복 자원은 품질을 자동으로 보장하지 않는다

복제와 자동전환은 구성요소 하나가 고장 나도 견디게 해 주지만, 데이터 동기화 지연과 전환 복잡도, 운영비용을 늘린다. 캐시는 응답속도를 높이지만 오래된 값을 내줄 수 있다. 자원을 급히 확장하면 비용이 폭증하거나 외부 의존성의 병목이 남을 수 있다. 목표를 정하지 않은 채 서버 수만 늘리면 어떤 속성이 얼마나 나아졌는지 판단할 수 없다.

그래서 선택은 업무 임무와 실패 피해에서 시작한다. 반드시 중단 없이 끝내야 할 거래와 허용 중단시간, 허용 데이터 손실을 정하고, 혼잡 부하와 비용 한도를 정한 뒤 구조 대안을 비교한다. 이후 부하·장애·복구를 함께 시험해 한 속성의 개선이 다른 속성을 나쁘게 만들지 않는지 확인한다.

높은 가용성 뒤의 낮은 임무 신뢰성

한 달 720시간 동안 총 중단이 72분, 즉 1.2시간이었다면 단순 시간 가용성은 (720 - 1.2) ÷ 720 × 100 = 약 99.83%다. 중단 72분을 60으로 나누어 1.2시간으로 맞춘 뒤, 정상시간 718.8시간을 전체 720시간으로 나눈 계산이다.

같은 720시간 창에서 교육용 가용성 목표를 99.9% 이상으로 정하면 중단 허용비율은 100%−99.9%=0.1%=0.001이다. 따라서 허용중단은 720×0.001=0.72시간이고, 분으로 바꾸면 0.72×60=43.2분이다. 관측한 72분은 43.2분을 넘으므로 이 목표에는 실패한다. 실제 서비스에서는 필요한 업무시간과 정상 서비스 판정기준을 먼저 정한 뒤 같은 방식으로 계산한다.

그런데 30분 동안 끊기지 않아야 하는 시험 제출 세션이 짧은 장애로 여덟 번 실패했다면, 월간 가용성만으로는 사용자 임무의 신뢰성을 설명할 수 없다. 각 장애를 5분 안에 자동 복구했다면 복구성은 빠르다고 볼 수 있지만, 그것도 별개의 판단이다. 또 동시 사용자 1천 명에서 응답의 95%가 2초 안에 끝났는데 2천 명에서 8초로 늘었다면 성능 목표와 확장성도 따로 확인해야 한다. 자원을 두 배 늘린 뒤 2천 명에서 다시 2초 목표를 만족하는지, 비용과 오류율은 어떻게 변했는지 단계적으로 시험한다. 즉 이 사례는 백분율 하나 대신 임무·부하·복구 상태를 함께 적어야 한다는 것을 보여 준다.

실패 8건만으로는 임무 성공 비율을 계산할 수 없다. 전체 수행 수와, 같은 30분 임무·부하·실패 정의가 필요하다. 교육용 가정을 하나 더 두어 “같은 조건에서 끝까지 관측한 1000세션 중 8세션이 한 번 이상 중단됐다”고 하면, 관측된 무중단 완료비율은 992/1000=99.2%다. 이때 한 세션에서 장애가 여러 번 났다고 실패 세션을 여러 개로 세지 않는다. 또 이 값은 표본에서 얻은 경험 비율이며, 앞으로의 30분 임무에 대한 참 신뢰도로 확정된 값은 아니다.

자체 10점 문제

성능, 가용성, 신뢰성, 복구성과 확장성을 비교하고 서비스 운영 품질 목표 및 검증방안을 설명하시오.

요구어는 비교와 설명이다. 업무시간·부하·임무길이·정상 판정·실패 피해를 먼저 고정하고, 부하·장시간 임무·장애전환·복원·확장 시험의 결과를 각 목표에 연결한다.

10점 풀이 방향과 모범답안 보기

답안 목차

  1. 다섯 운영 품질속성의 정의와 관계
  2. 부하·업무시간·임무·정상 판정·복구 상태 조건
  3. 속성별 목표와 응답시간·가용시간·실패·복구 척도
  4. 부하·장시간 임무·장애전환·복원·확장 시험
  5. 중복·일관성·복잡도·비용 상충과 구조 선택
  6. 평균·백분율·자원 수 오판과 운영 재측정

답안에 넣을 핵심 도식

업무 시나리오의 부하·임무·업무시간·실패피해·허용비용을 먼저 고정한다. 그다음 정상 부하에는 성능 목표를, 고장 중에는 가용·신뢰·복구 목표를, 부하 증가에는 확장성 목표를 연결한다. 부하·장시간 임무·전환·복원·확장 시험의 결과는 운영에서 다시 측정해 확인한다. 복구와 임무 중단 그림은 한 목표의 달성이 다른 목표의 실패를 상쇄하지 못하는 이유를 보여 준다.

즉 도식은 속성 이름에서 시작하지 않는다. 업무 시나리오의 조건과 피해에서 목표와 검증을 끌어낸다는 판단 순서를 보여 준다.

모범답안

성능은 정한 자원과 부하에서 응답시간·처리량 목표를 만족하는 정도다. 가용성은 필요한 시점에 요구 서비스를 제공할 수 있는 정도이고, 신뢰성은 정한 조건과 기간 동안 임무를 고장 없이 수행할 가능성이다. 복구성은 실패 뒤 목표시간과 허용손실 안에서 업무를 되찾는 능력이고, 확장성은 부하가 늘 때 자원을 늘려 목표 품질을 유지하는 능력이다.

목표에는 서비스 범위와 업무시간, 부하·요청 혼합, 임무 길이, 정상 판정조건, 허용 중단·손실, 비용이 들어가야 한다. 월간 가용성이 높아도 짧은 장애가 자주 나면 연속 임무의 신뢰성은 낮을 수 있다. 또 빠른 자동복구는 복구성을 개선하지만 중단 자체를 없애지는 않는다.

검증에서는 정상·혼잡 부하시험과 장시간 반복 임무 시험, 장애 주입과 자동전환 시험을 수행한다. 데이터 복원과 업무재개, 자원 증가별 단계적 확장시험도 함께 한다. 복제·캐시·자동확장은 품질을 높일 수 있지만 동기화와 복잡도, 비용을 늘리므로 대안과 잔여위험을 기록한다. 결국 단일 평균이나 월간 백분율, 서버 수가 아니라 사용자 임무와 실제 운영 결과로 다시 측정해야 한다.

자체 25점 문제

시험 제출 서비스의 성능·가용성·임무 신뢰성·복구성·확장성 목표를 분리하고 장애·부하 시나리오별 검증계획을 설계하시오.

요구어는 설계다. 월간 백분율 하나로 품질을 대표하지 않고, 정상·고장·복구·부하증가 상태별로 목표와 시험을 분리한다.

25점 풀이 방향과 모범답안 보기

25점 답안 목차

  1. 업무시간·임무·부하·실패피해
  2. 응답·처리량 성능목표
  3. 시간 가용성
  4. 연속 임무 신뢰성
  5. 복구시간·허용손실
  6. 단계적 확장성과 비용
  7. 장애주입·전환·복원·부하시험
  8. 운영 재측정·잔여위험

25점 답안 도식

정상 부하의 성능, 장애 중의 가용·신뢰, 장애 후의 복구, 부하 증가의 확장을 같은 업무 시나리오에서 각각 별도의 목표와 시험, 운영 재측정으로 관리한다. 질문별 비교와 인과 그림을 아래 수용표의 각 행에 연결한다.

25점 모범답안

먼저 시험 제출의 업무시간, 30분 연속 임무, 정상·혼잡 부하, 실패 피해와 허용비용을 정한다. 그다음 성능은 p95 응답과 처리량으로, 가용성은 업무시간 중 서비스 제공비율로, 신뢰성은 30분 임무를 고장 없이 완료할 가능성으로 나누어 정의한다.

복구성은 장애 뒤 목표 복구시간과 허용 데이터손실로 정의한다. 확장성은 사용자 수가 늘 때 자원을 늘려도 같은 응답·오류 목표를 유지하는지로 정의한다. 월간 가용성이 높아도 짧은 장애가 여러 시험 세션을 끊으면 임무 신뢰성은 낮을 수 있으므로, 이 둘은 따로 판정한다.

시험은 정상·혼잡 부하, 장시간 반복 임무, 장애주입과 자동전환, 데이터 복원과 업무재개, 자원 증가별 확장으로 나누어 수행한다. 복제·캐시·자동확장은 동기화와 복잡도, 비용을 늘릴 수 있다. 그래서 품질 이득과 잔여위험을 같이 기록하고, 실제 운영에서 같은 정의로 다시 측정한다.

자체 수용표는 다음처럼 분리한다. 모든 값은 이 문제에서 선택한 목표다.

속성목표·시험 기대값
성능동시 1000명에서 전체 조회의 95% 이상이 정상 응답 2초 이내
가용성720시간 기준≥99.9%, 허용중단≤0.72시간=43.2분
임무 신뢰성동일 30분 1000세션 중 무중단 완료≥995세션
복구성지정한 단일 장애에서 서비스 재개≤5분, 확정 제출 데이터 손실 0
확장성자원 2배·동시 2000명에서 성능/오류 목표 유지 및 비용 기록

관측한 중단시간 72분은 43.2분을 넘고, 추가 가정의 완료 992세션은 995세션에 못 미치므로 둘 다 실패다. “복구 5분 이내”를 달성했다고 해서 이 실패가 상쇄되지는 않는다. 무손실 복구는 실제 확정 제출과 복원 기록을 대조하는 별도 시험으로 확인한다.

출처와 적용 경계

성능·가용성·신뢰성·복구성·확장성은 안정된 품질속성 기초개념이다. 720시간·72분·30분 임무와 부하 수치는 자체 교육 사례이며 실제 SLA를 뜻하지 않는다.

자기교정과 조건 변경

잘못 쓴 답수정복습
가용성이 높으면 긴 임무 신뢰성도 높다중단 빈도·임무 길이를 별도로 본다사례
복구가 빠르면 장애가 없었던 것과 같다복구성은 중단 뒤 회복능력이며 중단 자체를 없애지 않는다정의
서버 수를 두 배로 늘리면 확장성은 증명된다부하 증가 뒤 같은 품질·비용 목표를 실측한다사례
평균 응답시간만 보면 성능을 알 수 있다분포·오류·요청혼합과 부하조건을 함께 본다답안
월간 백분율 하나로 운영품질을 대표한다업무임무·복구·부하 증가 상태를 나눠 본다도식

조건을 바꿔 보자. 업무시간이 24시간에서 12시간으로 바뀌면 가용성의 분모와 중요 임무 구간을 새 서비스 범위에 맞춘다. 복구시간 목표가 5분에서 1분으로 강화되면 탐지, 전환, 데이터복원 각 단계의 시간예산과 비용을 다시 설계한다.

사용자는 2배로 늘었는데 자원은 1.5배만 늘릴 수 있다면 성능목표와 비용, 기능 축소, 유입 통제를 함께 비교한다.

한 번에 되찾기

성능은 부하 아래의 응답과 처리, 가용성은 필요할 때 쓸 수 있는지, 신뢰성은 임무를 고장 없이 끝낼 가능성이다. 복구성은 실패 뒤 되찾는 능력, 확장성은 자원을 늘려 부하에 대응하는 능력이며, 각 목표에는 조건과 시험 결과를 붙인다.