이중화

이중화란?

  • 시스템의 가용성 높이기 위해 두 개 이상의 장비를 사용해 장비를 다중화 시키는 방법 중 하나

    가용성(availability) 한 서버 장비에 문제가 생겨도 다른 장비에서 서비스가 지속되도록 하여 안정적이고 항상 사용 가능한 서비스를 제공하는 정도

  • 장비가 두 개라면 이중화, 세 개라면 삼중화…

왜 필요한가?

  • 시스템을 다중화로 구성해 “고가용성(high availablity)”을 구현하기 위해서

  • 부하를 분산(load balancing)시켜 효율적으로 업무 처리하기 위해서

이중화 방법

Active-Active

  • 두 장비에 모두 구동해두고 사용하기 때문에 처리율이 높다.

  • 사용자 세션관리는 어떻게 할 것인지, 부하에대한 분산처리는 어떤 방식으로 할 것인지 등에 대한 방안이 필요하다.

Active-Standby

  • 흔히 HA를 말할때의 구성이다.

  • 한 장비에만 구동시키고, 하나는 장애 상황의 경우를 대비해 대기하도록 한다.

failover - 장애가 발생하여 현재 구동중인(Active) 장비가 죽게되면 대기 중인(Standby) 장비가 Active 상태가 되는 과정을 의미한다. - 대기중인 장비가 Active 상태가 될 때 까지의 시간동안은 서비스가 불가능하다.

고려해야 할 사항

  • 이중화 구성에서도 어플리케이션 서버를 이중화 할것인지 DB 서버를 이중화 할 것인지 이중화 했을때 데이터는 서로 어떻게 공유할 것인지 등등 고려해야 할 것이 많다.

카카오의 이중화

  • 인프라 설비

    • 이중화되지 않은 모니터링, 분석 툴이 마비되어 장비 모니터링 및 장애 탐지 원활하지 못함

    • 이중화되지 않은 Network Management System 등의 운영 툴과 로깅 저장소가 원활히 동작 못함

    • 네트워크단에서는 정상적으로 failover가 진행되었지만 세부 애플리케이션들에서 failover되지 않은 부분이 발생해 장애로 이어졌다.

    • 몇몇 백엔드 서비스가 데이터 센터 이중화되지 않은 구조를 가진 이유는 데이터 센터 상면의 부족과 센터 간 전송망 용량의 부족일 것이라고 예상된다.

  • 데이터

    • 3개의 IDC로 다중화 구성

    • 가상 장비 인스턴스 확보해 멀티 리전을 활용한 다중화 구성

    • 다중화 되어있지 않은 소수 클러스터 존재

AWS의 이중화

Availability Zone

  • 이중화를 위해 물리적으로 떨어져 있는 여러 데이터 센터들의 영역을 선택할 수 있도록 한다.

  • AZ를 통해 서로 다른 데이터센터들에 다중화로 구성하면 같은 데이터 센터에 다중화 한 것보다 더욱 고가용성을 구현할 수 있다.

  • 네트워크 속도와 안전성 향상, 재난과 같은 데이터 소실로부터의 안전이 목적이다.

Last updated