가용성(Availability)이란 시스템이 서비스를 정상적으로 제공할 수 있는 가능성을 의미한다. 서비스에 장애가 발생할 가능성이 극히 작은 시스템을 가용성이 높은(고가용성) 시스템이라고 말할 수 있다. 반대로 서비스가 다운되는 시간이 긴 시스템을 가용성이 낮은 시스템이라고 한다.
가용성이 높고 낮음은 서비스의 정상 가동률(%)로 표시된다. 가용성 99.99%라는 경우 99.99% 시간을 정상적으로 이용 가능한 시스템을 말한다. 이를 바꿔 말하면 1년에 53분 정도는 서비스가 다운된다고 말할 수 있다.
[고가용성을 가진 시스템 설계 방법]
가용성을 높이기 위해서는 서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고 설령 발생하더라도 그 시간을 짧게 만들어야 한다. 다운 타임을 줄이는 데 가장 중요한 설계 방법 중 하나가 시스템 이중화이다.
✅ 시스템 이중화
시스템 이중화라는 건 시스템의 일부분을 사용할 수 없게 되어도 다른 시스템을 이용하여 서비스를 계속 이용할 수 있게 만드는 걸 의미한다.
예를 들어, 도시를 연결하는 도로가 하나가 아닌 두 개가 있다면 둘 중 하나의 도로에서 사고가 발생하더라도 다른 도로를 이용하여 수송할 수 있다. 또한, 두 개의 도로가 존재함으로써 도로 공사 중에도 정상적으로 수송을 할 수 있다.
시스템에서 이중화는 아래와 같이 설계할 수 있다. 이와 같이 이중화 설계를 하면 다운 타임을 줄일 수 있게 된다. 즉, 서비스의 가용성을 높일 수 있게 된다.
가용성을 높이기 위해 시스템 이중화 뿐만 아니라 가용 영역(Availability zone)을 신경 써서 서버를 배치한다. 다음 강의에서 가용 영역(Availability zone)이 뭔지 알아보자.