[시스템 설계: 한번에 인터뷰 합격하기] 데이터베이스의 장애 극복 전략
Programming

[시스템 설계: 한번에 인터뷰 합격하기] 데이터베이스의 장애 극복 전략

1. 알고자 하는 것

  • 데이터베이스의 장애 극복 전략 

 

2. 알게 된 것

  • 단일 데이터베이스에 장애가 발생하면 해당 데이터베이스가 복구될 때까지의 시간이 모두 다운타임이 된다.
  • 이러한 다운타임은 많은 사용자가 실시간으로 트래픽을 발생시키는 서비스에서 매우 치명적이다.
  • 이러한 데이터베이스의 장애 극복 전략에는 크게 세가지 방식이 있다.
    • Cold Standby (수동 예비 방식)
    • Warm Standby (예열 대기 방식)
    • Hot Standby (상시 대기 방식)

Cold Standby

  • 단일 데이터베이스의 작업을 S3와 같은 스토리지 등에 주기적으로 백업하고, 장애 발생 시 해당 백업을 새로운 데이터베이스에 복원하는 방식
  • 백업이 저장되기 위한 저장공간과 복원을 위한 하나의 추가적인 데이터베이스만 있으면 가능한 방식으로, 비용이 저렴하고 관리가 쉽다.
  • 새로운 데이터베이스에 백업을 복원하는 시간이 걸리므로 다운타임이 길다.
  • 주기적으로 백업되므로, 마지막 백업 이후의 데이터는 모두 손실된다.
  • 다운타임이 길고, 일부 데이터가 손실되어도 괜찮은 상황에서 고려할 수 있는 방식.

 

Warm Standby

  • 백업 데이터베이스에 데이터를 지속적으로 복사(Replication)하는 방식.
  • 지속적으로 백업 데이터베이스에 복사하여 데이터를 기록하므로 Cold Standby에 비해 백업 데이터베이스로 전환 시 다운타임이 짧다. (복원 시간 불필요)
  • 데이터베이스 장애 시 백업 데이터베이스에 트래픽을 리디렉션하여 장애를 복구한다.
  • 주기적으로 백업을 처리하므로 짧은 데이터 손실이 발생할 수 있다.

 

Hot Standby

 

  • 데이터의 변경사항을 백업 데이터베이스에 동시에 기록하는 방식
  • 데이터베이스 장애 시 백업 데이터베이스에 트래픽을 리디렉션하여 장애를 복구한다.
  • 실시간으로 백업 데이터베이스에 기록하므로 데이터 손실이 발생하지 않는다.
  • 또한, Cold / Warm Standby 방식과 다르게 데이터가 백업 데이터베이스에도 실시간으로 존재하므로 트래픽을 백업 데이터베이스로 분산할 수도 있다.
  • 데이터베이스의 수를 늘려 데이터베이스를 확장하는 수평 스케일링에 가까운 방식.

 

 

3. 정리

  • 백업, 복원 매커니즘 없이 단일 데이터베이스에 장애가 발생하면 다운타임이 길어지고, 이는 서비스에 치명적이다.
  • 이러한 데이터베이스의 장애 극복 전략에는 크게 Cold Standby(수동 예비 방식) / Warm Standby(예열 대기 방식) / Hot Standby (상시 대기 방식)이 있다.
  • 다운타임은 Hot > Warm > Cold 순서로 짧으며, 그에 따른 비용 증가와 관리의 어려움 역시 증가한다.
  • DB 아키텍처 설계 시 비용, 유지보수, 다운타임, 데이터 손실의 중요도를 고려하여 적절한 방식을 택하는 것이 중요하다.

 


Reference

강의 - 시스템 설계(System Design): 한번에 인터뷰 합격하기