Skip to content

Latest commit

 

History

History
75 lines (61 loc) · 3.65 KB

stability.md

File metadata and controls

75 lines (61 loc) · 3.65 KB

Stability

안정성 (Stability) == 고가용성 (High Availability)

  • 네트워크 고가용성
  • 로드벨런싱 고가용성
  • 스토리지 고가용성
  • 데이터베이스 고가용성

클라우드가 가진 여러 장점에도 불구하고 기업들이 클라우드 도입을 망설이는 주된 이유중 하나는 안정성의 문제다.

예 ) AWS 도쿄리전 EC2 서비스 장애

장애는 반드시 발생하기 마련이다. 중요한것은 장애를 미리 예측하고 대비해 놓는 것이다.

안정성으로 인한 이점
고가용성으로 인해 기업이 누릴 수 있는 장점은 재정, 생산성의 손실을 방지할수 있을 뿐더러 고객의 만족도와 충성도 향상이 있다.

그렇다면 어떻게 안정성 및 고가용성을 높일 수 있을까?

About Stability

고가용성 : 시스템(Application, Server, Network etc)이 중단되지 않고 지속적으로 정상 운영이 가능하도록 하는 것.

  • 가용성이 높다(高可用性) 라는 것은 거의(99.99%) 고장나지 않는 다는 것을 의미한다.

  • 고가용성은 가용한 시간의 비율을 % 로 표현한다.
    x = (n – y) * 100/n

  • 시스템 중단의 요인

    • 논리적 운영 중단 | 80 %
      • 바이러스
      • 테스트 및 유지보수
      • 데이터 손상
    • 물리적 운영 중단 | 12 %
      • CPU
      • Disk/Storage
      • NIC (Network Interface Adapter)
      • HBA (Host Bus Adapter)
    • 사이트 운영 중단 | 8 %
      • 자연재해 (정전, 지진)
      • 테러

HA Architecture

고가용성(이하 HA) 아키텍처 설계를 위해 고려해야 할 요소는 크게 세 가지가 있다.

  1. Failover
    장애가 발생할 경우 보조 구성요소가 기본 구성요소를 대신 할 수 있는가?
  2. Monitoring
    구성요소의 정상적인 기능 여부를 확인 할 수 있는가?
  3. Redundancy
    다수의 구성요소가 동일한 작업을 수행 할 수 있는가?

안정성의 목표

안정성을 높이기 위해서는 정지 방지, 복구 가능, 장애 검출 가능, 데이터의 보호가 가능해야 한다.

  • 고장이나 장애가 발생하더라도 본래의 역할을 완수하도록 빠르게 복구시켜야 한다.

정지 방지

고장이나 장애에 의한 정지가 발생하지 않아야 한다.

  • 실현 방법 : 컴포넌트 이중화
  • 오류를 처리하기 위한 대안을 제공해야 한다.
    • MS Azure 의 경우 재시도 정책 설정, 대체 엔드포인트 설정 기능을 제공한다.

장애 검출 가능

고장이나 장애가 발생했다는 것을 검출할 수 있어야 한다.

  • 실현 방법 : 컴포넌트 감시

복구 가능

고장이나 장애가 발생하더라도 복구할 수 있어야 한다.

  • 실현 방법 : 컴포넌트 이중화
  • 장애 발생 후에는 가장 짧은 시간 내에 가장 최근의 데이터의 복구가 가능하도록 해야 한다.
    • RTO (Recovery Time Objective)
      장애 발생 후 중단된 서비스를 완전하게 복구하는데 걸리는 최대 허용시간
    • RPO (Recovery Point Objective)
      장애 발생 후 서비스가 복구되었을 때 유실될 수 있는 데이터의 최대 허용량을 시간으로 표현한 지표
  • 복구 시간의 최소화를 위해 Clustering 기법을 사용.

데이터 보호 가능

고장이나 장애가 발생해도 데이터가 보호될 수 있어야 한다.

  • 실현 방법 : 데이터 백업