더북(TheBook)

2.3 가용성

분산 시스템 설계에서 가용성이란 시스템에 장애나 오류가 발생하더라도 사용자에게 서비스를 지속적으로 제공할 수 있는 능력을 의미합니다. 즉, 가용성이 높은 시스템은 언제나 요청에 응답할 준비가 되어 있으며, 시스템 내부에서 발생하는 문제와 상관없이 사용자에게 서비스를 제공할 수 있는 시스템입니다.

예약 서비스 예시에서 쓰기와 읽기 작업을 레플리카 하나 내지 여러 개에서 처리하도록 하면 시스템 가용성을 높일 수 있습니다. 이렇게 하면 모든 노드가 정상 작동하지 않더라도 일부 노드만으로 사용자 요청을 처리할 수 있기 때문입니다. 따라서 일부 노드가 장애 상태에 있어도 시스템 전체는 쓰기와 읽기 요청을 받아들일 수 있어 높은 가용성을 유지할 수 있습니다.

분산 시스템 환경에서 높은 가용성을 확보하는 일은 정말 쉽지 않은데요. 시스템은 여러 구성 요소로 되어 있는데 이 구성 요소들은 서버 장애, 네트워크 문제, 통신 오류 등 다양한 장애에 노출되기 쉽기 때문입니다. 각 요소 중 어느 하나라도 문제를 일으킬 수 있어 시스템 전체의 가용성을 안정적으로 유지하는 것은 어럽죠.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.