본문 바로가기
금융을 알고싶은 반디 금융을 알고싶은 반디
" 좋은 일만 가득하세요~ "

Ⅱ-10. 컴퓨터 시스템 복원력(Resilience) 분석

읽는 시간 약 14분

컴퓨터 시스템의 복원력(Resilience)은 장애가 발생하지 않는 상태만을 의미하지 않는다.

장애나 성능 저하가 발생하더라도 서비스의 기능을 얼마나 유지하고, 장애의 영향을 얼마나 제한하며, 변화된 상황에 적응하고, 정상적인 운영 상태로 회복할 수 있는가를 종합적으로 평가하는 개념이다.

따라서 복원력 분석은 단순히 고장률이나 가용도를 확인하는 것에서 끝나지 않는다.

장애가 발생했을 때 시스템이 어떻게 버티고, 어떻게 영향을 제한하며, 어떻게 회복하는가를 전체 흐름으로 확인해야 한다.

1. 컴퓨터 시스템 복원력의 개념

복원력은 장애나 외부 충격이 발생했을 때 시스템이 기능을 유지하고, 장애의 영향을 제한하며, 필요한 경우 변화된 환경에 적응하면서 정상적인 운영 상태로 회복하는 능력을 의미한다.

예를 들어 서버 한 대가 장애를 일으켰을 때 다른 서버가 서비스를 계속 제공하고, 장애 서버를 복구한 후 서비스가 정상 상태로 돌아갈 수 있다면 복원력의 여러 요소가 작동한 것으로 볼 수 있다.

중요한 것은 장애가 발생했는가가 아니라 장애가 발생한 이후 시스템이 어떤 상태를 유지했는가이다.

2. 신뢰성과 복원력의 차이

신뢰성은 정해진 조건과 시간 동안 시스템이 요구된 기능을 정상적으로 수행할 가능성에 초점을 둔다.

반면 복원력은 장애가 발생한 이후에도 시스템이 기능을 유지하고, 영향을 제한하고, 필요한 경우 운영방식을 조정하면서 회복하는 과정까지 포함한다.

따라서 신뢰성과 복원력은 서로 대체되는 개념이 아니다.

  • 신뢰성 → 장애가 발생할 가능성을 낮추는 관점
  • 복원력 → 장애가 발생해도 시스템이 기능을 유지하고 회복하는 관점

신뢰성이 높은 시스템이라도 장애 이후 복구 구조가 부족하면 복원력이 충분하다고 판단하기 어렵다.

3. 복원력은 하나의 기능이 아니라 연결된 능력이다

복원력은 특정 장비 하나의 성능으로 결정되지 않는다.

다음 요소들이 서로 연결되어 작동해야 한다.

  • 장애 예방
  • 장애 탐지
  • 장애 대응
  • 장애 격리
  • 서비스 연속성
  • 장애조치
  • 부하 조정
  • 복구
  • 복구 후 정상화
  • 재발 방지

따라서 복원력 분석에서는 각각의 기능이 존재하는지뿐만 아니라 앞 단계의 기능이 다음 단계로 정상적으로 연결되는지를 확인해야 한다.

4. 복원력은 장애 발생 전부터 시작된다

복원력은 장애가 발생한 이후에만 평가하는 것이 아니다.

장애 발생 가능성을 사전에 확인하고 시스템의 취약한 부분을 줄이는 것도 복원력 확보에 포함된다.

대표적인 활동은 다음과 같다.

  • SPOF 분석
  • 공통원인고장 분석
  • 이중화 구성
  • 백업 구성
  • DR 구성
  • 용량 관리
  • 예방적 유지관리
  • 장애 시나리오 시험

여기서 중요한 점은 단순히 이러한 기능을 갖추고 있는지를 보는 것이 아니다.

실제 장애 상황에서 해당 구조가 기능할 수 있는가까지 확인해야 한다.

5. 장애 발생 시 시스템이 얼마나 버티는가

장애가 실제로 발생하면 시스템은 즉시 정상 상태로 돌아가지 못할 수도 있다.

이때 복원력의 중요한 판단 기준은 장애가 발생한 동안에도 핵심 서비스가 얼마나 유지되는가이다.

확인할 수 있는 항목은 다음과 같다.

  • 장애 탐지속도
  • 장애 전파속도
  • 장애 격리속도
  • 자동 장애조치 여부
  • 부하 분산 여부
  • 핵심 서비스 유지 여부
  • 장애 영향 범위
  • 추가 장애 발생 여부

특히 최초 장애 이후 남아 있는 시스템에 부하가 집중되어 2차 장애로 이어지는지를 확인해야 한다.

6. 장애 이후 얼마나 빠르고 완전하게 회복하는가

복원력은 단순한 복구속도만으로 판단할 수 없다.

시스템이 다시 작동하더라도 데이터가 손상되었거나 일부 서비스가 정상적으로 제공되지 않는다면 완전한 회복으로 보기 어렵다.

따라서 다음 항목을 함께 확인해야 한다.

  • 복구시간
  • 데이터 무결성
  • 서비스 정상 여부
  • 성능 정상 여부
  • 의존 시스템 정상 여부
  • 반복 장애 여부

특히 서버가 다시 켜진 시점과 서비스가 실제 업무 수준으로 정상화된 시점은 다를 수 있다.

복원력 분석에서는 후자를 실제 회복의 기준으로 보는 것이 적절하다.

7. 복원력과 이중화

이중화는 복원력을 높이는 대표적인 방법이다.

서버, 네트워크, 전원, 스토리지 등을 이중화하면 특정 구성요소에 장애가 발생했을 때 다른 구성요소를 이용하여 서비스를 유지할 수 있다.

그러나 이중화된 구성요소가 동일한 전원, 네트워크 또는 관리 시스템을 공유한다면 하나의 장애 원인으로 동시에 영향을 받을 수 있다.

따라서 복원력에서는 단순히

“몇 개로 구성되어 있는가?”

보다

“장애 발생 시 실제로 서로 독립적으로 기능할 수 있는가?”

를 확인해야 한다.

8. 복원력과 SPOF

SPOF가 존재하면 특정 구성요소의 장애가 전체 서비스 장애로 확대될 가능성이 있다.

따라서 복원력 분석에서는 서버뿐만 아니라 다음과 같은 서비스 경로 전체를 확인해야 한다.

  • 네트워크
  • 스토리지
  • 데이터베이스
  • 인증 시스템
  • DNS
  • 전원
  • 관리 시스템
  • 외부 연계 시스템

특히 물리적인 장비 구성도에서는 드러나지 않는 논리적인 의존관계도 확인해야 한다.

서버를 이중화했더라도 인증 시스템이나 데이터베이스가 단일 구성이라면 실제 서비스 복원력은 제한될 수 있다.

9. 복원력과 공통원인고장

공통원인고장(CCF)은 복원력을 크게 떨어뜨릴 수 있는 요인이다.

여러 구성요소가 독립적으로 배치되어 있는 것처럼 보이더라도 동일한 원인에 의해 동시에 장애가 발생한다면 실질적인 장애 대응 능력은 낮아진다.

대표적인 공통 원인은 다음과 같다.

  • 동일 전원
  • 동일 네트워크
  • 동일 소프트웨어 설정
  • 동일 관리 시스템
  • 동일 물리적 환경
  • 동일 외부 서비스

따라서 복원력 분석에서는 구성요소의 개수보다 장애 원인의 독립성을 확인하는 것이 중요하다.

10. 장애 전파를 얼마나 제한할 수 있는가

복원력이 높은 시스템은 장애가 발생하더라도 장애가 전체 시스템으로 빠르게 확대되지 않도록 제한할 수 있어야 한다.

반대로 장애 전파가 빠르고 넓게 발생하면 초기 장애가 작은 문제였더라도 전체 서비스 장애로 확대될 수 있다.

따라서 다음 항목을 함께 확인해야 한다.

  • 장애 전파속도
  • 장애 영향 범위
  • 격리시간
  • 핵심 서비스 유지시간
  • 장애조치시간
  • 복구시간

여기서 중요한 것은 최초 장애의 크기와 최종 서비스 영향의 크기가 항상 같지는 않다는 점이다.

작은 장애라도 격리가 늦으면 큰 장애로 확대될 수 있고, 반대로 적절하게 격리하면 서비스 영향이 제한될 수 있다.

11. 복원력은 시간과 영향 범위를 함께 봐야 한다

복원력을 정량적으로 분석하려면 단순히 평균 복구시간 하나만 확인해서는 부족하다.

장애가 발생한 순간부터 서비스가 정상화될 때까지의 시간과 그동안 영향을 받은 범위를 함께 분석해야 한다.

분석 항목확인 내용
장애 탐지시간장애를 인식하기까지 걸린 시간
장애 격리시간장애 확산을 차단하기까지 걸린 시간
장애조치시간대체 시스템으로 전환하는 데 걸린 시간
서비스 영향시간실제 서비스에 영향을 준 시간
복구시간시스템을 복구하는 데 걸린 시간
정상화시간서비스가 정상 운영 수준으로 돌아오는 데 걸린 시간
영향 범위영향을 받은 시스템·서비스의 범위
데이터 영향손실 또는 복구가 필요한 데이터의 범위

이때 각 시간이 항상 단순하게 더해지는 것은 아니다.

여러 복구 작업이 동시에 진행될 수 있기 때문에 실제 경과시간은 작업 간 병렬성을 함께 고려해야 한다.

따라서 복원력 분석에서는 평균값뿐 아니라 최대 장애시간과 장애 영향의 분포도 함께 확인하는 것이 좋다.

12. 복원력과 가용도의 차이

가용도는 일정 기간 동안 시스템이 정상적으로 사용 가능한 상태에 있었던 비율을 나타내는 대표적인 지표다.

반면 복원력은 정상 운영 상태만 보는 것이 아니라 장애가 발생했을 때의 행동까지 포함한다.

즉,

  • 가용도 → 얼마나 오래 정상적으로 사용할 수 있었는가
  • 복원력 → 장애가 발생했을 때 얼마나 버티고, 영향을 제한하고, 회복할 수 있는가

따라서 높은 가용도가 곧 높은 복원력을 의미한다고 단정할 수는 없다.

예를 들어 평소에는 높은 가용도를 유지하지만 장애가 발생하면 수동 복구에 오랜 시간이 걸리는 시스템은 가용도와 별개로 복원력 측면에서 개선이 필요할 수 있다.

13. 복원력 시험은 실제 장애 상황을 가정해야 한다

복원력은 문서나 구성도만 확인해서 판단하기 어렵다.

실제 장애 상황을 가정한 시험을 통해 시스템이 어떻게 반응하는지 확인해야 한다.

예를 들어 다음과 같은 시험을 수행할 수 있다.

  • 서버 한 대 장애
  • 네트워크 구간 장애
  • 스토리지 장애
  • 데이터베이스 장애
  • 전원 장애
  • 대규모 트래픽 증가
  • 의존 시스템 장애
  • DR 전환

시험에서는 단순히 “서비스가 살아 있는가”만 확인해서는 부족하다.

얼마나 빨리 탐지했는가, 어디까지 장애가 전파되었는가, 핵심 서비스가 얼마나 유지되었는가, 실제로 얼마나 걸려 정상화되었는가를 측정해야 한다.

14. 복원력 분석의 실제 순서

실제 시스템의 복원력을 분석할 때는 다음과 같은 순서로 접근할 수 있다.

  1. 핵심 서비스 선정
  2. 서비스 의존관계 확인
  3. SPOF 식별
  4. 공통원인고장 가능성 확인
  5. 장애 전파 경로 분석
  6. 장애 격리 수준 확인
  7. 이중화 및 장애조치 확인
  8. 백업과 DR 구조 확인
  9. 실제 장애 대응시간과 복구시간 측정
  10. 장애 시험 결과 분석
  11. 취약구간 개선
  12. 개선 후 재시험

이 순서에서 중요한 것은 마지막의 재시험이다.

한 번 개선했다고 해서 복원력이 확보되는 것이 아니다.

개선 후 실제 장애 시나리오를 다시 적용하여 이전보다 장애 영향이 줄었는지, 복구시간이 단축되었는지, 새로운 취약점이 발생하지 않았는지 확인해야 한다.

15. 복원력 분석에서 확인할 핵심 질문

복원력 분석은 다음 질문으로 실제 시스템에 적용할 수 있다.

  1. 우리 시스템에서 가장 중요한 핵심 서비스는 무엇인가?
  2. 어떤 장애가 핵심 서비스에 직접적인 영향을 줄 수 있는가?
  3. 장애 발생 시 자동으로 대체 시스템으로 전환되는가?
  4. 장애를 어느 수준까지 격리할 수 있는가?
  5. 이중화된 구성요소가 동일한 장애 원인을 공유하고 있지는 않은가?
  6. 최초 장애 이후 부하 집중으로 2차 장애가 발생할 가능성은 없는가?
  7. 장애가 발생한 동안 핵심 서비스를 얼마나 유지할 수 있는가?
  8. 실제 복구시간은 목표 RTO를 충족하는가?
  9. 복구 과정에서 허용 가능한 범위를 넘어서는 데이터 손실이 발생하지 않는가?
  10. 복구 이후 동일한 장애가 반복될 가능성은 없는가?
  11. 장애 시험 결과가 실제 운영환경의 복원력을 충분히 보여주는가?

16. 복원력 분석의 활용

복원력 분석은 단순한 장애 대응계획을 평가하는 데 그치지 않는다.

시스템 설계 단계에서는 이중화와 장애 격리 구조를 검토할 수 있고, 운영 단계에서는 장애 데이터와 복구시간을 분석할 수 있으며, 개선 단계에서는 반복 장애의 구조적인 원인을 찾아낼 수 있다.

특히 앞에서 살펴본

이중화 → SPOF → 공통원인고장 → 장애 전파 → 장애 격리 → 서비스 연속성 → 백업 → DR

을 각각 별개의 기능으로 보는 것이 아니라 하나의 시스템 복원력이라는 관점에서 연결하여 판단할 수 있다는 점이 중요하다.

결국 복원력 분석은 각 기능이 존재하는지를 확인하는 것이 아니라, 장애가 발생했을 때 이 기능들이 실제로 연결되어 작동하는지를 확인하는 과정이다.

17. 최종 판단 — 복원력은 장애 이후의 시스템 행동으로 평가해야 한다

컴퓨터 시스템의 복원력은 장애가 발생하지 않는 시스템을 만드는 것만으로 확보되지 않는다.

장애가 발생했을 때

얼마나 버티는가 → 얼마나 영향을 제한하는가 → 핵심 서비스를 얼마나 유지하는가 → 얼마나 빠르게 회복하는가 → 회복 후 정상 상태를 유지하는가

를 함께 확인해야 한다.

따라서 복원력 분석에서는 단순한 고장률이나 가용도 하나만으로 시스템을 평가해서는 안 된다.

장애 예방, 탐지, 전파, 격리, 서비스 유지, 장애조치, 복구, 정상화의 전체 흐름을 하나의 연속된 과정으로 분석해야 한다.

그리고 가장 중요한 판단은 다음과 같다.

“우리 시스템은 장애가 발생하지 않도록 설계되어 있는가?”

에서 끝나는 것이 아니라,

“장애가 발생해도 핵심 서비스를 유지하면서 스스로 회복할 수 있도록 설계되어 있는가?”

까지 확인해야 한다.

핵심정리

  • 복원력은 장애가 없는 상태가 아니라, 장애가 발생했을 때 버티고 제한하고 회복하는 능력이다.
  • 이중화·SPOF·CCF·장애 격리·서비스 연속성·백업·DR은 각각의 기능이 아니라 복원력을 구성하는 연결된 요소로 볼 수 있다.

결국 복원력의 핵심은 “장애가 발생했을 때 시스템이 어디까지 무너지지 않고 버틸 수 있는가”를 확인하는 것이다.

bandion
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!