안정성을 위한 기술


가용성

안정성 : 특정 기능을 언제든 균일한 성능으로 수행할 수 있는 특성

availability(가용성) : 컴퓨터 시스템이 특정 기능을 실제로 수행할 수 있는 시간의 비율

$$ 가용성 = 업타임/(업타임+다운타임) $$

정상적인 사용 시간을 업타임, 정상적인 사용이 불가능한 시간을 다운타임

다운 타임을 줄여야 하지만 모두 원천 차단하기는 현실적으로 어려움. 따라서 문제가 발생하지 않도록 하는 것이 아니라 문제가 발생해도 계속 기능하게 설계해야함. 문제가 발생하더라도 기능할 수 있는 능력을 fault tolerance라고 함.

이중화

이중화 : 백업을 마련하는 방법

Single Point Of Failure (SPOF) : 문제가 발생할 경우 시스템 전체가 중단될 수 있는 대상

Untitled

SPOF는 가용성을 높이기 위해 이중화해야 한다.

이중화 구성에는 두 가지 방식이 있다. 액티브/스탠바이와 액티브/액티브이다. 액티브/스탠바이는 한 시스템은 가동하고, 다른 시스템은 백업 용도로 대기 상태로 두는 것, 액티브/액티브는 두 시스템을 모두 가동하는 것.

액티브/스탠바이는 안전한 방식이지만 하나만 가동되므로 성능상 이점을 얻기는 어려움. 액티브/액티브는 두개를 가동하므로 성능 상이점이 있지만 하나가 고장날 경우 나머지가 부하를 받아야 하는 문제가 있음

로드 밸런싱

traffic : 주어진 시점에 네트워크를 경유한 데이터의 양

과도한 트래픽이 몰리면 CPU는 발열이 심해지고, 메모리 공간은 부족해진다. 서버를 다중화했더라도 트래픽이 몰린다면 무용지물이다. 따라서 트래픽을 고르게 분산해야 한다.

load balancing : 로드 밸런싱은 부하를 의미하는 단어인 로드와 균형 유지를 나타내는 단어 밸런싱이 합쳐진 단어다.