고가용성

고가용성(HA)은 중복성, 장애 조치 메커니즘 및 내결함성을 통해 시스템 중단을 최소화하여 서비스의 지속적인 운영 및 접근성을 보장하는 시스템 설계를 의미하며, 구성 요소 장애 발생 시에도 예상 성능 수준을 유지합니다.

고가용성(HA)은 특정 기간 동안 운영 성능의 높은 수준, 일반적으로 가동 시간으로 측정되는 것을 보장하는 시스템의 설계 및 구현을 의미합니다. IT 및 분산 시스템에서 HA는 다운타임을 최소화하고 지속적인 서비스 가용성을 보장하는 것을 목표로 하며, 종종 '파이브 나인'(99.999%) 이상의 가동 시간을 목표로 합니다. HA를 달성하려면 하드웨어(예: 중복 전원 공급 장치, 네트워크 인터페이스, 서버), 소프트웨어(예: 중복 애플리케이션 인스턴스, 데이터베이스) 및 네트워크 인프라(예: 중복 네트워크 경로, 로드 밸런서) 등 여러 수준에서 중복성이 필요합니다. 장애 조치 메커니즘은 중요하며, 이는 구성 요소 장애를 자동으로 감지하고 사용자에게 거의 또는 전혀 중단 없이 대기 중인 중복 구성 요소로 작업을 전환합니다. 로드 밸런싱은 여러 활성 구성 요소에 트래픽을 분산하여 과부하를 방지하고 성능을 향상시킵니다. 데이터 복제는 중복 시스템 간의 데이터 일관성을 보장합니다. HA 아키텍처는 종종 사이트별 장애(예: 자연 재해)로부터 보호하기 위해 지리적으로 분산된 데이터 센터를 포함합니다. HA의 단점으로는 복잡성 증가, 중복 구성 요소로 인한 초기 비용 증가, 분산 상태 관리 및 장애 조치 이벤트 중 일관성 보장의 잠재적 어려움이 있습니다.

        graph LR
  Center["고가용성"]:::main
  Rel_byzantine_fault_tolerance["byzantine-fault-tolerance"]:::related -.-> Center
  click Rel_byzantine_fault_tolerance "/terms/byzantine-fault-tolerance"
  Rel_standardization["standardization"]:::related -.-> Center
  click Rel_standardization "/terms/standardization"
  Rel_rust["rust"]:::related -.-> Center
  click Rel_rust "/terms/rust"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5살도 이해할 수 있게 설명

집에 예비 발전기가 있어서 메인 전원이 나가도 불이 꺼지지 않는 것과 같고, 혹시 모르니 인터넷 연결도 예비로 하나 더 있는 것과 같습니다.

🤓 Expert Deep Dive

고가용성 아키텍처는 일반적으로 활성-활성 또는 활성-수동 중복 패턴을 사용합니다. 활성-활성 시스템은 여러 운영 노드에 부하를 분산하여 중복성과 성능 향상을 모두 제공하지만, 정교한 상태 동기화 및 로드 밸런싱이 필요합니다. 활성-수동 시스템은 장애 감지(장애 조치) 시 인계받는 대기 노드를 사용하며, 이는 종종 클러스터링 소프트웨어 또는 하트비트 메커니즘으로 관리됩니다. 장애 감지는 중요하며, 상태 확인, 하트비트 및 합성 트랜잭션과 같은 기술을 사용합니다. 복구 지점 목표(RPO) 및 복구 시간 목표(RTO)는 주요 지표입니다. RPO는 허용 가능한 최대 데이터 손실을 정의하여 복제 전략(동기식 대 비동기식)에 영향을 미치고, RTO는 서비스 복구를 위해 허용 가능한 최대 다운타임을 정의하여 장애 조치 속도를 결정합니다. 분산 합의 프로토콜(예: Paxos, Raft)은 복잡한 HA 시스템의 노드 간 상태 일관성을 유지하는 데 역할을 할 수 있습니다. 지리적 중복성은 지연 시간 및 재해 복구 계획과 관련된 복잡성을 증가시킵니다.

📚 출처