[SW Architect] 가용성(Availabilty)

mandu·2025년 9월 20일

[SW Architect]

목록 보기
9/10

1. 가용성(Availabilty)

1.1 가용성이란?

서버, 네트워크, 특정 하드웨어 부품을 비롯한 특정 컴퓨터 시스템이 주어진 기능을 실제로 수행할 수 있는 시간의 비율

가용성=업타임업타임+다운타임가용성 = {업타임 \over 업타임 + 다운타임}
업타임:정상적인사용시간,다운타임:모종의이유로인해정상적인사용이불가능한시간업타임: 정상적인 사용 시간, 다운 타임: 모종의 이유로 인해 정상적인 사용이 불가능한 시간

  • 즉, 시스템이 다운타임 없이 안정적으로 운영되는 정도
  • 주어진 기능을 문제없이 수행하는 시간의 비율이 높으면 고가용성(HA, High Availability)라고 함

1.2 가용성 지표

  • 파이브 Nines = 99.999% 가용성 → 보통 안정적이라고 평가받는 지표
  • 연간 허용 다운타임:
가용성허용 다운타임
99%약 3.65일/년
99.9%약 8.76시간/년
99.99%약 52.6분/년
99.999%약 5.26분/년

2. 가용성을 높이는 핵심 개념

고가용성의 핵심은 "애초에 문제가 발생하지 않도록 하는 것"이 아니라, "문제가 발생하더라도 기능할 수 있는 능력"

  • 다운타임의 발생 원인을 모두 찾아 차단하기에는 현실적으로 어렵기 때문

결함 감내 (Fault Tolerance): 문제가 발생하더라도 기능할 수 있는 능력
장애 전환(Failover): 시스템에 문제가 생겼을 때 예비된 시스템으로 자동 전환되는 기능

2.1 헬스체크(Health Check) & 하트비트(Heartbeat)

특정 서버의 이상을 체크하는 방법

  • Health Check: 시스템/서비스 상태를 주기적으로 확인 (주로 로드밸런서에 의해 작동)
  • Heartbeat: 서버 간 또는 클러스터 노드 간 “살아있음” 신호 전송, 끊겼을 때 문제 발생 감지
  • 목적: 장애 탐지 → 자동 Failover 수행

로드밸런서(Load Balancer)란?
서버로 들어오는 트래픽(요청)을 여러 서버로 분산해주는 장치 또는 소프트웨어
목적: 부하 분산, 성능 향상, 자동 Failover → 고가용성 확보

2.2 Redundancy (중복 구성)

  • 핵심 구성요소를 중복 배치 → 장애 발생 시 다른 구성요소로 서비스 유지
  • 목표: 단일 장애 지점(SPOF) 제거
  • Active / Passive 구성과 연계하여 구현 가능

1. 하드웨어 Redundancy

  • 서버, 스토리지, 네트워크 장비를 중복 배치

  • Active-Passive:

    • Active: 실제 트래픽 처리
    • Passive: 대기 상태, 장애 발생 시 자동 전환(Failover)
  • Active-Active:

    • 모든 장비가 동시에 트래픽 처리
    • 일부 장비 장애 발생해도 서비스 지속 가능

2. 소프트웨어 Redundancy

  • 클러스터, 로드밸런서, 분산 서비스 활용

  • 로드밸런서(LB):

    • 트래픽을 Active 노드 또는 Active-Active 서버에 분산
    • 장애 시 자동으로 다른 노드로 요청 전환
  • 클러스터링:

    • 서비스 인스턴스 중 일부 장애 발생 시 나머지 인스턴스가 서비스 유지
profile
만두는 목말라

0개의 댓글