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
'Programming' 카테고리의 다른 글
[AWS, Certified Developer Associate] EC2 - 정의, 인스턴스 유형, 보안그룹 (0) | 2024.04.28 |
---|---|
[AWS, Certified Developer Associate] IAM (0) | 2024.04.28 |
[시스템 설계: 한번에 인터뷰 합격하기] 샤딩(Sharding) & RDB vs NoSQL (1) | 2024.03.23 |
[시스템 설계: 한번에 인터뷰 합격하기] 수평 스케일링 vs 수직 스케일링 (0) | 2024.02.05 |
FeignClient에서 read timeout 발생 시 주의사항 (w/ Retry, RetryableException) (0) | 2023.10.12 |