문제
"IT 시스템의 고가용성(HA, High Availability)을 설명하고, 서버·네트워크·데이터베이스 관점에서 고가용성 확보 방안을 설명하시오."
1. 고가용성의 정의
- 고가용성은 서비스 운영에 있어서 장애 발생 시 최단 시간 혹은 무중단으로 서비스를 연속적으로 유지하는 걸 의미 한다.
2. 고가용성이 필요한 이유
- 고가용성은 서비스를 운영하면서 필연적으로 발생하는 장애에 대해서 서비스를 연속적으로 제공하며, 장애에 대응 및 서비스 흐름의 끊김을 최소화 하여 대고객 서비스의 경우 고객의 신뢰를 높이고 금융 기관의 경우 금전적인 피해를 낮추기 위해서 필요하다.
3. 서버 관점의 HA
- 물리적인 이중화의 경우 서버의 H/W 및 S/W 장애로 해당 서버의 가용이 불가할 경우 물리적으로 Active - Stand By 구조로 구성을 하여 Stand By 서버로 Fail over 를 통해 서비스의 연속성을 확보하게된다.
- 서버의 App 관점의 경우 앞서 서버를 HA 구성하여 2대를 운영하여 Application 도 cluster로 구성하여 한 개의 App 서비스가 불가 할 경우 다른 하나로 서비스를 연속적으로 제공하여 서비스의 끊김을 줄이고 신속하게 장애를 조치하게 된다.
- HA 구성의 경우 서비스의 경우에 따라 다르지만 HA 구성 시 shared volume 을 사용하여 데이터를 동기화 해야 하는 경우가 있으며 HA 전용 솔루션의 경우 보통은 지원하게 된다.
- 장애의 탐지의 경우 HeartBeat를 통해 Health Check를 하여 장애 상황을 판단 시 Auto Fail over 하여 서비스의 연속성을 확보하게 된다.
4. 네트워크 관점의 HA
- 네트워크 장애 발생 시 네트워크 장비 이중화, 회선 이중화 등을 통해 서비스의 연속성을 확보하며 장비의 경우 Fail Over 를 통해 순단을 통한 서비스 연속성 확보를 진행한다
- Router 관점에서의 경우 VRRP, HSRP를 통한 VIP 설정을 통해 Router 장애 발생 시 Stand By router 로 서비스 연속성을 확보 할 수 있도록 한다
- L2 의 관점의 경우 HA 구성 시 Loop 에 빠지지 않도록 STP를 이용하여 논리적 차단이 필요하다.
5. DB 관점의 HA
- DB의 경우 Active-Active 의 cluster 구조 / Primary-Stand By 구조를 예로 들면 Active-Active 구조의 경우 Active 서버의 한 대 장애로도 연속성 유지가 되는 편이지만 Primary-Stand By 구조의 경우 Primary가 장애 발생 시 Stand By 서버로 Fail over 되어 Primary 가 변경되며 평상시에 Data를 Primary 에서 Stand By 서버로 replication 하여 데이터의 무결성 유지하여 Fail Over가 되어도 Data의 정합성 및 무결성을 유지하도록 구성 한다.
6. 장애 발생 시 대응 방안
- 장애 발생 시 서버 / 네트워크 / DB 측면에서 다양한 방법으로 조치가 되겠지만 H/W 기반 장애의 경우 Fail Over를 통한 Stand By 서버로 운영 전환하여 운영하는 케이스가 보편적이며, 서버에서도 App, OS 등의 장애로 서버가 원활하게 작동이 불가 할 경우 Fail over를 통한 운영 서비스 전환 네트워크 및 DB 도 마찬가지로 생각 된다.
7. 결론
- 고가용성은 대고객 서비스 및 대량의 트랜잭션을 다루는 서비스에서는 필수적인 요소이며 나아가 운영 서비스에서는 뗼 수 없는 조건이라고 생각된다. 서버 장애의 발생 확인 시 Fail Over를 통해 서비스 정상화 시도를 하고 서비스의 정상화 유무 확인 및 DB의 경우 데이터의 정합성 및 무결성을 따로 검증하여 고객 및 회사에 금전적인 피해가 없도록 확인 하는 것이 필요하다. 자연 재해 같은 천재 지변에 따라 IDC 자체가 사용이 불가피 한 경우를 대비 하여 DR 환경을 구축하여 장애 상황 발생시 Fail Over를 진행 하는 것도 필요하다.
GPT 피셜 70점 답안------------------------------------------------------------------------
* GPT 피셜 권장 답안에 포함 되어야 할 내용들
1. 고가용성(HA)의 정의
고가용성(High Availability)이란 시스템 구성요소의 장애 발생 시에도 서비스 중단을 최소화하고 정상적인 서비스를 지속적으로 제공하기 위한 시스템 설계 및 운영 기술이다.
핵심적으로 장애 감지 → 장애 격리 → Failover → 서비스 복구 체계를 통해 서비스 연속성을 확보한다.
2. 고가용성의 필요성
- 서비스 연속성 확보
- 장애 발생에 따른 다운타임 최소화
- SLA 및 서비스 가용성 확보
- 업무 연속성(BCP) 확보
- 장애에 따른 데이터 및 비즈니스 손실 최소화
- 고객 신뢰성 확보
또한 업무 중요도에 따라 RTO/RPO를 정의하고 이에 적합한 HA/DR 수준을 설계해야 한다.
3. 서버 관점의 HA
서버 장애에 대비하여 시스템을 이중화하고 장애 발생 시 자동 또는 수동 Failover를 수행한다.
Active-Active
- 복수의 서버가 동시에 서비스 수행
- Load Balancer를 통한 부하분산
- 처리량 및 확장성 확보
- 한 서버 장애 시 다른 서버가 서비스 지속
Active-Standby
- Active 서버가 주 서비스를 수행
- Standby 서버는 대기
- 장애 발생 시 Standby 서버로 Failover
- 중요 시스템의 서비스 연속성 확보
주요 구성요소:
Health Check, Heartbeat, Cluster, Failover, Load Balancing
4. 네트워크 관점의 HA
네트워크 장비 및 회선 장애로 인한 단일 장애점(SPOF)을 제거하고 네트워크 서비스의 연속성을 확보한다.
주요 방안:
- Router 이중화
- Switch 이중화
- 회선 이중화
- NIC Bonding/LACP
- VRRP/HSRP
- Routing 이중화
- Load Balancer 이중화
장애 발생 시 Health Check 및 Routing/Failover 메커니즘을 통해 정상 경로로 트래픽을 우회한다.
5. 데이터베이스 관점의 HA
DB 장애 발생 시에도 데이터 서비스의 연속성을 확보하기 위한 복제 및 이중화 기술이다.
주요 방안:
- Primary-Standby 구조
- DB Replication
- DB Cluster
- 자동 Failover
- 데이터 정합성 확보
- Backup 및 Recovery
특히 DB HA의 핵심 목적은 단순한 성능 향상이 아니라 장애 발생 시 서비스 연속성 확보이며, 성능 향상 및 Scale-out은 별도의 설계 목적과 함께 고려한다.
6. 장애 발생 시 대응
장애 발생 계층에 따라 다음과 같이 대응한다.
Application → OS → Hardware → Network → Storage → DB
장애 발생 시
Detect → Isolate → Failover → Recover → Verify
절차에 따라 대응하며, 장애 원인 및 서비스 중요도에 따라 자동 Failover와 수동 복구를 적용한다.
또한 장애 이후 원인 분석(RCA), 로그 분석 및 재발 방지 대책을 수립한다.
7. 결론
고가용성은 단순한 서버 이중화를 의미하는 것이 아니라 SPOF 제거, 장애 감지, 자동 Failover, 데이터 정합성, 모니터링, 백업 및 DR을 종합적으로 고려하여 서비스 연속성을 확보하는 체계이다.
따라서 업무 중요도에 따른 RTO/RPO와 SLA를 정의하고 비용과 복잡도를 고려한 적정 수준의 HA 아키텍처를 설계·운영해야 한다.